【解決手段】ログ管理装置1は、複数の処理のそれぞれに対応する複数のログを含むログ情報を取得する情報取得部111と、複数のログそれぞれに対応する処理内容、複数のログに対応する複数の処理間の状態遷移パターンを特定する特定部113と、複数の処理内容それぞれの基準、又は状態遷移パターンそれぞれの基準を含む基準情報を作成する情報作成部114と、基準情報を出力する情報出力部115と、を有する。
前記情報出力部は、前記特定部が特定した前記状態遷移パターンが、前記基準情報に含まれる、対応する前記複数の処理間の前記状態遷移パターンの基準と異なる場合に、警告情報を出力する、
請求項1に記載のログ管理装置。
前記情報出力部は、前記複数のログのうち少なくとも一つのログに対応する処理から他の複数のログそれぞれに対応する複数の処理に遷移する割合が、前記基準情報が示す、前記少なくとも一つのログに対応する処理から他の複数のログそれぞれに対応する複数の処理に遷移する割合に対して所定の値以上異なる場合に、警告情報を出力する、
請求項3に記載のログ管理装置。
【発明を実施するための形態】
【0013】
[ログ管理装置1の概要]
図1は、ログ管理装置1の構成を示す図である。ログ管理装置1は、システムが動作した際のシステムログを取得し、ログパターンをモデル化する装置である。システムログにおいては、ある処理が行われた直後に実行される処理が決まっている場合が多い。そこで、ログ管理装置1は、システムログを処理内容の種類別に分類し、分類したログ毎にアルファベットや数字等のラベルを付与する。ログ管理装置1は、分類した各ログの前後関係に着目して、管理する対象となる動作のログパターンのモデルを作成する。ログ管理装置1は、作成したモデルを出力することにより、システムの管理者が、管理する対象となる動作の正常時のログパターンを把握できるようにする。
【0014】
また、ログ管理装置1は、ラベルを付与したログ毎に正常時の処理内容に対応する基準を定めておき、解析する対象となるログが基準から乖離している場合に、異常が発生したログを特定し、異常が発生したログに関する情報を出力する。このようにすることで、システム管理者が、どこで異常が発生したかを把握しやすくすることができる。
以下、ログ管理装置1の構成について説明する。
【0015】
ログ管理装置1は、制御部11と、記憶部12とを有する。制御部11は、例えばCPU(Central Processing Unit)である。記憶部12は、ROM(Read Only Memory)、RAM(Random Access Memory)及びハードディスク等の記憶媒体を含む。記憶部12は、制御部11が実行するプログラムを記憶している。
【0016】
制御部11は、記憶部12に記憶されたプログラムを実行することにより、情報取得部111、条件受付部112、特定部113、情報作成部114及び情報出力部115として機能する。情報取得部111は、複数の処理のそれぞれに対応する複数のログを含むログ情報を取得する。
【0017】
条件受付部112は、ログに異常があることを検出する条件の入力を受け付ける。異常があることを検出するための条件は、例えば、一つのログに対応する処理に要する時間、一つのログに対応する処理のループ回数、及び一つのログに対応する処理から複数のログに対応する処理に分岐する際の遷移割合である。条件受付部112は、入力された条件を情報出力部115に通知する。
【0018】
特定部113は、複数のログそれぞれに対応する処理内容、複数のログに対応する複数の処理間の状態遷移パターンを特定する。特定部113は、複数のログそれぞれに含まれているコマンドを解析することにより、それぞれのログの処理内容を特定する。特定部113は、それぞれのログに対して、特定した処理内容に応じたラベルを付与する。
【0019】
図2は、複数のログの処理内容の一例を示す図である。
図2(a)は、システムのバージョンアップに関するログを示しており、
図2(b)は、システムの起動に関するログを示している。
【0020】
図2(a)に示す例の場合、特定部113は、アップデート開始処理のログにラベルAを付与し、更新内容の確認処理のログにラベルBを付与し、更新しない処理のログにラベルCを付与し、アップデートに成功した処理のログにラベルDを付与し、アップデートに失敗した処理のログにラベルEを付与する。また、特定部113は、リトライを実行するログにラベルFを付与し、アップデートを中断する処理のログにラベルGを付与し、アップデートを終了するログにラベルHを付与する。
【0021】
図2(b)に示す例の場合、特定部113は、モジュール初期化に成功した処理のログにラベルaを付与し、起動時自動実行に成功した処理のログにラベルbを付与し、バージョンを出力するログにラベルcを付与する。
【0022】
特定部113は、ラベルを付与した複数のログ間の関係を解析することにより、複数のログに対応する複数の処理間の状態遷移パターンを特定する。また、特定部113は、次に来るログの候補が複数あるログを分岐点とし、次の分岐までのログを1つのモデルとしてモデル化を行う。
【0023】
例えば、バージョンアップログの場合、特定部113は、以下の4つの状態遷移パターンがあることを特定する。
パターン1:START→A→B→C→H→END
パターン2:START→A→B→D→H→END
パターン3:START→A→B→E→F→E→F→E→F→G→END
パターン4:START→A→B→E→F→E→F→D→H→END
【0024】
また、特定部113は、起動ログの場合、以下の状態遷移パターンを特定する。
パターン1:START→a→b→c→END
【0025】
情報作成部114は、特定部113が特定した複数のログ及び複数のログ間の状態遷移パターンをモデル化することにより、状態遷移パターンを単純化した状態遷移モデルを作成する。
図3は、情報作成部114が作成したバージョンアップログの状態遷移モデルを示す表である。
図4は、
図3の表に対応する状態遷移グラフである。
【0026】
図3に示す表においては、行ラベルが元の状態を示しており、列ラベルが出力されるログを示す。
図3において「1」になっている箇所は、行ラベルのログに対応する処理から、列ラベルのログに対応する処理に遷移することを示している。また、1つの行における複数の箇所が「1」になっている行ラベルB、Fには分岐点があることがわかる。
【0027】
情報作成部114は、複数のログ間の分岐で区切ることで、複雑なパターンを単純な単方向リストの集合にする。例えば、情報作成部114は、特定部113が特定した状態遷移パターンにおける合流点で複数のログをまとめることにより、以下のようにモデル化することができる。
モデルSTART:START→A→B
モデルB(C):B→C→H→END
モデルB(D):B→D→H→END
モデルB(E):B→E→F
モデルF(E):F→E→F
モデルF(D):F→D→H→END
モデルF(G):F→G→END
このようにすることで、情報作成部114は、
図3及び
図4に示すようなモデルを作成することができる。
【0028】
また、情報作成部114は、ある処理に対応するログの前の処理に対応するログ、及びある処理に対応するログの後の処理に対応するログとの関係に基づいて、一つのログを複数の種類に分類してもよい。この場合、情報作成部114は、ある処理の開始から終了までの一連のログを切り出し、各ログの種類毎に、一つ前のログの種類と次に実行されるログの種類とを確認する。情報作成部114は、前のログの種類と次のログの種類とが両方とも複数である場合は、前のログの種類毎に分ける。この処理により、情報作成部114は、次に来るログが1種類に限定できるログと、複数種類のログが存在するログ、すなわち分岐するログとに分類できる。
【0029】
例えば、ログAの前のログが、ログX、ログY、ログZであるとする。また、前のログがログXのときの次のログが、ログB、ログC、ログEであり、前のログがログYのときの次のログがログD、ログEであり、前のログがログZのときの次のログがログCであるとする。
【0030】
この場合、情報作成部114は、以下のログA(X)、ログA(Y)、ログA(Z)を作成する。
ログA(X)
前のログ:ログX
次のログ:ログB、ログC、ログE
ログA(Y)
前のログ:ログY
次のログ:ログD、ログE
ログA(Z)
前のログ:ログZ
次のログ:ログC
【0031】
また、情報作成部114は、複数の状態遷移パターンに共通する箇所がある場合、共通する箇所に含まれる複数のログのラベルを、一つの共通ラベルに置換してもよい。例えば、情報作成部114は、開始点または分岐点から、次に来る分岐点又は終了点までを辿り、パターンを列挙することにより、以下の状態遷移モデルを生成したとする。
パターン1:START→A→B
パターン2:B→C→X→Y→Z
パターン3:B→D→E→X→Y→Z
パターン4:Z→F→END
パターン5:Z→G→END
この状態遷移モデルにおいては、状態遷移が発生している箇所を示す「→」の数が15個である。
【0032】
情報作成部114は、列挙したパターンの末尾が一致する箇所を探索し、共通部分を抜き出すことにより、以下のように、状態遷移モデルを単純化することができる。
パターン1:START→A→B
パターン2:B→C→X/Z
パターン3:B→D→E→X/Z
パターン4:Z→F→END
パターン5:Z→G→END
【0033】
この状態遷移モデルにおいては、状態遷移が発生している箇所を示す「→」の数が13個に減少している。このように、情報作成部114は、分岐点毎に区切ることで、組み合わせによるパターンの種類が増加することを防ぎつつ、1つのパターン中の分岐をなくし、線形リストとして扱えるようにすることができる。また、情報作成部114は、末尾の共通部分を抜き出すことで重複を減らし、使用するメモリ量を減らすことができる。
【0034】
情報出力部115は、このようにして情報作成部114が作成した状態遷移モデルをユーザのコンピュータに表示させることで、ユーザがシステムにおける状態遷移パターンを把握できるようにする。情報出力部115は、例えば
図3に示した状態遷移表や
図4に示した状態遷移グラフをユーザのコンピュータに表示させる。
【0035】
[異常状態の検出]
情報作成部114は、状態遷移モデルを作成した後に、複数のログに対応する処理内容それぞれの基準、又は状態遷移パターンそれぞれの基準を含む基準情報を作成するための学習を行う。状態遷移モデルを単純化しておくことにより、情報作成部114は、学習時間を低減することができる。
【0036】
複数の処理内容それぞれの基準は、例えば、同一のログに対応する処理を実行する時間間隔、ログに対応する処理を実行するために要する標準的な処理時間、及びログに対応する処理の繰り返し回数(以下、ループ回数という)である。状態遷移パターンそれぞれの基準は、例えば、複数のログのうち少なくとも一つのログに対応する処理から他の複数のログそれぞれに対応する複数の処理に遷移する割合の標準的な値である。
【0037】
情報作成部114は、例えば、
図3における「1」の箇所に対応するログ毎に、前回一つのログで処理が行われた時間から再び同じログで処理が行われるまでの時間間隔に関する異常判別の学習を行うことにより、標準的な処理時間間隔に関する基準を作成する。情報作成部114は、決定した基準を記憶部12に記憶させる。
【0038】
情報作成部114は、学習により決定した基準に基づいて、システムを動作させた際に異常が発生したことを検出する。具体的には、情報作成部114は、システムログを解析した結果、基準から乖離した状態を検出した場合に異常が発生したと判定する。情報作成部114は、異常が発生したログ又は状態遷移箇所を情報出力部115に通知する。
【0039】
情報出力部115は、情報作成部114から、異常が発生したログ又は状態遷移箇所の通知を受けた場合に警告情報を出力する。例えば、情報出力部115は、一つのログにおける処理時間、一つのログにおけるループ回数、又はログ間の遷移時間が、過去の最大値を更新した場合に、警告情報を出力する。情報出力部115が、
図3に示す状態遷移表における該当箇所に異常の内容を表示したり、
図4に示す状態遷移グラフにおける異常箇所の矢印を正常な場合と異なる色で表示したりすることにより、異常が発生した箇所をユーザに通知する。
【0040】
図5は、情報出力部115が出力する警告情報の一例を示す図である。
図5においては、
図3に示した状態遷移モデルにおいてログBからログCへの遷移時間が20秒になり、基準値10秒の2倍になっているという警告が表示されている。このように、情報出力部115は、例えば、複数のログ間の遷移時間が基準よりも大きい場合に、異常が発生した箇所、及び異常の内容を出力してユーザに通知する。
【0041】
情報出力部115は、複数のログのうち少なくとも一つのログに対応する処理から他の複数のログそれぞれに対応する複数の処理に遷移する割合が、基準情報が示す、少なくとも一つのログに対応する処理から他の複数のログそれぞれに対応する複数の処理に遷移する割合に対して所定の値以上異なる場合に、警告情報を出力してもよい。具体的には、正常状態において、
図4に示すログBからログCに遷移する割合が50%、ログBからログDに遷移する割合が30%、ログBからログEに遷移する割合が20%である場合に、それぞれの遷移割合が40%、40%、20%になった場合に、情報出力部115は異常が発生したことを示す警告情報を出力する。
【0042】
[状態遷移モデルの作成・表示方法における処理手順]
以下、状態遷移モデルの作成・表示方法における処理手順について説明する。
(ステップ1)
まず、情報取得部111が、所定の期間にわたってシステムを運用した結果に基づくシステムログを取得する。
【0043】
(ステップ2)
続いて、特定部113が、ステップ1において取得されたログに対して、システム起動のログ群、バージョンアップ処理のログ群、又は時刻同期のログ群等のように、処理に対応するログ群にシステムログを分ける。分けたログ群に含まれる各処理のログの文言の種類毎にラベル付けを行う。
【0044】
(ステップ3)
続いて、情報作成部114が、ステップ2において分けたログ群から、開始から終了までの一連のパターンになるように一以上のログを切り出す。そして、情報作成部114は、切り出したログのすべての種類のログに対して、一つ前のログと次に来るログを列挙する。
図6は、情報作成部114の動作について説明するための図であり、
図6(a)は、ステップ3における処理のイメージを示している。
【0045】
(ステップ4)
続いて、情報作成部114は、前に来るログの候補が複数あり、かつ次に来るログの候補も複数ある場合、前に来るログ毎に分けることにより分岐先を限定し、ルートを絞る。
図6(b)は、ステップ4の処理のイメージを示す図である。
図6(b)におけるC(A)は、直前のログがAであるログCであり、C(B)は、直前のログがBであるログCである。
【0046】
(ステップ5)
続いて、情報作成部114は、隣接行列状のデータ構造として領域を確保することにより、状態遷移モデルを完成させる。
図7は、情報作成部114が作成した状態遷移モデルを示す図である。情報作成部114は、状態遷移モデルをポインタの2次元配列として作成し、作成したインスタンスを各箇所に設定する。インスタンスは、例えば、ログ出力の時間間隔の異常の有無を判別する際の基準値、及び異常検出時の動作等を示す情報である。ユーザは、インスタンスとして設定するアラート出力関数や閾値等のルールを手動で設定することもできる。
【0047】
(ステップ6)
最後に、情報出力部115は、隣接行列に基づいてモデル化を行ったり有向グラフを作成して出力したりすることで、ログにおいて異常が発生した箇所をユーザが視認できるようにする。
【0048】
[ログ管理装置1による効果]
ログ管理装置1においては、特定部113がシステムログに含まれる状態遷移パターンをモデル化し、情報作成部114が、複数のログのそれぞれにおける処理内容の基準、又は状態遷移パターンそれぞれの基準を含む基準情報を作成する。また、情報作成部114は、小規模の異常判別処理を複数組み合わせることにより、システムログに含まれるどのログ又は状態遷移箇所において異常が発生したことを検出する。そして、情報出力部115は、異常が発生したログ又は状態遷移箇所を特定するための警告情報を出力する。
【0049】
したがって、ログ管理装置1は、異常が発生した箇所を特定し、異常が発生した箇所をユーザに通知することができる。その結果、ユーザは、システムに異常が発生した箇所、及び異常が発生した原因を特定しやすくなる。
【0050】
ログ管理装置1は、バージョンアップ等で新しいパターンが出現した場合や、判別条件の学習結果やパターンのモデル化がユーザの意図したものと異なるものになった場合に、全体を学習し直さずに部分的に異常判別対象を更新することもできる。また、ユーザが、手動でモデルや判別条件を編集することで、容易にメンテナンスをすることができる。
【0051】
また、あるログの前と後に来るログの候補が複数種類存在すると、一つのノードにまとめられ、ループにならない部分がループ構造になってしまうことがある。このような場合、情報作成部114は、複数ルートから複数ルートに遷移する混線の元になるノードを、前に来るログの種類で分けることにより状態遷移モデルを作成する。
【0052】
具体的には、情報作成部114は、混線の原因となるノードを、通過点(1ルート→1ルート)、分岐点(1ルート→複数ルート)、及び合流点(複数ルート→1ルート)に置き換えることにより、存在しないループパターンを無くすことができる。例えば、情報作成部114は、
図8(a)に示す状態遷移パターンにおける複数ルートから複数ルートに分岐するノードを遷移元の種類毎に分離することで、
図8(b)に示す状態遷移パターンを作成する。
【0053】
なお、情報出力部115は、規模が大きく複雑で全体を表示することが難しいモデルを、分岐のポイントに着目することで簡略化して見やすく表示してもよい。例えば、情報出力部115は、状態遷移パターンを表示する場合、中間のノードを省略して表示してもよい。一例として、情報出力部115は、
図9(a)に示す状態遷移パターンを、
図9(b)のように簡略化して表示してもよい。このようにすることで、ユーザが、状態遷移パターンを把握しやすくなる。
【0054】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。