(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024175764
(43)【公開日】2024-12-19
(54)【発明の名称】ログ保存装置およびログ保存方法
(51)【国際特許分類】
G06F 11/34 20060101AFI20241212BHJP
【FI】
G06F11/34 176
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023093746
(22)【出願日】2023-06-07
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100141232
【弁理士】
【氏名又は名称】飯塚 達
(72)【発明者】
【氏名】大室 善則
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MA09
5B042MA18
5B042MC35
5B042MC40
(57)【要約】
【課題】ログデータの保存量を削減する。
【解決手段】収集部10は、対象システム2についてのログデータを収集する。監視部20は、対象システム2を監視してイベントの発生を検出する。保存部30は、収集されたログデータを監視部20からのイベントの発生の通知に応じて保存する。この保存部30は、収集されたログデータが当該通知の時点において保存部30で既に保存されているログデータと重複する部分を含む場合には、当該重複する部分を除いた残余のログデータを保存する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
対象システムについてのログデータを収集する収集部と、
前記対象システムを監視してイベントの発生を検出する監視部と、
収集された前記ログデータを前記監視部からの前記イベントの発生の通知に応じて保存する保存部であって、収集された前記ログデータが前記通知の時点において前記保存部で既に保存されている前記ログデータと重複する部分を含む場合には前記重複する部分を除いた残余のログデータを保存する前記保存部と、
を備えることを特徴とするログ保存装置。
【請求項2】
収集された前記ログデータが前記通知の時点において前記重複する部分を含む場合には、前記保存部は、前記既に保存されている前記ログデータのうちから、前記重複する部分が含まれているログデータである既存のログデータを特定する情報を更に保存することを特徴とする請求項1に記載のログ保存装置。
【請求項3】
前記既存のログデータを特定する前記情報は、前記既存のログデータにおける前記重複する部分を示す情報を含むことを特徴とする請求項2に記載のログ保存装置。
【請求項4】
前記保存部は、前記既存のログデータを特定する前記情報と前記残余のログデータとを対応付けて保存することを特徴とする請求項3に記載のログ保存装置。
【請求項5】
前記保存部は、前記通知に対応付けて、前記既存のログデータを特定する前記情報と前記残余のログデータとを保存することを特徴とする請求項4に記載のログ保存装置。
【請求項6】
前記イベントの発生の通知は、前記イベントの発生日時の情報を含み、
前記保存部は、前記イベントの発生日時から所定時間前までの期間内に収集された前記ログデータを保存する、
ことを特徴とする請求項1から5のうちのいずれか一項に記載のログ保存装置。
【請求項7】
前記イベントの発生の通知は、前記イベントの種別を示す情報を含み、
前記保存部は、前記イベントの発生日時から、前記イベントの種別に対応付けられている前記所定時間前までの期間内に収集された前記ログデータを保存する、
ことを特徴とする請求項6に記載のログ保存装置。
【請求項8】
前記収集部は、前記対象システムについての前記ログデータを複数収集し、
前記イベントの発生の通知は、前記イベントの種別を示す情報を含み、
前記保存部は、複数収集された前記ログデータのうちの前記イベントの種別に対応付けられているログデータを保存する、
ことを特徴とする請求項6に記載のログ保存装置。
【請求項9】
対象システムについてのログデータを収集し、
前記対象システムを監視してイベントの発生を検出し、
収集された前記ログデータを前記イベントの発生の検出に応じて保存するときに、収集された前記ログデータが前記検出の時点において既に保存されている前記ログデータと重複する部分を含む場合には、前記重複する部分を除いた残余のログデータを保存する、
ことを情報処理装置が行うことを特徴とするログ保存方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は対象システムの監視技術に関する。
【背景技術】
【0002】
対象システムの動作状況を示すログデータを収集し保存する技術が幾つか知られている(例えば特許文献1~特許文献4参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010-140111号公報
【特許文献2】特開2006-277078号公報
【特許文献3】特開平7-219818号公報
【特許文献4】特開平10-275098号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
対象システムで生じたイベントの発生過程の解明のためには長い期間にわたるログデータを残しておくことが望ましい。しかしながら、イベントが対象システムで多発した場合には、残しておくべきログデータの総量が膨大なものとなる。
【課題を解決するための手段】
【0005】
実施形態のひとつでは、ログ保存装置が収集部と監視部と保存部とを備える。収集部は、対象システムについてのログデータを収集する。監視部は、対象システムを監視してイベントの発生を検出する。保存部は、収集されたログデータを監視部からのイベントの発生の通知に応じて保存する。この保存部は、収集されたログデータが当該通知の時点において保存部で既に保存されているログデータと重複する部分を含む場合には、当該重複する部分を除いた残余のログデータを保存する。
【発明の効果】
【0006】
上記の態様によれば、ログデータの保存量を削減することができる。
【図面の簡単な説明】
【0007】
【
図1】実施形態の一例としてのログ保存装置の機能構成を示す図である。
【
図2】ログ保存装置の各構成要素により行われる処理の概要を説明する図である。
【
図3】構成定義ファイルに格納されているテーブルの一例を示す図である。
【
図4】ストレージにおいて使用されるディレクトリ構造の一例を示す図である。
【
図5】ログ参照情報ファイルとストレージでのログの保存状況との対応関係の第1の例を示す図である。
【
図6】ログ参照情報ファイルとストレージでのログの保存状況との対応関係の第2の例を示す図である。
【
図7】ログ参照情報ファイルとストレージでのログの保存状況との対応関係の第3の例を示す図である。
【
図8】ログ参照情報ファイルとストレージでのログの保存状況との対応関係の第4の例を示す図である。
【
図9】データ収集処理の処理内容の一例を示すフローチャートである。
【
図10】ログ更新処理の処理内容の一例を示すフローチャートである。
【
図11】異常イベント検出処理の処理内容の一例を示すフローチャートである。
【
図12】ログ要求処理の処理内容の一例を示すフローチャートである。
【
図13】ログ応答処理の処理内容の一例を示すフローチャートである。
【
図14】実体ログ情報作成処理の処理内容の一例を示すフローチャートである。
【
図15】ログ参照処理の処理内容の一例を示すフローチャートである。
【
図16】情報処理装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら、実施形態を詳細に説明する。
【0009】
初めに
図1について説明する。
図1は、実施形態の一例としてのログ保存装置1の機能構成を示している。
【0010】
ログ保存装置1は、対象システム2と接続されて使用される。
図1の例では、通信ネットワーク3を介してログ保存装置1が対象システム2に接続されている。
【0011】
対象システム2では、様々なアプリケーションやサービスの提供が行われ、これらを提供するために実行されるソフトウェアによって、実行中に発生した各種のイベントについてのログデータが作成される。ログ保存装置1は、対象システム2で作成されたログデータを保存する装置である。
【0012】
なお、
図1では、対象システム2において作成されるログデータのファイル名として、「ログA」、「ログB」、「ログC」と3つのログファイル名を表示しているが、この表示は、作成されるログデータを3つのみに限定することを意図するものではない。
【0013】
ログ保存装置1は収集部10と監視部20と保存部30とを備えている。
【0014】
収集部10は、対象システム2についてのログデータを収集する。
【0015】
監視部20は、対象システム2を監視してイベントの発生を検出する。監視部20は、イベントの発生を検出したときに、当該イベントの発生を保存部30に通知する。
【0016】
保存部30は、収集部10により収集されたログデータを、監視部20からのイベントの発生の通知に応じて保存する。但し、本実施形態においては、収集されたログデータが当該通知の時点において保存部30で既に保存されているログデータと重複する部分を含む場合には、保存部30は、当該重複する部分を除いた残余のログデータを保存する。
【0017】
保存部30が以上のようにしてログデータの保存を行うので、本実施形態によれば、ログデータの保存量を削減することができる。
【0018】
なお、保存部30は、収集されたログデータが既に保存されているログデータと重複する部分を含む場合には、当該既に保存されているログデータのうちから、当該重複する部分が含まれているログデータである既存のログデータを特定する情報を更に保存する。この情報を用いると、上述した残余のログデータ以外のログデータ(重複部分のログデータ)の参照が容易に行える。
【0019】
ログ保存装置1の各構成要素により行われる処理の概要について、
図2を用いて更に詳細に説明する。
【0020】
なお、以下の説明では、対象システム2で生じたイベントの発生を監視部20が検出する場合の一例として、対象システム2の異常動作の発生を監視部20が検出する場合について説明を行う。
【0021】
データ収集処理110及びログ更新処理120は収集部10により行われる。データ収集処理110は、ログデータを対象システム2から収集し、収集したログデータ(収集ログ)にデータファイル名(収集ログ名)を付して一時保存する処理である。ログ更新処理120は、データ収集処理110によりログデータの一時保存が行われてから予め指定しておいた所定期間が経過した当該ログデータを削除する処理である。
【0022】
異常イベント検出処理200は監視部20により行われる。この処理は、収集部10が対象システム2から収集したログデータを参照して、当該ログデータが、予め定められている対象システム2の正常動作時の動作状態の条件に合致しているかどうかを常に監視する処理である。この監視において、当該正常動作時の動作状態の条件を外れたことが検出された場合には、対象システム2での異常動作のイベントの発生を保存部30に通知する処理も行われる。
【0023】
異常イベント検出処理200によって保存部30へ送られる異常通知の電文は、例えば下記のデータ構造を有している。
【0024】
異常通知:(異常識別、異常カテゴリ、異常検出日時)
【0025】
この異常通知のデータ構造における各項目について説明する。
【0026】
「異常識別」は、発生が検出された動作異常を個々に識別する情報である。本実施形態では、この情報として、「異常識別a」、「異常識別b」、「異常識別c」などといった文字列を用いることとする。
【0027】
「異常カテゴリ」は、発生が検出された動作異常の種別を示す情報である。本実施形態では、この情報として、「α」、「β」、「γ」などといったギリシャ文字を用いることとする。
【0028】
「異常検出日時」は、対象システム2の異常動作が監視部20によって検出された日時(イベントの発生日時)を示す情報である。
【0029】
ログ要求処理300は保存部30により行われる。この処理は、監視部20からの異常通知を受け取ると、通知された動作異常の発生に関連するログデータを収集部10に対して要求する処理である。
【0030】
ログ要求処理300によって収集部10に送られるログ要求の電文は、例えば下記のデータ構造を有している。
【0031】
ログ要求:
(異常識別、開始日時、{収集ログ名、期間}、{収集ログ名、期間}、…)
【0032】
このログ要求のデータ構造における各項目について説明する。
【0033】
「異常識別」は、監視部20からの異常通知に含まれていた情報である。
【0034】
「開始日時」は、監視部20からの異常通知に含まれていた異常検出日時と同一の日時の情報である。
【0035】
「収集ログ名」は、監視部20からの異常通知に含まれていた異常カテゴリで特定される種別の動作異常についての解析の対象とするログデータが格納されており、収集部10で一時保存されている収集ログのファイル名の情報である。また、「期間」は、「収集ログ名」で特定されるログデータのうち、当該解析の対象とする期間の情報である。保存部30は、この「収集ログ名」と「期間」との組み合わせの情報を、予め用意されている構成定義ファイル31を参照して取得する。
【0036】
図3は、構成定義ファイル31に格納されているテーブルの一例を示したものである。このテーブルでは、異常カテゴリ毎に、上述した収集ログ名と期間との組み合わせが対応付けられている。
【0037】
例えば、このテーブル例の第1行目は、異常カテゴリ「α」の動作異常の解析の対象を、「ログA」なる収集ログ名であるログデータのうちの、異常発生時から所定時間前(ここでは「3時間」前)までの期間のログデータとすることを表している。
【0038】
また、例えば、このテーブル例の第3行目及び第4行目は、異常カテゴリ「γ」の動作異常の解析の対象を、「ログA」の異常発生時から「2時間」前までのログデータ、及び、「ログB」の異常発生時から「5時間」前までのログデータとすることを表している。このように、1つの異常カテゴリに対して収集ログ名と期間との組み合わせが複数示されている場合には、ログ要求には、当該複数の組み合わせの情報が示される。
【0039】
図2の説明に戻る。ログ応答処理400は収集部10により行われる。この処理は、保存部30から送られてくるログ要求で要求されているログデータに関する情報を、保存部30に応答する処理である。
【0040】
ログ応答処理400によって保存部30に送られるログ応答の電文は、例えば下記のデータ構造を有している。
【0041】
ログ応答:
({収集ログ名、終了日時、開始日時}、
[
<保存実体ログ名、ログ終了日時、ログ開始日時、実体ログデータ>、
…
]
)、
({収集ログ名、終了日時、開始日時}、
[
<保存実体ログ名、ログ終了日時、ログ開始日時、実体ログデータ>、
…
]
)
【0042】
このログ応答のデータ構造における各項目について説明する。
【0043】
{収集ログ名、終了日時、開始日時}の組み合わせにおいて、「収集ログ名」及び「開始日時」は、それぞれ、ログ要求に示されていた収集ログ名及び開始日時の情報である。また、「終了日時」は、ログ要求に示されていた開始日時から、当該ログ要求に示されていた期間だけ遡った日時の情報である。
【0044】
<保存実体ログ名、ログ終了日時、ログ開始日時、実体ログデータ>の組み合わせにおいて、「実体ログデータ」は、収集部10が対象システム2から収集したログデータであって、保存部30での保存の対象である当該ログデータの実体(実体ログ)である。また、上記の組み合わせから「実体ログデータ」を除外した残余の組み合わせ、すなわち、<保存実体ログ名、ログ終了日時、ログ開始日時>の組み合わせを本実施形態では「参照情報」と称している。
【0045】
参照情報のうちの「ログ終了日時」及び「ログ開始日時」は、それぞれ、時間の流れを遡って参照される「実体ログデータ」の終了日時(最も古い日時)及び開始日時(最も新しい日時)の情報である。更に、「保存実体ログ名」は、保存部30での保存の対象である「実体ログデータ」のファイルに付されるログファイル名の情報である。
【0046】
ログ応答処理400は、この組み合わせの情報を、ログ参照情報ファイル11として保持して管理する処理も含む。ログ参照情報ファイル11は、保存部30での実体ログの保存の状況が示されているファイルであり、保存の対象である実体ログが、保存部30で既に保存されている実体ログと重複する部分を含むかどうかの判定に用いられる。ここで、当該重複する部分が含まれていると判定された場合には、上記の組み合わせから「実体ログデータ」が除外されて参照情報のみとなる。
【0047】
当該除外後の参照情報、すなわち、<保存実体ログ名、ログ終了日時、ログ開始日時>の組み合わせにおいて、「保存実体ログ名」は、保存部30で既に保存されている、当該重複する部分が含まれていた当該実体ログについてのログファイル名である。また、「ログ終了日時」及び「ログ開始日時」は、それぞれ、当該実体ログにおける当該重複する部分についての終了日時及び開始日時の情報である。
【0048】
ログ応答の電文は、上述したデータ構造を有しており、収集ログと実体ログとの対応関係を表している。
【0049】
保存部30により行われる前述したログ要求処理300には、収集部10から送られてくるログ応答に含まれている各種の情報をストレージ32に保存する処理が更に含まれている。ストレージ32では、これらの情報を格納するデータファイルが、例えばディレクトリ構造を用いて管理される。
【0050】
ストレージ32において使用されるディレクトリ構造の一例を
図4に示す。
【0051】
ストレージ32には、上位のディレクトリとして「異常一覧」ディレクトリが設けられる。この「異常一覧」ディレクトリの直下には「異常識別」ディレクトリが配置される。「異常識別」ディレクトリは、監視部20から異常通知を受ける度に作成され、当該異常通知に含まれている異常識別の文字列がディレクトリ名として用いられる。
【0052】
「異常識別」ディレクトリには、「異常明細」ファイルと「異常ログ」ファイルと「実体ログ」ファイルとが配置される。
【0053】
「異常明細」ファイルは、監視部20から受け取った異常通知と同一の情報が格納されるファイルである。
【0054】
「異常ログ」ファイルは、収集部10から送られてくるログ応答に表されている収集ログと実体ログとの対応関係を示す情報が格納されるファイルである。詳細は後述するが、収集されたログデータが既に保存されているログデータと重複する部分を含む場合には、この情報は、当該重複する部分が含まれている既存のログデータを、既に保存されているログデータから特定する情報となる。また、この情報は、当該既存のログデータにおける当該重複する部分を示す情報を含む。
【0055】
「実体ログ」ファイルには、収集部10から送られてくるログ応答に含まれている実体ログが格納されるファイルである。詳細は後述するが、収集部10により収集されたログデータが、保存部30で既に保存されているログデータと重複する部分を含む場合には、当該重複する部分を除いた残余のログデータが、実体ログとして、ログ応答に含まれている。
【0056】
ストレージ32では、これらのデータファイルが、上述したディレクトリ構造を用いて管理される。つまり、ストレージ32では、既存のログデータを特定する情報と残余のログデータとが対応付けられて保存される。
【0057】
次に、ログ保存装置1におけるログデータの保存動作の具体例について説明する。
【0058】
[ログデータの保存動作の第1の例]
【0059】
第1の例では、監視部20が対象システム2での異常動作のイベントの発生を検出し、異常通知を保存部30に送付した場合を想定する。なお、この時点では、保存部30のストレージ32には対象システム2についての実体ログは何も保存されていないものとする。
【0060】
このときに監視部20から保存部30に送付された異常通知には、異常識別、異常カテゴリ、及び異常検出日時として、それぞれ下記の情報が含まれていたものとする。
【0061】
異常通知:(異常識別a、α、2023/01/01 04:00)
【0062】
この異常通知を受け取った保存部30は、
図3に例示した構成定義ファイル31を参照し、異常カテゴリが「α」であるレコードから収集ログ名「ログA」と期間「3時間」とを取得する。保存部30は、取得した情報と、異常通知に含まれている異常識別及び異常検出日時の情報とを用いて、下記のログ要求を作成して収集部10に送付する。
【0063】
ログ要求:(異常識別a、2023/01/01 04:00、{ログA、3時間})
【0064】
このログ要求を受け取った収集部10は、保存部30で既に保存されている実体ログに、ログ要求において要求されている実体ログと重複する部分があるかどうかを、ログ参照情報ファイル11を用いて判定する。
【0065】
前述したように、この判定の時点では保存部30には対象システム2についての実体ログは何も保存されていないので、当該重複する部分は存在しないとの判定が下される。
【0066】
このとき、収集部10は、2023/01/01 04:00の時点と、当該時点から3時間遡った2023/01/01 01:00の時点との間のログデータを、一時保存されている収集ログ「ログA」から読み出し、「ログA」の実体ログとして取得する。また、収集部10は、取得した実体ログについての保存実体ログ名を作成する。保存実体ログ名としては一意となる名称を作成するようにする。すなわち、収集部10は、例えば、収集ログ名の情報と一意の番号との組み合わせに、当該実体ログが配置される異常識別ディレクトリのディレクトリ名を更に組み合わせた「異常識別a/ログA-1」を、保存実体ログ名として作成する。
【0067】
収集部10は、以上のようにして得られた各情報が含まれている下記のログ応答を作成して保存部30に送付する。
【0068】
ログ応答:
({ログA、2023/01/01 01:00、2023/01/01 04:00}、
[<異常識別a/ログA-1、2023/01/01 01:00、2023/01/01 04:00、
(「ログA-1」の実体ログ)>])
【0069】
このログ応答を受け取った保存部30は、ログ応答に含まれている「ログA-1」の実体ログの保存を行うと共に、ログ応答に含まれている収集ログ「ログA」に関する情報を含む異常ログファイルの作成と保存とを行う。また、収集部10は、「ログA-1」の実体ログの保存部30での保存状況についての情報をログ参照情報ファイル11に追加する。このときのログ参照情報ファイル11と保存部30のストレージ32でのログの保存状況との対応関係を
図5に示す。
【0070】
図5における[A]のログ参照情報ファイル11には、上記のログ応答に含まれている実体ログ「ログA-1」に関する参照情報、すなわち、<保存実体ログ名、ログ終了日時、ログ開始日時>の各情報と同一の情報が示されている。
【0071】
一方、
図5における[B]の保存状況では、ストレージ32の「異常一覧」ディレクトリの直下の「異常識別a」ディレクトリに配置される「異常ログ」ファイルに含まれているテーブルが示されている。
【0072】
この「異常ログ」ファイルのテーブルは、「対象ログ」、「ログ終了日時」、「ログ開始日時」、及び「実体ログ」の各フィールドを有している。
【0073】
「異常ログ」ファイルのテーブルの第1行目のレコードには、ログ応答に含まれる収集ログに関する情報が格納される。すなわち、このレコードにおける「対象ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる{収集ログ名、終了日時、開始日時}の情報がそれぞれ格納される。なお、「実体ログ」のフィールドにはヌルデータとされる。
【0074】
また、「異常ログ」ファイルのテーブルの第2行目のレコードには、ログ応答に含まれる実体ログ「ログA-1」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-1」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。また、ログ応答に含まれる「ログA-1」の実体ログのデータファイルが、「異常ログ」と同一の「異常識別a」ディレクトリに配置される。
【0075】
[ログデータの保存動作の第2の例]
【0076】
第2の例では、前述した第1の例において検出された異常動作のイベントの発生から1時間後に、監視部20が対象システム2での新たな異常動作のイベントの発生を検出し、当該新たなイベントについての新たな異常通知を保存部30に送付した場合を想定する。
【0077】
このときに監視部20から保存部30に送付された新たな異常通知には、異常識別、異常カテゴリ、及び異常検出日時として、それぞれ下記の情報が含まれていたものとする。
【0078】
異常通知:(異常識別b、α、2023/01/01 05:00)
【0079】
この異常通知を受け取った保存部30は、
図3に例示した構成定義ファイル31を参照し、異常カテゴリが「α」であるレコードから収集ログ名「ログA」と期間「3時間」とを取得する。保存部30は、取得した情報と、異常通知に含まれている異常識別及び異常検出日時の情報とを用いて、下記の新たなログ要求を作成して収集部10に送付する。
【0080】
ログ要求:(異常識別b、2023/01/01 05:00、{ログA、3時間})
【0081】
このログ要求を受け取った収集部10は、保存部30で既に保存されている実体ログに、新たなログ要求において要求されている実体ログと重複する部分があるかどうかを、ログ参照情報ファイル11を用いて判定する。
【0082】
上記の新たなログ要求は、収集ログ「ログA」における、2023/01/01 05:00の時点と、当該時点から3時間遡った2023/01/01 02:00の時点との間のログデータを要求するものである。一方、このときのログ参照情報ファイル11には、前述した
図5の[A]の情報が示されており、収集ログ「ログA」についての、2023/01/01 04:00の時点から2023/01/01 01:00の時点までの実体ログが保存部30で既に保存されていることが示されている。従って、上記の判定では、保存部30で既に保存されている実体ログのうちの2023/01/01 04:00の時点と2023/01/01 02:00の時点との間の期間の実体ログが重複しているとの判定が下される。
【0083】
このとき、収集部10は、保存部30で既に保存されている実体ログとは重複していない2023/01/01 05:00の時点と2023/01/01 04:00の時点との間の残余のログデータを、一時保存されている収集ログ「ログA」から読み出し、「ログA」の残余の実体ログとして取得する。また、収集部10は、取得した残余の実体ログについての保存実体ログ名を作成する。すなわち、収集部10は、例えば、収集ログ名の情報と一意の番号との組み合わせに、当該実体ログが配置される異常識別ディレクトリのディレクトリ名を更に組み合わせた「異常識別b/ログA-2」を、保存実体ログ名として作成する。
【0084】
また、このとき、収集部10は、保存部30で既に保存されている実体ログのうちで当該重複している部分を有している実体ログ「ログA-1」の保存実体ログ名「異常識別a/ログA-1」をログ参照情報ファイル11から取得する。
【0085】
収集部10は、以上のようにして得られた各情報が含まれている下記のログ応答を作成して保存部30に送付する。
【0086】
ログ応答:
({ログA、2023/01/01 02:00、2023/01/01 05:00}、
[<異常識別b/ログA-2、2023/01/01 04:00、2023/01/01 05:00、
(「ログA-2」の実体ログ)>]、
[<異常識別a/ログA-1、2023/01/01 02:00、2023/01/01 04:00>])
【0087】
このログ応答を受け取った保存部30は、ログ応答に含まれている「ログA-2」の実体ログの保存を行うと共に、ログ応答に含まれている収集ログ「ログA」に関する情報の保存とを行う。また、収集部10は、「ログA-2」の実体ログの保存部30での保存状況についての情報をログ参照情報ファイル11に追加する。このときのログ参照情報ファイル11と保存部30のストレージ32でのログの保存状況との対応関係を
図6に示す。
【0088】
図6における[A]のログ参照情報ファイル11は、
図5の[A]に示したものに第2行目のレコードが追加されたものである。この第2行目のレコードには、上記のログ応答データに含まれている実体ログ「ログA-2」に関する参照情報である<保存実体ログ名、ログ終了日時、ログ開始日時>の各情報と同一の情報が示されている。
【0089】
一方、
図6における[B]の保存状況では、
図5の[B]に示した状況から、ストレージ32の「異常一覧」ディレクトリの直下の「異常識別a」ディレクトリに配置される「異常ログ」ファイルに含まれているテーブルが追加されている。
【0090】
この「異常ログ」ファイルのテーブルの第1行目のレコードには、「異常識別b」ディレクトリに配置される「異常ログ」ファイルに含まれているテーブルと同様に、ログ応答に含まれる収集ログに関する情報が格納される。すなわち、このレコードにおける「対象ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる{収集ログ名、終了日時、開始日時}の情報がそれぞれ格納される。なお、「実体ログ」のフィールドにはヌルデータとされる。
【0091】
また、「異常ログ」ファイルのテーブルの第2行目のレコードには、ログ応答に含まれる実体ログ「ログA-2」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-2」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。また、ログ応答に含まれる「ログA-2」の実体ログのデータファイルが、「異常ログ」と同一の「異常識別b」ディレクトリに配置される。
【0092】
更に、「異常ログ」ファイルのテーブルの第2行目のレコードには、ログ応答に含まれる実体ログ「ログA-1」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-1」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。
【0093】
[ログデータの保存動作の第3の例]
【0094】
第3の例では、前述した第1の例において検出された異常動作のイベントの発生から6時間後に、監視部20が対象システム2での新たな異常動作のイベントの発生を検出し、当該新たなイベントについての新たな異常通知を保存部30に送付した場合を想定する。
【0095】
但し、この第3の例では、監視部20から保存部30に送付された新たな異常通知に、異常識別、異常カテゴリ、及び異常検出日時として、それぞれ下記の情報が含まれていたものとする。
【0096】
異常通知:(異常識別b、α、2023/01/01 10:00)
【0097】
この異常通知を受け取った保存部30は、
図3に例示した構成定義ファイル31を参照し、異常カテゴリが「α」であるレコードから収集ログ名「ログA」と期間「3時間」とを取得する。保存部30は、取得した情報と、異常通知に含まれている異常識別及び異常検出日時の情報とを用いて、下記の新たなログ要求を作成して収集部10に送付する。
【0098】
ログ要求:(異常識別b、2023/01/01 10:00、{ログA、3時間})
【0099】
このログ要求を受け取った収集部10は、保存部30で既に保存されている実体ログに、新たなログ要求において要求されている実体ログと重複する部分があるかどうかを、ログ参照情報ファイル11を用いて判定する。
【0100】
上記の新たなログ要求は、収集ログ「ログA」における、2023/01/01 10:00の時点と、当該時点から3時間遡った2023/01/01 07:00の時点との間のログデータを要求するものである。一方、このときのログ参照情報ファイル11には、前述した
図5の[A]の情報が示されており、収集ログ「ログA」についての、2023/01/01 04:00の時点から2023/01/01 01:00の時点までの実体ログが保存部30で既に保存されていることが示されている。従って、上記の判定では、保存部30で既に保存されている実体ログには、重複する部分は無いとの判定が下される。
【0101】
このとき、収集部10は、保存部30で既に保存されている実体ログとは重複していない2023/01/01 10:00の時点と2023/01/01 07:00の時点との間の残余のログデータを、一時保存されている収集ログ「ログA」から読み出し、「ログA」の残余の実体ログとして取得する。また、収集部10は、取得した残余の実体ログについての保存実体ログ名を作成する。すなわち、収集部10は、例えば、収集ログ名の情報と一意の番号との組み合わせに、当該実体ログが配置される異常識別ディレクトリのディレクトリ名を更に組み合わせた「異常識別b/ログA-2」を、保存実体ログ名として作成する。
【0102】
収集部10は、以上のようにして得られた各情報が含まれている下記のログ応答を作成して保存部30に送付する。
【0103】
ログ応答:
({ログA、2023/01/01 07:00、2023/01/01 10:00}、
[<異常識別b/ログA-2、2023/01/01 07:00、2023/01/01 10:00、
(「ログA-2」の実体ログ)>])
【0104】
このログ応答を受け取った保存部30は、ログ応答に含まれている「ログA-2」の実体ログの保存を行うと共に、ログ応答に含まれている収集ログ「ログA」に関する情報の保存とを行う。また、収集部10は、「ログA-2」の実体ログの保存部30での保存状況についての情報をログ参照情報ファイル11に追加する。このときのログ参照情報ファイル11と保存部30のストレージ32でのログの保存状況との対応関係を
図7に示す。
【0105】
図7における[A]のログ参照情報ファイル11は、
図5の[A]に示したものに第2行目のレコードが追加されたものである。この第2行目のレコードには、上記のログ応答データに含まれている実体ログ「ログA-2」に関する参照情報である<保存実体ログ名、ログ終了日時、ログ開始日時>の各情報と同一の情報が示されている。
【0106】
一方、
図7における[B]の保存状況では、
図5の[B]に示した状況から、ストレージ32の「異常一覧」ディレクトリの直下の「異常識別b」ディレクトリに配置される「異常ログ」ファイルに含まれているテーブルが追加されている。
【0107】
この「異常ログ」ファイルのテーブルの第1行目のレコードには、「異常識別a」ディレクトリに配置される「異常ログ」ファイルに含まれているテーブルと同様に、ログ応答に含まれる収集ログに関する情報が格納される。すなわち、このレコードにおける「対象ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる{収集ログ名、終了日時、開始日時}の情報がそれぞれ格納される。なお、「実体ログ」のフィールドにはヌルデータとされる。
【0108】
また、「異常ログ」ファイルのテーブルの第2行目のレコードには、ログ応答に含まれる実体ログ「ログA-2」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-2」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。また、ログ応答に含まれる「ログA-2」の実体ログのデータファイルが、「異常ログ」と同一の「異常識別b」ディレクトリに配置される。
【0109】
[ログデータの保存動作の第4の例]
【0110】
第4の例では、前述した第3の例において新たに検出された異常動作のイベントの発生から2時間後に、監視部20が対象システム2での更なる異常動作のイベントの発生を検出し、当該更なるイベントについての異常通知を保存部30に送付した場合を想定する。
【0111】
但し、この第4の例では、監視部20から保存部30に送付された更なる異常通知に、異常識別、異常カテゴリ、及び異常検出日時として、それぞれ下記の情報が含まれていたものとする。
【0112】
異常通知:(異常識別c、β、2023/01/01 12:00)
【0113】
この異常通知を受け取った保存部30は、
図3に例示した構成定義ファイル31を参照し、異常カテゴリが「β」であるレコードから収集ログ名「ログA」と期間「11時間」とを取得する。保存部30は、取得した情報と、異常通知に含まれている異常識別及び異常検出日時の情報とを用いて、下記の新たなログ要求を作成して収集部10に送付する。
【0114】
ログ要求:(異常識別c、2023/01/01 12:00、{ログA、11時間})
【0115】
上記の新たなログ要求は、収集ログ「ログA」における、2023/01/01 12:00の時点と、当該時点から11時間遡った2023/01/01 01:00の時点との間のログデータを要求するものである。一方、このときのログ参照情報ファイル11には、前述した
図7の[A]の情報が示されている。すなわち、収集ログ「ログA」についての、2023/01/01 04:00の時点から2023/01/01 01:00の時点までの実体ログと、2023/01/01 10:00の時点から2023/01/01 07:00の時点までの実体ログとが保存部30で既に保存されていることが示されている。従って、保存部30で既に保存されている、2023/01/01 04:00の時点と2023/01/01 01:00の時点との間の期間の実体ログ、及び、2023/01/01 10:00の時点と2023/01/01 07:00の時点との間の期間の実体ログが重複しているとの判定が下される。
【0116】
このとき、収集部10は、保存部30で既に保存されている実体ログとは重複していない2023/01/01 12:00の時点と2023/01/01 10:00の時点との間の第1の残余のログデータを、一時保存されている収集ログ「ログA」から読み出し、「ログA」の第1の残余の実体ログとして取得する。また、収集部10は、取得した第1の残余の実体ログについての保存実体ログ名を作成する。すなわち、収集部10は、例えば、収集ログ名の情報と一意の番号との組み合わせに、当該実体ログが配置される異常識別ディレクトリのディレクトリ名を更に組み合わせた「異常識別c/ログA-3」を、第1の残余の実体ログについてのログ名として作成する。
【0117】
また、収集部10は、保存部30で既に保存されている、2023/01/01 10:00の時点から2023/01/01 07:00の時点までの部分が重複している実体ログ「ログA-2」の保存実体ログ名「異常識別b/ログA-2」をログ参照情報ファイル11から取得する。
【0118】
更に、収集部10は、保存部30で既に保存されている実体ログとは重複していない2023/01/01 07:00の時点と2023/01/01 04:00の時点との間の第2の残余のログデータを、一時保存されている収集ログ「ログA」から読み出し、「ログA」の第2の残余の実体ログとして取得する。また、収集部10は、取得した第2の残余の実体ログについての保存実体ログ名を作成する。すなわち、収集部10は、例えば、収集ログ名の情報と一意の番号との組み合わせに、当該実体ログが配置される異常識別ディレクトリのディレクトリ名を更に組み合わせた「異常識別c/ログA-4」を、当該実体ログについての保存実体ログ名として作成する。
【0119】
また、収集部10は、保存部30で既に保存されている、2023/01/01 04:00の時点から2023/01/01 01:00の時点までの部分が重複している実体ログ「ログA-1」の保存実体ログ名「異常識別a/ログA-1」をログ参照情報ファイル11から取得する。
【0120】
収集部10は、以上のようにして得られた各情報が含まれている下記のログ応答を作成して保存部30に送付する。
【0121】
ログ応答:
({ログA、2023/01/01 01:00、2023/01/01 12:00}、
[<異常識別c/ログA-3、2023/01/01 10:00、2023/01/01 12:00、
(「ログA-3」の実体ログ)>]、
[<異常識別b/ログA-2、2023/01/01 07:00、2023/01/01 10:00>]、
[<異常識別c/ログA-4、2023/01/01 04:00、2023/01/01 07:00、
(「ログA-4」の実体ログ)>]、
[<異常識別a/ログA-1、2023/01/01 01:00、2023/01/01 04:00>])
【0122】
このログ応答を受け取った保存部30は、ログ応答に含まれている「ログA-3」及び「ログA-4」の実体ログの保存を行うと共に、ログ応答に含まれている収集ログ「ログA」に関する情報の保存とを行う。また、収集部10は、「ログA-3」及び「ログA-4」の実体ログの保存部30での保存状況についての情報をログ参照情報ファイル11に追加する。このときのログ参照情報ファイル11と保存部30のストレージ32でのログの保存状況との対応関係を
図8に示す。
【0123】
図8における[A]のログ参照情報ファイル11は、
図7における[A]のログ参照情報ファイル11に示されている2つのレコードに2つのレコードが追加された合計4つのレコードを、ログ開始日時の日時順に並べたものである。
【0124】
図8の[A]のログ参照情報ファイル11において、第1行目及び第3行目のレコードは、それぞれ、
図7の[A]のログ参照情報ファイル11における第1行目及び第2行目のレコードと同一のものである。また、
図8の[A]のログ参照情報ファイル11において、第2行目のレコードには、上記のログ応答データに含まれている実体ログ「ログA-4」についての参照情報である<保存実体ログ名、ログ終了日時、ログ開始日時>の各情報と同一の情報が示されている。また、第4行目のレコードには、上記のログ応答データに含まれている実体ログ「ログA-3」についての参照情報である<保存実体ログ名、ログ終了日時、ログ開始日時>の各情報と同一の情報が示されている。
【0125】
一方、
図8における[B]の保存状況では、
図7の[B]の状況から、「異常一覧」ディレクトリの直下の「異常識別c」ディレクトリに配置される「異常ログ」ファイルのテーブルが追加されている。
【0126】
この「異常ログ」ファイルのテーブルの第1行目のレコードには、「異常識別a」ディレクトリに配置される「異常ログ」ファイルに含まれているテーブルと同様に、ログ応答に含まれる収集ログに関する情報が格納される。すなわち、このレコードにおける「対象ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる{収集ログ名、終了日時、開始日時}の情報がそれぞれ格納される。なお、「実体ログ」のフィールドにはヌルデータとされる。
【0127】
また、「異常ログ」ファイルのテーブルの第2行目のレコードには、ログ応答に含まれる実体ログ「ログA-3」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-3」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。また、ログ応答に含まれる「ログA-3」の実体ログのデータファイルが、「異常ログ」と同一の「異常識別c」ディレクトリに配置される。
【0128】
更に、「異常ログ」ファイルのテーブルの第3行目のレコードには、ログ応答に含まれる実体ログ「ログA-2」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-2」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。
【0129】
また、「異常ログ」ファイルのテーブルの第4行目のレコードには、ログ応答に含まれる実体ログ「ログA-4」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-3」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。また、ログ応答に含まれる「ログA-4」の実体ログのデータファイルが、「異常ログ」と同一の「異常識別c」ディレクトリに配置される。
【0130】
更に、「異常ログ」ファイルのテーブルの第5行目のレコードには、ログ応答に含まれる実体ログ「ログA-1」についての参照情報が格納される。すなわち、このレコードにおける「実体ログ」、「ログ終了日時」、「ログ開始日時」の各フィールドには、ログ応答に含まれる「ログA-1」に関する<保存実体ログ名、ログ終了日時、ログ開始日時>の情報がそれぞれ格納される。なお、「対象ログ」のフィールドにはヌルデータとされる。
【0131】
以上までに説明したログデータの保存動作の第1の例から第4の例のようにして作成される「異常ログ」ファイルのテーブルを参照することで、収集ログについてのログデータの実体の所在を知ることができる。また、以上のようにして作成されるログ参照情報ファイル11を参照することで、保存部30のストレージ32に保存されているログデータの実体についての情報を得ることができる。
【0132】
次に、前述したログ保存装置1の各構成要素により行われる処理について、更に詳細に説明する。
【0133】
初めに、収集部10により行われるデータ収集処理110について説明する。
図9は、データ収集処理110の処理内容の一例を示すフローチャートである。
【0134】
図9の処理が開始されると、まず、S111において、対象システム2において作成されるログデータを収集する処理が行われる。次に、S112において、収集したログデータを、一時保存している当該ログデータについてのデータファイル(収集ログ)に追加する処理が行われる。S112の処理を終えると、データ収集処理110は一旦終了し、その後、このデータ収集処理110の実行が再度開始されて繰り返し実行される。
【0135】
以上までの処理がデータ収集処理110であり、この処理が、対象システム2において作成されるイベント毎のログデータのそれぞれについて行われる。
【0136】
次に、収集部10により行われるログ更新処理120について説明する。
図10は、ログ更新処理120の処理内容の一例を示すフローチャートである。
【0137】
図10の処理が開始されると、まず、S121において、この処理の実行時点の日時を現在日時として取得する処理が行われる。
【0138】
このS121の処理に続く、S122及びS123の処理は、収集部10で一時保存されている各収集ログを対象として行われる処理である。
【0139】
まず、S122では、処理対象の収集ログから、S121の処理で取得した現在日時から予め指定された期間(例えば一ヶ月間など)の範囲から外れている古い日時のログデータを削除する処理が行われる。
【0140】
次にS123では、ログ参照情報ファイル11における処理対象の収集ログについてのレコードのうちで、上記の範囲から外れている古い日時がログ開始日時のフィールドに示されているレコードを、ログ参照情報ファイル11から削除する処理が行われる。
【0141】
その後、収集部10で一時保存されている全ての収集ログに対して上述したS122及びS123の処理を終えると、ログ更新処理120は一旦終了し、その後、このログ更新処理120の実行が再度開始されて繰り返し実行される。
【0142】
以上までの処理がログ更新処理120である。
【0143】
次に、監視部20により行われる異常イベント検出処理200について説明する。
図11は、異常イベント検出処理200の処理内容の一例を示すフローチャートである。
【0144】
この異常イベント検出処理200では、S201からS203までの各処理が、収集部10で一時保存されている各収集ログのそれぞれを対象として行われる。
【0145】
図11の処理が開始されると、まず、S201では、処理対象の収集ログから、
図9に例示したデータ収集処理110によって追加されたログデータを読み出して取得する処理が行われる。
【0146】
次に、S202では、S201の処理によって取得されたログデータにより表されている値が、予め指定されている対象システム2の正常動作時における値の範囲を外れているか否かを判定する処理が行われる。この処理は、対象システム2での異常動作のイベントの発生を検出する処理である。ここで、この判定の結果がYESのときにのみ、S203の処理が実行される。このS203では、この処理の実行時点の日時を異常検出日時とし、例えばこのときの対象の収集ログと取得したログデータにより表されている値とに応じて異常カテゴリを設定した、前述の異常通知を発行して保存部30に送付する処理が行われる。
【0147】
その後、収集部10で一時保存されている全ての収集ログに対して上述したS201からS203にかけての処理を終えると、異常イベント検出処理200は一旦終了し、その後、この異常イベント検出処理200の実行が再度開始されて繰り返し実行される。
【0148】
以上までの処理が異常イベント検出処理200である。
【0149】
次に、保存部30により行われるログ要求処理300について説明する。
図12は、ログ要求処理300の処理内容の一例を示すフローチャートである。
【0150】
このログ要求処理300は、監視部20から送付される異常通知を保存部30が受け取ると開始される。
【0151】
まず、S301では、構成定義ファイル31を参照して、受け取った異常通知に示されている異常カテゴリに対応付けられている収集ログ名と期間との情報を取得する処理が行われる。
【0152】
次に、S302では、受け取った異常通知に示されている異常検出日時の情報と、S301の処理により取得した収集ログ名と期間との情報とを設定した前述のログ要求を発行して収集部10に送付する処理が行われる。
【0153】
次に、S303では、S302の処理により発行したログ要求に応じて保存部30から送られてくる前述のログ応答を受信する処理が行われる。
【0154】
次に、S304では、S303の処理により受信したログ応答に含まれている実体ログをストレージ32に保存する処理が行われる。この処理では、当該ログ応答に示されている異常識別を名称とするディレクトリをストレージ32に作成し、当該ディレクトリの直下に、当該ログ応答に示されている保存実体ログ名で当該実体ログを格納する処理が行われる。
【0155】
次に、S305では、S303の処理により受信したログ応答に含まれている、ログ応答に含まれている収集ログ「ログA」についての参照情報を、前述した異常ログとして、S304の処理により作成したディレクトリの直下に配置して格納する処理が行われる。その後は、このログ要求処理300が終了する。
【0156】
以上までの処理がログ要求処理300である。
【0157】
次に、収集部10により行われるログ応答処理400について説明する。
図13は、ログ応答処理400の処理内容の一例を示すフローチャートである。
【0158】
ログ応答処理400は、保存部30から送付されるログ要求を収集部10が受け取ると開始される。このログ応答処理400のうちのS401からS405までの各処理は、当該ログ要求に収集ログ名が示されている各収集ログのそれぞれを対象として行われる。
【0159】
図13の処理が開始されると、まず、S401では、受け取ったログ要求に示されている、「開始日時」と処理対象の収集ログについての「期間」とから、収集ログについての「終了日時」を算出する処理が行われる。前述したように、「終了日時」は「開始日時」から「期間」だけ遡った日時である。
【0160】
次に、S402では、ログ要求に示されている情報と、S401の処理により算出した情報とから、ログ応答に含める収集ログの情報、すなわち、{収集ログ名、終了日時、開始日時}の情報を作成する処理が行われる。
【0161】
S403では、ログ要求に示されている「開始日時」を、日時を示す変数Sに代入する処理が行われる。
【0162】
S404では、ログ参照情報ファイル11のテーブルに含まれているレコードのうちで、「ログ開始日時」が最新であるレコード、すなわち、「ログ開始日時」が最も後の日時を表しているレコードを、「参照レコード」として特定する処理が行われる。
【0163】
次に、S405において、実体ログ情報作成処理が行われる。この処理は、処理対象の収集ログについての「開始日時」の時点から「終了日時」の時点までの実体ログを特定し、当該実体ログに関する各種の情報の作成を行う処理である。なお、この処理は、S403の処理によって「開始日時」が代入された変数Sの値が、当該処理対象の収集ログについての「終了日時」となるまで繰り返し実行される。
【0164】
この実体ログ情報作成処理の詳細は後述する。
【0165】
S406では、S402の処理により作成した収集ログの情報と、S405の処理により作成した当該収集ログついての実体ログに関する各種の情報とを設定した前述のログ応答を発行して保存部30に送付する処理が行われる。その後は、このログ応答処理400が終了する。
【0166】
以上までの処理がログ応答処理400である。
【0167】
次に、上述したログ応答処理400におけるS405の処理である、実体ログ情報作成処理について更に説明する。
図14は、実体ログ情報作成処理の処理内容の一例を示すフローチャートである。
【0168】
まず、S411では、変数Sの値で示されている日時が、参照レコードにおける「ログ開始日時」から「ログ終了日時」までの期間内であるか否かを判定する処理が行われる。この判定処理において、変数Sが当該期間内であると判定されたとき(判定結果がYESのとき)にはS417に処理を進める。一方、この判定処理において、変数Sが当該期間を外れていると判定されたとき(判定結果がNOのとき)にはS412に処理を進める。
【0169】
S412では、処理対象の収集ログについての「終了日時」と、参照レコードにおける「ログ開始日時」とのうちで、後の方の日時、すなわち遅い方の日時を、日時を示す変数Eに代入する処理が行われる。
【0170】
S413では、変数Sで示される日時から変数Eで示される日時までの実体ログを、処理対象の収集ログであって収集部10において一時保存されている当該収集ログから取得する処理が行われる。
【0171】
S414では、S413の処理によって取得した実体ログについての保存実体ログ名を作成する処理が行われる。この処理では、例えば、前述したように、収集ログ名の情報と一意の番号との組み合わせに、当該実体ログが配置される異常識別ディレクトリのディレクトリ名を更に組み合わせることによって保存実体ログ名が作成される。
【0172】
S415では、S413の処理によって取得した実体ログについての参照情報、すなわち、<保存実体ログ名、ログ終了日時、ログ開始日時>の組み合わせの情報を作成する処理が行われる。なお、保存実体ログ名はS414の処理により作成したものが用いられる。また、ログ終了日時及びログ開始日時は、この処理の実行時点における変数E及び変数Sのそれぞれの値が用いられる。
【0173】
S416では、この処理の実行時点における変数Eの値を変数Sに代入する処理が行われ、その後は、この実体ログ情報作成処理を一旦終了する。
【0174】
一方、S417では、参照レコードにおける「ログ終了日時」は、処理対象の収集ログについての「終了日時」よりも後の日時(遅い日時)であるか否かを判定する処理が行われる。この判定処理において、「ログ終了日時」が「終了日時」よりも後の日時であると判定されたとき(判定結果がYESのとき)にはS418に処理を進める。一方、この判定処理において、「ログ終了日時」が「終了日時」以前の日時であると判定されたとき(判定結果がNOのとき)にはS420に処理を進める。
【0175】
S418では、参照レコードに示されている実体ログについての参照情報をそのまま用いて、当該実体ログについての<保存実体ログ名、ログ終了日時、ログ開始日時>の情報を作成する処理が行われる。
【0176】
S419では、参照レコードにおける「ログ終了日時」を変数Sに代入する処理が行われ、その後はS422に処理を進める。
【0177】
一方、S420では、参照レコードに示されている実体ログについての参照情報と、処理対象の収集ログについての「終了日時」とを用いて、当該実体ログについての<保存実体ログ名、ログ終了日時、ログ開始日時>の情報を作成する処理が行われる。この処理では、実体ログについての「ログ終了日時」が、参照レコードに示されている「ログ終了日時」の代わりに、処理対象の収集ログについての「終了日時」が設定される。
【0178】
S421では、処理対象の収集ログについての「終了日時」を変数Sに代入する処理が行われ、その後はS422に処理を進める。
【0179】
S422では、ログ参照情報ファイル11のテーブルに含まれているレコードのうちで、「ログ開始日時」が参照レコードの次に新しいレコードを、新たな「参照レコード」として特定する処理が行われ、その後は、この実体ログ情報作成処理を一旦終了する。
【0180】
以上までの処理が実体ログ情報作成処理である。
【0181】
以上までに説明した
図9から
図14の各処理がログ保存装置1において行われることによって、対象システム2での異常動作のイベントの発生過程の解明に必要なログデータの重複保存が解消されるので、当該ログデータの保存量が削減される。
【0182】
次に、ログ保存装置1のストレージ32に保存されたログデータを参照する手法について説明する。
図15は、ログ参照処理の処理内容の一例を示すフローチャートである。
【0183】
このログ参照処理の実行開始の指示には、前述した異常識別を指定する情報が含まれる。この実行開始の指示に応じて処理が開始されると、まず、S501では、ストレージ32に格納されている「異常ログ」ファイルを読み込む処理が行われる。
【0184】
図4の例を用いて前述したように、ストレージ32には「異常一覧」ディレクトリが設けられており、「異常一覧」ディレクトリの直下には「異常識別」ディレクトリが配置されており、この「異常識別」ディレクトリに「異常ログ」ファイルが配置されている。S501の処理では、実行開始の指示に含まれている情報で指定されている異常識別により「異常識別」ディレクトリが特定され、当該「異常識別」ディレクトリ配下の「異常ログ」ファイルの読み込みが行われる。
【0185】
次に、S501の処理により読み込まれた「異常ログ」ファイルに示されている対象ログ毎に、S502の処理が行われる。このS502では、「異常ログ」ファイルに示されている情報に従い、対象ログに対応付けられている実体ログの内容(ログデータ)を、直近のログ開始日時から日時順に遡りながら読み込んで出力する処理が行われる。
【0186】
その後、S501の処理により読み込まれた「異常ログ」ファイルに示されている全ての対象ログに対してS502の処理を終えると、このログ参照処理が終了する。
【0187】
以上までの処理がログ参照処理である。
【0188】
例えば、前述したログデータの保存動作の第4の例のようにしてログデータの保存が行われたことで、
図8の[B]に例示されているようにログがストレージ32で保存されている状況を想定する。この場合に、「異常識別c」の指定を含むログ参照処理の実行開始の指示がなされると、S501の処理では、「異常識別c」ディレクトリ配下の「異常ログ」ファイルが読み込まれる。そして、続くS502の処理では、当該「異常ログ」ファイルに示されている収集ログ「ログA」についての実体ログを読み込んで出力する処理が行われる。
【0189】
すなわち、最初に、「異常識別c」フォルダに配置されている実体ログ「ログA-3」から、2023/01/01 12:00の時点から2023/01/01 10:00の時点までのログデータを読み込んで出力する処理が行われる。
【0190】
次に、「異常識別b」フォルダに配置されている実体ログ「ログA-2」から、2023/01/01 10:00の時点から2023/01/01 07:00の時点までのログデータを読み込んで出力する処理が行われる。
【0191】
更に、「異常識別c」フォルダに配置されている実体ログ「ログA-4」から、2023/01/01 07:00の時点から2023/01/01 04:00の時点までのログデータを読み込んで出力する処理が行われる。
【0192】
そして、最後に、「異常識別a」フォルダに配置されている実体ログ「ログA-1」から、2023/01/01 04:00の時点から2023/01/01 01:00の時点までのログデータを読み込んで出力する処理が行われる。
【0193】
以上のように、ログ保存装置1で保存されているログデータの参照を、このログ参照処理に従って行うようにすることで、重複保存がされていないログデータの参照が容易に行えるようになる。
【0194】
次に、ログ保存装置1のハードウェア構成について説明する。
【0195】
図16は情報処理装置40のハードウェア構成例を示している。この情報処理装置40を用いてログ保存装置1を構成することが可能である。
【0196】
情報処理装置40は、CPU41、メモリ42、入力装置43、表示装置44、補助記憶装置45、及び通信I/F46の各構成要素を備えているコンピュータである。これらの構成要素はいずれも内部バス47に接続されており、各構成要素間でデータの授受が可能であるように構成されている。なお、「CPU」とはCentral Processing Unitの略語である。また、「I/F」とはInterfaceの略称である。
【0197】
CPU41は、例えば、メモリ42を利用して所定のプログラムを実行することによって情報処理装置40の各構成要素を制御して、ログ保存装置1の各構成要素の機能の提供を可能にする。
【0198】
入力装置43は、例えば、指示の入力用のキーボードやポインティングデバイス等である。
【0199】
表示装置44は、例えば、各種の情報の表示出力に用いられる。
【0200】
補助記憶装置45は、例えばフラッシュメモリやハードディスクドライブである。補助記憶装置45に各種のプログラム及びデータを格納しておき、それらを情報処理装置40がメモリ42にロードして使用することができる。
【0201】
通信I/F46は、例えば、必要に応じてCPU41から送られてくる指示に従い、不図示の通信ネットワークを介してデータを送受信する。
【0202】
情報処理装置40を用いてログ保存装置1を構成する場合には、例えば、データ収集処理110、ログ更新処理120、異常イベント検出処理200、ログ要求処理300、及びログ応答処理400の各処理をCPU41に行わせる各種のプログラムを作成する。そして、作成した各種のプログラムを補助記憶装置45に予め格納しておき、これらのプログラムをメモリ42にロードしてCPU41に実行させるようにする。このようにすることで、収集部10、監視部20、及び保存部30としての機能をCPU41が提供するようになる。この場合、補助記憶装置45は、ログ参照情報ファイル11及び構成定義ファイル31を保持し、収集部10が対象システム2から収集したログデータを一時保存する。更に、補助記憶装置45は、ストレージ32としての機能を提供する。また、通信I/F46は、通信ネットワーク3とのインタフェース機能を提供し、対象システム2との間での各種のデータの授受の管理を行う。
【0203】
なお、情報処理装置40を用いてログ保存装置1を構成する場合、情報処理装置40が
図16に示されている全ての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略してもよい。
【0204】
また、
図15に処理内容を示したログ参照処理を情報処理装置40に行わせるようにしてもよい。このためには、例えば、ログ参照処理をCPU41に行わせるプログラムを補助記憶装置45に予め格納しておき、このプログラムをメモリ42にロードしてCPU41に実行させるようにする。この場合に、例えば、
図15のS502の処理において、ログデータの内容を表示装置44での表示により出力するようにしてもよい。
【0205】
以上、開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【符号の説明】
【0206】
1 ログ保存装置
2 対象システム
3 通信ネットワーク
10 収集部
11 ログ参照情報ファイル
20 監視部
30 保存部
31 構成定義ファイル
32 ストレージ
110 データ収集処理
120 ログ更新処理
200 異常イベント検出処理
300 ログ要求処理
400 ログ応答処理