(57)【特許請求の範囲】
【請求項１】
イベントを含む既知パターンと評価対象のシステムのログに含まれるイベントを含む未知パターンとに基づき、前記未知のパターンと前記既知のパターンの類似性を比較し、前記類似性を基に、前記既知パターンと前記未知パターンの差分である新規イベント又は削除候補イベント、又は、前記既知パターンと前記未知パターンと間で交換可能な更新候補イベントの少なくとも１つ又は複数を抽出し、前記新規イベント、削除候補イベント又は更新候補イベント、若しくは、前記未知パターンの少なくとも１つと、前記既知パターンとを送信するパターン比較手段と、
前記新規イベント、削除候補イベント又は更新候補イベントの少なくともいずれかを受信し、受信したイベントに対応するパターンが合致した回数を含む照合結果に基づき、前記受信したイベントに対応するパターンを更新するか否か判定するイベント判定手段と、
前記イベント判定手段が更新すると判定したパターン又は前記パターン比較手段から受信したパターンを予め定められた条件に基づき、更新するパターンか否かを判定するパターン判定手段と、
前記パターン判定手段が更新と判定したパターンを更新するパターン更新手段と
を含む情報処理装置。
【請求項２】
前記パターン比較手段が、
前記既知パターンと前記未知パターンの類似性として、所定の重み関数を用いて算出した編集距離を用いる
請求項１に記載の情報処理装置。
【請求項３】
前記既知パターンを記憶するパターン記憶手段と、
前記既知パターンの合致の回数である照合結果を記憶する照合結果記憶手段と、
前記評価対象のシステムのログに前記パターン記憶手段に記憶された既知パターンと異なるパターンが含まれるか否かを判定するログ照合手段と、
前記ログ照合手段において異なるパターンがないと判定した場合に、前記照合結果記憶手段が記憶する合致の回数を更新する照合結果集計手段と、
前記ログ照合手段において異なるパターンがあると判定した場合に、異なるパターンを未知パターンとして抽出し、前記パターン比較手段に送信するパターン学習手段と
を含む請求項１又は２に記載の情報処理装置。
【請求項４】
前記イベント判定手段は、受信した前記イベントを送信し、
前記パターン判定手段は、前記イベントを受信し、
さらに、
イベントと属性とを含むログ情報を記憶するログ情報記憶手段と、
前記ログ情報において前記イベント判定手段から受信したイベントに対応する属性と同じ属性に対応するイベントを選択し、選択したイベントを前記パターン判定手段に送信するログ情報判定手段とを含む
請求項３に記載の情報処理装置。
【請求項５】
情報処理装置において、
イベントを含む既知パターンと評価対象のシステムのログに含まれるイベントを含む未知パターンとに基づき、前記未知のパターンと前記既知のパターンの類似性を比較し、前記類似性を基に、前記既知パターンと前記未知パターンの差分である新規イベント又は削除候補イベント、又は、前記既知パターンと前記未知パターンと間で交換可能な更新候補イベントの少なくとも１つ又は複数を抽出し、
前記抽出した少なくとも１つイベントに対応するパターンが合致した回数を含む照合結果に基づき、前記抽出したイベントに対応するパターンを更新するか否か判定し、
前記更新すると判定したパターン又は前記既知パターンを予め定められた条件に基づき、更新するパターンか否かを判定し、
前記更新と判定したパターンを更新する
情報処理方法。
【請求項６】
イベントを含む既知パターンと評価対象のシステムのログに含まれるイベントを含む未知パターンとに基づき、前記未知のパターンと前記既知のパターンの類似性を比較し、前記類似性を基に、前記既知パターンと前記未知パターンの差分である新規イベント又は削除候補イベント、又は、前記既知パターンと前記未知パターンと間で交換可能な更新候補イベントの少なくとも１つ又は複数を抽出する処理と、
前記抽出した少なくとも１つイベントに対応するパターンが合致した回数を含む照合結果に基づき、前記抽出したイベントに対応するパターンを更新するか否か判定する処理と、
前記更新すると判定したパターン又は前記既知パターンを予め定められた条件に基づき、更新するパターンか否かを判定する処理と、
前記更新と判定したパターンを更新する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムが出力する情報を分析する情報処理装置、情報処理方法、及び、記憶媒体に関する。
【背景技術】
【０００２】
情報処理システムの運用管理者は、情報処理システムの運用管理において、情報処理システムの異常（例えば、障害など）の発生を監視し、発生した異常の原因を分析する。運用管理者は、異常の分析のため、情報処理システムが出力したログを分析する。しかし、情報処理システムは、近年、大規模化かつ複雑化しているため、情報処理システムが出力するログのサイズ（又は、数量）は、膨大となっている。そのため、運用管理者にとって、全ての情報処理システムのログを詳細に分析することが、難しくなっている。【０００３】
その対策として、ログを分析するための分析ルールが、定義されている。運用管理者は、分析ルールに基づいて、情報処理システムから出力されたログ（メッセージ）を分析する。【０００４】
しかし、情報処理システムに含まれるソフトウェアは、更新される。また、情報処理システムに含まれる機器は、交換される。このように、情報処理システムには、更新が、発生する。そして、情報処理システムの更新に伴い、分析ルールにも、更新が、必要となる。しかし、膨大な情報処理システムに対応した分析ルールは、膨大となっている。そのため、逐次、人手で分析ルールを更新することは、困難である。【０００５】
その対策として、近年、ログを分析するための分析ルールを自動的に更新する技術が提案されている（例えば、特許文献１及び２を参照）。【０００６】
特許文献１に記載の管理装置は、情報処理システムの更新情報及び更新された構成要素に基づき、パターン集合を更新する。特許文献１に記載の管理装置は、より詳細には、次のように動作する。すなわち、特許文献１の管理装置は、情報処理システムの更新情報、並びに、更新に基づき情報処理システムから取り除かれた構成要素及びその構成要素に関するログ（メッセージ）の情報を参照する。そして、特許文献１の管理装置は、それらの情報に基づき、パターン集合に含まれる上記のメッセージを含むパターンから、メッセージを削除する。この動作を基に、特許文献１に記載の管理装置は、パターン集合を更新する。【０００７】
特許文献２に記載のソフトウェア動作モデル化装置は、ソフトウェアが出力する未知のインストラクションに基づいて、動作モデルを更新する。特許文献２に記載のソフトウェア動作モデル化装置は、より詳細には、次のように動作する。すなわち、特許文献２に記載のソフトウェア動作モデル化装置は、未知のインストラクションを検出した場合に、既存の動作モデルに、未知のインストラクションを追加する。そして、特許文献２に記載のソフトウェア動作モデル化装置は、その他のインストラクションとの共起頻度を算出する。そして、特許文献２に記載のソフトウェア動作モデル化装置は、動作モデルを更新する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−１２３６９４号公報
【特許文献２】特開２００６−２６８７７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に記載の技術は、構成要素と構成要素に関係するメッセージに注目する。そして、特許文献１に記載の技術は、注目している構成要素が情報処理システムから取り除かれたことを契機として、パターンに含まれる構成要素に関係するメッセージを削除する。不要になったメッセージの削除は、ログ（メッセージ）の分析ルールにおいて、適切なパターン集合を維持するために重要である。しかし、特許文献１に記載の技術は、更新時に不要となったメッセージを知ることができない場合、適切なパターンを維持できない。そのため、特許文献１に記載の技術は、分析ルールの集合を適切な状態に維持できないという問題点があった。【００１０】
特許文献２に記載の技術は、既知の動作モデルと比較し、未知のインストラクションが検出されたことを契機として、未知のインストラクションを含むように動作モデルを更新する。さらに、特許文献２に記載の技術は、未知のインストラクションとその他のインストラクションとの共起頻度を算出して、未知のインストラクションを動作モデルに反映する。未知のインストラクションを動作モデルに反映することは、動作モデルの精度を維持するために重要である。ただし、動作モデルは、異常なログ（メッセージ）の検出に用いられる。異常を動作モデルのログから正確かつ迅速に検出するため、動作モデルを常に適切な状態を維持することが必要である。動作モデルを適切な状態に維持するためには、動作モデルから不要なインストラクションを取り除くことが、必要である。しかし、特許文献２に記載の技術は、動作モデルから不要なインストラクションを削除できない。そのため、特許文献２に記載の技術は、分析ルールの集合を適切な状態に維持できないという問題点があった。【００１１】
本発明の目的は、上記問題点を解決する情報処理装置、情報処理方法、及び、記憶媒体を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一形態における情報処理装置は、イベントを含む既知パターンと評価対象のシステムのログに含まれるイベントを含む未知パターンとに基づき、前記未知のパターンと前記既知のパターンの類似性を比較し、前記類似性を基に、前記既知パターンと前記未知パターンの差分である新規イベント又は削除候補イベント、又は、前記既知パターンと前記未知パターンと間で交換可能な更新候補イベントの少なくとも１つ又は複数を抽出し、前記新規イベント、削除候補イベント又は更新候補イベント、若しくは、前記未知パターンの少なくとも１つと、前記既知パターンとを送信するパターン比較手段と、前記新規イベント、削除候補イベント又は更新候補イベントの少なくともいずれかを受信し、受信したイベントに対応するパターンが合致した回数を含む照合結果に基づき、前記受信したイベントに対応するパターンを更新するか否か判定するイベント判定手段と、前記イベント判定手段が更新すると判定したパターン又は前記パターン比較手段から受信したパターンを予め定められた条件に基づき、更新するパターンか否かを判定するパターン判定手段と、前記パターン判定手段が更新と判定したパターンを更新するパターン更新手段とを含む。【００１３】
本発明の一形態における情報処理方法は、情報処理装置において、イベントを含む既知パターンと評価対象のシステムのログに含まれるイベントを含む未知パターンとに基づき、前記未知のパターンと前記既知のパターンの類似性を比較し、前記類似性を基に、前記既知パターンと前記未知パターンの差分である新規イベント又は削除候補イベント、又は、前記既知パターンと前記未知パターンと間で交換可能な更新候補イベントの少なくとも１つ又は複数を抽出し、前記抽出した少なくとも１つイベントに対応するパターンが合致した回数を含む照合結果に基づき、前記抽出したイベントに対応するパターンを更新するか否か判定し、前記更新すると判定したパターン又は前記既知パターンを予め定められた条件に基づき、更新するパターンか否かを判定し、前記更新と判定したパターンを更新する。【００１４】
本発明の一形態における記憶媒体は、イベントを含む既知パターンと評価対象のシステムのログに含まれるイベントを含む未知パターンとに基づき、前記未知のパターンと前記既知のパターンの類似性を比較し、前記類似性を基に、前記既知パターンと前記未知パターンの差分である新規イベント又は削除候補イベント、又は、前記既知パターンと前記未知パターンと間で交換可能な更新候補イベントの少なくとも１つ又は複数を抽出する処理と、前記抽出した少なくとも１つイベントに対応するパターンが合致した回数を含む照合結果に基づき、前記抽出したイベントに対応するパターンを更新するか否か判定する処理と、前記更新すると判定したパターン又は前記既知パターンを予め定められた条件に基づき、更新するパターンか否かを判定する処理と、前記更新と判定したパターンを更新する処理とをコンピュータに実行させるプログラムを記憶する。
【発明の効果】
【００１５】
本発明によれば、ログ（メッセージ）を分析するための分析ルールの集合を、適切な状態に維持できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明における第１の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態に係るパターンの一例を示す図である。
【図３】図３は、第１の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図４】図４は、第１の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図５】図５は、第１の実施形態に係るパターン比較部の動作の一例を示すフローチャートである。
【図６】図６は、第１の実施形態に係る照合結果の一例を示す図である。
【図７】図７は、第１の実施形態に係る照合結果の一例を示す図である。
【図８】図８は、第１の実施形態に係る情報処理装置の第１の変形例の構成の一例を示すブロック図である。
【図９】図９は、第１の実施形態に係る情報処理装置の第２の変形例の構成の一例を示すブロック図である。
【図１０】図１０は、本発明における第２の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図１１】図１１は、第２の実施形態に係るログ情報の一例を示す図である。
【発明を実施するための形態】
【００１７】
次に、本発明における実施形態について図面を参照して説明する。
【００１８】
なお、各図面は、本発明の実施形態を説明するものである。ただし、本発明は、各図面の記載に限られるわけではない。
【００１９】
また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
【００２０】
また、以下の説明に用いる図面において、本発明の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【００２１】
また、以下の説明において、各実施形態の記憶部は、データを受信し、受信したデータを記憶するとして説明する。ただし、本発明の記憶部は、これに限る必要はない。例えば、各構成要素が、記憶部にデータを書き込んでも良い。
【００２２】
まず、実施形態の説明における用語について整理する。
【００２３】
「対象システム」とは、実施形態に係る情報処理装置の分析の対象となる情報処理システムのことである。なお、対象システムは、一般的な情報処理システム、又は、コンピュータシステムに限られない。例えば、対象システムは、工業施設（化学プラント又は発電所）でもよい。
【００２４】
「ログ」とは、対象システムが出力する情報又は出力された情報の記録である。実施形態に係る情報処理装置の処理の対象は、ログに含まれる情報である。ただし、ログが含む情報には、特に制限はない。例えば、ログは、対象システムの利用状況、性能情報、又は、データ通信の送受信状況を含んでもよい。また、ログの形式は、特に制限はない。例えば、ログは、上記の情報を記録したファイル形式でもよい。さらに、ログは、上記の情報として、少なくとも対象システムが出力した１つ又は複数のメッセージ（以下、「ログメッセージ」という）を含む。ログメッセージは、ログレコードとも言われる。以下では、ログに含まれる情報の一例として、ログメッセージを用いて説明する。
【００２５】
なお、ログメッセージが含む情報は、特に制限はない。例えば、ログメッセージは、ログメッセージが出力された時刻、関連するイベントのイベント名、イベントを識別するためのイベントＩＤ（Identifier）、メッセージ本文、又は、ログレベルを含んでも良い。ただし、以下の説明において、ログメッセージを、イベント名又はイベントＩＤなどの一意に識別できる識別子を用いて表現する。具体的には、以下の説明は、ログメッセージを、イベント（イベントＩＤ）を用いて表現する。
【００２６】
「パターン」とは、パターンを一意に識別するための識別子（パターンＩＤ（Identifier））とログメッセージの集合とを含む情報である。ただし、上記のとおり、パターンは、ログメッセージを一意に識別可能なイベントの集合でもよい。パターンは、ログメッセージ又はイベントの集合の各要素を時系列の順に並べたものでもよい。さらに、パターンは、ログメッセージ又はイベントを、発生した時刻とともに含んでも良い。あるいは、パターンは、後ほど説明するログ照合部１１０の照合における照合の対象であるか否かを示す情報を含んでよい。
【００２７】
なお、パターンは、集合として、要素が１つの集合を含む。また、ログ及びパターンは、それぞれ、ログメッセージ又はイベントの集合を含む。つまり、ログメッセージの集合とイベントの集合は、それぞれ、ログに含まれる集合と、パターンに含まれる集合とがある。そして、本実施形態は、後ほど説明するとおり、ログに含まれるログメッセージ又はイベントと、パターンに含まれるログメッセージ又はイベントとを比較する。そこで、以下では、説明を明確にするため、ログに含まれるログメッセージ又はイベントの集合を「ログメッセージ」とし、パターンに含まれるログメッセージ又はイベントの集合を「イベント」との表現を用いて説明する。つまり、ログは、１つ又は複数のログメッセージを含む。一方、パターンは、パターンＩＤと、１つ又は複数のイベントを含む。ただし、これは説明の便宜のためであり、以下の説明において、ログメッセージとイベントとは、それぞれ、ログメッセージの集合及びイベントの集合の両方を含むものとする。
【００２８】
なお、上記のとおり、ログメッセージは、イベントを用いて表現される。つまり、以下の説明において、ログメッセージとイベントとの比較は、それぞれに含まれるイベントの比較となる。
【００２９】
「照合情報」とは、後ほど説明するログ照合部１１０における、パターンに含まれるイベントと、ログのログメッセージとの照合において、イベントと合致したログメッセージに関連する情報である。照合情報は、少なくとも、合致したパターンと、合致したログメッセージ又は照合の時間に関する情報（例えば、ログメッセージの発生時刻、照合の時刻、又は、照合の期間）とを含む。
【００３０】
「照合結果」とは、後ほど説明する照合結果集計部１２０が照合情報を用いて集計した情報である。照合結果は、少なくとも、パターン又はパターンを識別する情報（パターンＩＤ）と、イベントとログメッセージとが合致した回数とを含む。つまり、照合結果は、パターン（既知のパターン）に含まれるイベントが、ログに含まれるログメッセージと合致した回数を含む。照合結果は、さらに、前回の照合においてイベントとログメッセージとが合致した回数、又は、所定の時間単位当たりのログメッセージの発生回数（平均発生回数）を含んでもよい。あるいは、照合結果は、時間当たりの合致した回数を含んでも良い。あるいは、照合結果は、時系列の情報として、上記情報を含んでも良い。なお、後ほど説明するように、照合結果記憶部１８０が、照合結果を記憶し、照合結果集計部１２０が、照合結果を更新する。
【００３１】
＜第１の実施形態＞
図１は、本発明における第１の実施形態に係る情報処理装置１００の構成の一例を示すブロック図である。情報処理装置１００は、対象システムが出力するログを受信し、受信したログメッセージを分析する。
【００３２】
そのため、図１に示すように、情報処理装置１００は、ログ照合部１１０と、照合結果集計部１２０と、パターン学習部１３０と、パターン比較部１４０と、イベント判定部１５０と、パターン判定部１６０と、パターン更新部１７０とを含む。さらに、情報処理装置１００は、照合結果記憶部１８０と、パターン記憶部１９０とを含む。
【００３３】
パターン記憶部１９０は、パターンを記憶する。
【００３４】
図２は、本実施形態に係るパターン記憶部１９０が記憶するパターン３００の一例を示す図である。図２に示すパターン３００は、パターンＩＤ３０１とイベント３０２とを含む。例えば、図２の１行目のパターン３００において、パターンＩＤ３０１は、「１」である。また、イベント３０２は、３つのイベント「１、５、８」の集合である。なお、図２に示すイベントは、イベントを一意に識別する識別子（以下、「イベントＩＤ」という）を用いて表されている。
【００３５】
図１を参照した説明に戻る。
【００３６】
ログ照合部１１０は、対象システムからのログを受信する。そして、ログ照合部１１０は、ログに含まれるログメッセージを、パターン記憶部１９０に記憶されたパターンに含まれるイベントと照合（比較）する。ただし、既に説明したとおり、パターンは、ログ照合部１１０において照合対象とするか否かの情報を含んでも良い。その場合、ログ照合部１１０は、ログメッセージを、照合対象とする情報を含むパターンに含まれるイベントと照合する。
【００３７】
なお、ログ照合部１１０は、ログとして、対象システムから個別にログを受信してもよい。あるいは、ログ照合部１１０は、ログを含むファイル（ログファイル）を受信してもよい。あるいは、ログ照合部１１０は、対象システムと異なる構成要素から対象システムのログを受信しても良い。例えば、ログ照合部１１０は、対象システムのログを記憶する図示しない記憶部から、ログを受信してもよい。あるいは、ログ照合部１１０は、図示しない運用管理者が操作する装置からログを受信してもよい。
【００３８】
ログ照合部１１０における照合（比較）の結果、ログメッセージに対応するイベントがある場合、ログ照合部１１０は、そのパターンを照合結果集計部１２０に送信する。ここで、送信するパターンは、ログメッセージ又はログメッセージに含まれるイベントが発生した時刻と、ログメッセージに対応するイベントとを含む。ログ照合部１１０は、照合情報として、そのパターンを照合結果集計部１２０に送信する。なお、情報処理装置１００が、対象システムから、リアルタイムに近いタイミングでログを受信している場合、ログメッセージの発生した時刻は、照合した時刻とほぼ同じとなる。そのため、照合情報は、ログメッセージ又はイベント発生した時刻として、照合した時刻を含んでも良い。
【００３９】
一方、ログ照合部１１０の照合（比較）の結果、ログメッセージに対応するイベントがない場合、ログ照合部１１０は、受信したログメッセージをパターン学習部１３０に送信する。
【００４０】
照合結果記憶部１８０は、後ほど説明する照合結果集計部１２０が出力する照合結果を記憶する。
【００４１】
照合結果集計部１２０は、ログ照合部１１０から受信した照合情報に基づき、照合結果記憶部１８０に記憶されているパターンの照合結果を更新する。つまり、照合結果集計部１２０は、照合情報に含まれるパターンに対応する照合結果記憶部１８０に記憶されている照合結果を更新する。なお、照合結果に含まれるパターンが、照合結果記憶部１８０に記憶されていない場合、照合結果集計部１２０は、照合結果として、照合結果記憶部１８０に、受信した照合情報のパターンと合致した回数とを記憶する。なお、照合情報が時間に関する情報（例えば、前述の照合の時刻又はイベントの発生時刻）を含む場合、照合結果集計部１２０は、照合情報を基に、照合結果の時間に関する情報を更新する。
【００４２】
パターン学習部１３０は、ログ照合部１１０から受信したログメッセージに基づき、未知のパターンを抽出する。パターン学習部１３０におけるパターンの抽出の手法は、特に制限はない。例えば、パターン学習部１３０は、パターンの学習に用いられるアプリオリ・アルゴリズム（Apriori Algorithm）、又は、プレフィックス・スパン・アルゴリズム（Prefix Span Algorithm）を用いてもよい。パターン学習部１３０は、抽出した未知パターンを、パターン比較部１４０に送信する。
【００４３】
パターン比較部１４０は、パターン学習部１３０から受信した未知パターンと、パターン記憶部１９０に記憶されたパターン（既知パターン）とを比較する。そして、パターン比較部１４０は、パターン記憶部１９０に記憶されたパターンに、未知パターンと類似するパターン（類似パターン）があるか否かを判定する。パターン比較部１４０は、判定結果に基づいて、後ほど説明するように所定の情報を抽出する。ここで、所定の情報とは、例えば、新規イベント又は更新候補イベントである。そして、パターン比較部１４０は、後ほど説明するように、抽出した情報を、イベント判定部１５０又はパターン判定部１６０に送信する。
【００４４】
ここで、「新規イベント」とは、未知パターンに含まれるが、類似パターンに含まれないイベントである。
【００４５】
また、「更新候補イベント」とは、類似パターンに含まれるイベントにおいて、未知パターンに含まれるイベントと相違するイベントである。
【００４６】
なお、パターン比較部１４０については、後ほどさらに詳細に説明する。
【００４７】
イベント判定部１５０は、パターン比較部１４０から受信した更新候補イベントに基づき、照合結果記憶部１８０から更新候補イベントに関する照合結果を取得する。そして、イベント判定部１５０は、取得された照合結果と、予め定められた閾値（例えば、合致回数）とに基づき、更新候補イベントの中から閾値条件（例えば、合致の回数が閾値を超える回数）を満たすイベントを選択する。以下、選択されたイベントを「更新イベント」という。そして、イベント判定部１５０は、更新イベントと、新規イベントの組が存在する場合、更新イベントと新規イベントとの組をパターン判定部１６０に送信する。
【００４８】
また、イベント判定部１５０は、パターン記憶部１９０に新規パターンを送信する。
【００４９】
なお、イベント判定部１５０については、後ほどさらに詳細に説明する。
【００５０】
パターン判定部１６０は、イベント判定部１５０から受信した更新イベントに基づき、パターン記憶部１９０に記憶されたパターンの中から、更新イベントを含むパターンを選択する。以下、選択されたパターンを「更新候補パターン」という。パターン判定部１６０は、更新候補パターンに基づき、照合結果記憶部１８０から、更新候補パターンに対応する照合結果を取得する。パターン判定部１６０は、取得した照合結果と、予め定められた閾値（例えば、合致の回数）とに基づき、更新候補パターンの照合情報において閾値条件（例えば、合致の回数が閾値を超える）を満たすパターンを選択する。以下、選択したパターンを「更新パターン」という。パターン判定部１６０は、更新イベント、新規イベント及び更新パターンを、パターン更新部１７０に送信する。
【００５１】
あるいは、パターン判定部１６０は、後ほど説明するとおり、パターン比較部１４０から、情報を受信して、動作する場合もある。
【００５２】
なお、パターン判定部１６０については、後ほどさらに詳細に説明する。
【００５３】
パターン更新部１７０は、パターン判定部１６０から受信した、更新イベント、新規イベント及び更新パターンに基づき、更新パターンに含まれる更新イベントと新規イベントとを置換し、新規パターンを生成する。そして、パターン更新部１７０は、生成した新規パターンをパターン記憶部１９０に送信する。
【００５４】
パターン記憶部１９０は、受信したパターンを記憶する。
【００５５】
次に、本実施形態に係る情報処理装置１００の動作について、図３及び４を参照して説明する。
【００５６】
図３及び４は、本実施形態に係る情報処理装置１００の動作の一例を示すフローチャートである。
【００５７】
まず、ログ照合部１１０は、対象システムからログメッセージを含むログ（例えば、ログファイル）を受信する（ステップＳ１０１）。ここで、ログ照合部１１０は、対象システムが正常に運用されていた期間におけるログ（正常ログファイル）を受信する。そして、ログ照合部１１０は、正常ログファイルから、時系列の順に、ログメッセージを取り出す。取り出したログメッセージは、分析対象のデータである。
【００５８】
次に、ログ照合部１１０は、パターン記憶部１９０に記憶されたパターンのイベントと、分析対象データ（ログメッセージ）とを照合（比較）する（ステップＳ１０２）。つまり、ログ照合部１１０は、受信したログメッセージと、各パターンのイベントとが合致するか否かを照合（比較）する。
【００５９】
合致するパターンがある場合（ステップＳ１０２でＹｅｓ）、ログ照合部１１０は、照合情報（パターンとログメッセージの発生時刻）を照合結果集計部１２０に送信する。一方、合致するパターンがない場合（ステップＳ１０２でＮｏ）、ログ照合部１１０は、受信したログメッセージをパターン学習部１３０に送信する。
【００６０】
そして、合致したパターンがある場合（ステップＳ１０２でＹｅｓ）、照合結果集計部１２０は、ログ照合部１１０から受信した照合情報に基づき、照合結果記憶部１８０に記憶されたパターンの照合結果を更新する（ステップＳ１０３）。そして、情報処理装置１００は、処理を終了する。
【００６１】
図６は、本実施形態の照合結果４００の一例を示す図である。
【００６２】
図６に示す照合結果４００は、少なくとも、パターンに相当するパターンＩＤ４０１及び合致回数４０３を含む。さらに、図６に示す照合結果４００は、照合の開始時刻４０２を含む。ここで、開始時刻４０２は、ログの照合（分析）を開始した時刻である。また、合致回数４０３は、開始時刻４０２から現在までのパターンの合致の回数の総和である。例えば、図６の１行目に示す照合結果４００において、パターンＩＤ４０１は、「１」である。開始時刻４０２は、「２０１４／０２／０１  ００：００：００」である。合致回数４０３は、「１３５」である。ここで、合致回数４０３は、開始時刻４０２の「２０１４／０２／０１  ００：００：００」から現在までの合致の回数である。
【００６３】
なお、照合結果４００は、合致回数４０３として、予め定められた単位時間を当たりの合致の回数を含んでも良い。
【００６４】
図７は、単位時間当たりの合致の回数を含む照合結果４００の一例を示す図である。図７に示す照合結果４００は、図６に示す照合結果４００の含む情報に加え、単位時間４０４を含む。例えば、図７の１行に示す照合結果４００において、パターンＩＤ４０１は、「１」である。また、開始時刻４０２は、「２０１４／０２／０１  ００：００：００」である。さらに、単位時間４０４は、「１日」である。そして、合致回数４０３は、１日毎の時系列の順に、「２４、２４、２４、１０」となっている。つまり、最初の日の合致の回数は、「２４」である。２日目の合致の回数は、「２４」である。３日目の合致の回数は、「２４」である。４日目の合致の回数は、「１０」である。このように、照合結果４００は、単位時間当たりの合致の回数を、時系列の順に含んでもよい。あるいは、照合結果４００は、合致した時刻の集合を含んでもよい。
【００６５】
照合結果集計部１２０の動作について、図６及び図７に示すデータを参照して、さらに説明する。
【００６６】
まず、照合結果集計部１２０が、ログ照合部１１０から、パターンが「パターンＩＤ：１」、かつ、照合時間が「時刻：２０１４／０２／０４  １１：１０：３５」の照合情報を受信したとする。
【００６７】
図６に示す照合結果４００が、照合結果記憶部１８０に記憶されていた場合、照合情報のパターン（パターンＩＤ）は、図６に示す１行目のパターンと同じである。そのため、照合結果集計部１２０は、照合情報のパターンと同じ照合結果４００の合致回数４０３（今の場合「１３５」）に「１」を加算する。この結果、合致回数４０３は、「１３６」となる。
【００６８】
また、図７に示す照合結果４００が、照合結果記憶部１８０に記憶されていた場合、照合情報のパターン（パターンＩＤ）は、図７に示す１行目のパターンと同じである。そのため、照合結果集計部１２０は、１行目の「２０１４／０２／０４」に対応する合致回数４０３（今の場合、「１０」）に「１」を加算する。この結果、合致回数４０３は、「（２４、２４、２４、１１）」となる。
【００６９】
図３及び４を参照した説明に戻る。
【００７０】
パターンが合致しない場合（ステップＳ１０２でＮｏ）、パターン学習部１３０は、ログ照合部１１０から受信したログメッセージに基づき、未知パターンを抽出する（ステップＳ１０４）。ここで、パターン学習部１３０が未知パターンを抽出する手法は、特に制限はない。例えば、パターン学習部１３０は、ログメッセージからパターン記憶部１９０に記憶されている既知のパターンを取り除き、残ったログメッセージを、未知パターンとしてもよい。あるいは、パターン学習部１３０は、一般的なパターン学習の手法を用いて、ログメッセージから未知パターンを抽出してもよい。パターン学習部１３０は、未知パターンを、パターン比較部１４０に送信する。
【００７１】
パターン比較部１４０は、パターン学習部１３０から受信した未知パターンと、パターン記憶部１９０に記憶されている既知パターンとを類似性を比較し、類似性を基にパターン及び／又はイベントを送信する（ステップＳ１０５）。パターン比較部１４０の比較手法には、特に制限はない。例えば、パターン比較部１４０は、次に示す手法を用いても良い。
【００７２】
パターン比較部１４０は、既知パターンと未知パターンとのイベントの編集距離を算出する。ここで、パターン比較部１４０は、編集距離の算出に、数式１に示す「ダメラウ・レーベンシュタイン距離（Damerau-Levenshtein distance）」を用いる。
【００７３】
［数式１］
0006508202.tif 000002
【００７４】
数式１において、「Ｄａ，ｂ」は、パターンａ（例えば、既知パターン）とパターンｂ（例えば、未知パターン）との編集距離である。「ｉ」は、パターンａに含まれるイベントの要素の位置を示す変数である。また、「ｊ」は、パターンｂに含まれるイベントの要素の位置を示す変数である。「ａｉ」及び「ｂｊ」は、それぞれ、パターンａのｉ番目の要素、及び、パターンｂのｊ番目の要素である。
【００７５】
また、「Ｗ１」から「Ｗ４」は、所定の重みである。なお、重みＷ１〜Ｗ４は、数式２に示す関数形式「Ｗ」として定義されても良い。
【００７６】
［数式２］
Ｗ＝（Ｗ１、Ｗ２、Ｗ３、Ｗ４）
なお、本説明のパターン比較部１４０は、Damerau-Levenshtein distanceの数式１を用いた。しかし、パターン比較部１４０が用いる数式は、数式１と同様に、パターンを比較するための値を算出する方程式であればよく、数式１に限る必要はない。
【００７７】
そして、パターン比較部１４０は、重み関数Ｗの値を変更し、次に示す（１）追加、（２）置換、（３）削除、（４）転置の４種類の類似性に基づくDamerau-Levenshtein distanceを算出する。そして、パターン比較部１４０は、各類似性に対応し、パターン及び／又はイベントを送信する。
【００７８】
各類似性の場合の動作について図５を参照して説明する。
【００７９】
図５は、パターン比較部１４０の各類似性における動作の一例を示すフローチャートである。
【００８０】
パターン比較部１４０は、各既知パターンに対して、次に示す各類似性に対応する動作を実行する（ステップＳ２０１）。
【００８１】
パターン比較部１４０は、実行する類似性を選択する（ステップＳ２０２）。ただし、パターン比較部１４０は、全ての類似性を比較しても良く、１つ又は複数の一部の類似性を比較してもよい。
【００８２】
（１）追加の場合
パターン比較部１４０は、例えば、Ｗ＝（１００、１００、１、１００）のように、Ｗ３の値を他の重みに比べ小さな値に定義した重み関数を用いて、既知パターン毎に、既知パターンのイベントと未知パターンのイベントとの編集距離を算出する。そして、パターン比較部１４０は、予め定められた閾値以下の編集距離を持つ既知パターンを選択する。既知パターンが選択された場合、パターン比較部１４０は、新規イベントとして、未知パターンのイベントと既知パターンのイベントとの差分を抽出する。そして、パターン比較部１４０は、既知パターンと新規イベントとをパターン判定部１６０に送信する（ステップＳ２０３）。
【００８３】
例えば、既知パターンのイベントが「１、２、３」で、未知パターンのイベントが「１、２、５、３」で、閾値が「２」とする。この場合、既知パターンと未知パターンの編集距離は、「１」である。この編集距離は、閾値「２」以下である。したがって、パターン比較部１４０は、この既知パターンを選択する。そして、パターン比較部１４０は、差分を抽出する。今の場合は、差分は、イベント「５」である。そのため、新規イベントは、「５」である。パターン比較部１４０は、既知パターン（イベントが「１、２、３」のパターン）と新規イベント（差分の「５」）とをパターン判定部１６０に送信する。
【００８４】
（２）置換の場合
パターン比較部１４０は、例えば、Ｗ＝（１００、１００、１００、１）のように、Ｗ４の値を他の重みに比べ小さな値に定義した重み関数を用いて、既知パターン毎に、既知パターンのイベントと未知パターンのイベントとの編集距離を算出する。そして、パターン比較部１４０は、予め定められた閾値以下の編集距離を持つ既知パターンを選択する。既知パターンが選択された場合、パターン比較部１４０は、未知パターンのイベントと既知パターンのイベントとの間で可換なイベントの組を抽出する。抽出されたイベントの組は、「新規イベント」と「更新候補イベント」との組である。そして、パターン比較部１４０は、既知パターン及び更新候補イベントをイベント判定部１５０に送信する（ステップＳ２０４）。
【００８５】
例えば、既知パターンのイベントが「１、２、３」であり、未知パターンのイベントが「１、２、８」の場合、新規イベントは、「８」であり、更新候補イベントは、「３」である。また、今の場合、編集距離は、「１」である。
【００８６】
なお、パターン比較部１４０は、未知パターンをイベント判定部１５０に送っても良い。
【００８７】
（３）削除の場合
パターン比較部１４０は、例えば、Ｗ＝（１００、１、１００、１００）のように、Ｗ２の値を他の重みに比べ小さな値に定義した重み関数を用いて、既知パターン毎に、既知パターンのイベントと未知パターンのイベントとの編集距離を算出する。そして、パターン比較部１４０は、予め定められた閾値以下の編集距離を持つ既知パターンを選択する。既知パターンが選択された場合、パターン比較部１４０は、未知パターンのイベントと選択された既知パターンのイベントと差分を抽出する。抽出したイベントは、「削除候補イベント」である。パターン比較部１４０は、既知パターンと削除候補イベントとを、イベント判定部１５０に送信する（ステップＳ２０５）。
【００８８】
例えば、既知パターンのイベントが「１、２、３、４」であり、未知パターンのイベントが「１、２、４」の場合、削除候補イベントは、イベント「３」である。また、今の場合、編集距離は、「１」である。
【００８９】
なお、パターン比較部１４０は、未知パターンをイベント判定部１５０に送っても良い。
【００９０】
（４）転置の場合
パターン比較部１４０は、例えば、Ｗ＝（１、１００、１００、１００）のように、Ｗ１の値を他の重みに比べ小さな値に定義した重み関数を用いて、既知パターン毎に、既知パターンのイベントと未知パターンにイベントとの編集距離を算出する。そして、パターン比較部１４０は、予め定められた閾値以下の編集距離を持つ既知パターンを選択する。既知パターンが選択された場合、パターン比較部１４０は、未知パターンと選択された既知パターンとを、パターン判定部１６０に送信する（ステップＳ２０６）。ここで、選択された既知パターンは、変換候補パターンである。
【００９１】
例えば、既知パターンのイベントが「１、２、３、４」で、未知パターンのイベントが「１、２、４、３」で、閾値が「２」とする。この場合、未知パターンと既知パターンの編集距離は、「１」である。この編集距離は、閾値「２」以下である。したがって、パターン比較部１４０は、この既知パターンを選択する。そして、パターン比較部１４０は、既知パターン及び変換候補パターン（未知パターン）を、パターン判定部１６０に送信する。
【００９２】
（５）上記以外の場合
上記の（１）〜（４）のいずれにおいても、閾値条件を満たす既知パターンがない場合、パターン比較部１４０は、新規パターンとして、未知パターンをパターン記憶部１９０に送信する（ステップＳ２０７）。この場合、パターン記憶部１９０は、受信した新規パターンを記憶する。
【００９３】
図３及び４の説明に戻る。
【００９４】
イベント判定部１５０は、パターン比較部１４０から受信したイベントを所定の条件（例えば、閾値）を満たすか否かを判定する（ステップＳ１０６）。そして、イベント判定部１５０は、条件を満足するイベントと既知パターンとをパターン判定部１６０に送信する。
【００９５】
イベント判定部１５０の動作の詳細を説明する。
【００９６】
パターン比較部１４０からイベントを受信した時、イベント判定部１５０は、照合結果記憶部１８０から、受信した変換候補イベント又は削除候補イベントに対応する照合結果を取得する。そして、イベント判定部１５０は、更新候補イベント又は削除候補イベントから選択条件を満たす更新イベント又は削除イベントを選択する。
【００９７】
ここで、「選択条件」とは、イベントを選択するために予め定められた条件（例えば、合致の回数に関する閾値）である。例えば、選択条件は、合致の回数が所定の時刻以降で「０」であることである。あるいは、選択条件は、合致の回数の変化量が所定の閾値を超えていることである。ここで、「合致の回数の変化量」とは、照合結果として時系列に記憶された合致の回数間における差である。例えば、閾値が、「５０」とする。そして、前の時間単位のイベントの合致の回数が、「０」であり、今の時間単位のイベントの合致の回数が、「９０」とする。この場合、合致の回数の差は、「９０」である。この差は、閾値（５０）を超えている。そのため、そのイベント（更新イベント又は削除イベント）は、選択条件を満たす。選択条件を満たすイベントがある場合、イベント判定部１５０は、パターン比較部１４０から受信した情報（「既知パターンと、「新規イベント」と「更新イベント」の組」、又は、「既知パターンと削除イベント」）をパターン判定部１６０に送信する。
【００９８】
なお、条件を満足するイベントがない場合、イベント判定部１５０は、新規パターンとして、未知パターンをパターン記憶部１９０に送信する。ここで、未知パターンを受信している場合、イベント判定部１５０は、受信した未知パターンを送信すれば良い。未知パターンを受信していない場合、イベント判定部１５０は、受信した既知パターンと、「新規イベントと更新候補イベント」又は「削除候補イベント」とを基に、未知パターンを算出し、パターン記憶部１９０に送信すれば良い。パターン記憶部１９０は、受信した未知パターンを記憶する。
【００９９】
パターン判定部１６０は、受信したパターン毎に、照合結果記憶部１８０から、照合結果を取得する。そして、パターン判定部１６０は、予め定められた条件に基づき、パターンの更新可否を判定する（ステップＳ１０７）。
【０１００】
パターン判定部１６０の動作を、より詳細に説明する。
【０１０１】
（１）追加の場合（ステップＳ２０３の場合）：パターン比較部１４０から既知パターンと新規イベントとを受信した場合
パターン判定部１６０は、照合結果記憶部１８０から、既知パターンに対応する照合結果を取得する。そして、パターン判定部１６０は、既知パターンの合致の回数の変化が所定の更新条件を満たすか否かを判定する（ステップＳ１０８）。
【０１０２】
合致の回数の変化が、更新条件を満たす場合（ステップＳ１０８でＹｅｓ）、パターン判定部１６０は、受信した既知パターンと新規イベントとを、パターン更新部１７０に送信する。この場合、既知パターンは、追加パターンである。
【０１０３】
合致の回数の変化が、更新条件を満たさない場合（ステップＳ１０８でＮｏ）、パターン判定部１６０は、新規パターンとして、未知パターンをパターン記憶部１９０に送信する。この場合、既知パターンは、未知パターンである。パターン記憶部１９０は、受信した未知パターンを記憶する（ステップＳ１１０）。そして、情報処理装置１００は、処理を終了する。
【０１０４】
ここで、「更新条件」とは、合致の回数に対して定義される条件である。例えば、更新条件は、「合致の回数が、ある時刻以降０である」ことである。あるいは、更新条件は、「合致の回数の変化量が所定の閾値を超える」ことである。ここで、「合致の回数の変化量」とは、照合結果として時系列に記憶された合致の回数間における差である。例えば、閾値が、「５０」とする。そして、前の時間単位の合致の回数が「０」であり、今の時間単位の合致の回数が「９０」とする。この場合、合致の回数の差は、「９０」である。この差は、閾値（５０）を超えている。そのため、パターン判定部１６０は、受信したパターンを更新可能と判定する。
【０１０５】
なお、これまでの説明は、更新条件として、合致の回数の差を用いた。しかし、更新条件は、合致の回数を用いて算出可能な値であれば、特に制限はない。例えば、パターン判定部１６０は、合致の回数を、時間を変数とする近似関数に変換し、受信したパターンの発生前の変曲点の有無を、更新条件としてもよい。
【０１０６】
また、パターン判定部１６０は、合致の回数の変化量の比較において、時間当たりの合致の発生回数を用いてもよい。例えば、パターン判定部１６０は、更新条件として、１時間当たりの合致の発生回数を用いても良い。
【０１０７】
（２）転置の場合（ステップＳ２０６の場合）：パターン比較部１４０から、変換候補パターン及び未知パターンを受信した場合
パターン判定部１６０は、照合結果記憶部１８０から、変換候補パターンに対応する照合結果を取得する。そして、パターン判定部１６０は、変換候補パターンの合致の回数の変化が更新条件を満たすか否かを判定する（ステップＳ１０８）。
【０１０８】
合致の回数の変化が、更新条件を満たす場合（ステップＳ１０８でＹｅｓ）、パターン判定部１６０は、変換候補パターン及び未知パターンを、パターン更新部１７０に送信する。
【０１０９】
合致の回数の変化が、更新条件を満たさない場合（ステップＳ１０８でＮｏ）、パターン判定部１６０は、未知パターンをパターン記憶部１９０に送信する。この場合、未知パターンは、新規パターンである。パターン記憶部１９０は、受信した新規パターンを記憶する（ステップＳ１１０）。そして、情報処理装置１００は、処理を終了する。
【０１１０】
（３）置換の場合（ステップＳ２０４の場合）：イベント判定部１５０から更新イベント及び新規イベントを受信した場合
パターン判定部１６０は、まず、パターン記憶部１９０に記憶されたパターンの中から更新イベントを含むパターンを取得する。取得したパターンは、「更新候補パターン」である。次に、パターン判定部１６０は、更新候補パターンの中から、更新パターンとして、更新条件を満たすパターンを選択する。ここで選択されたパターンは、「更新パターン」である。パターン判定部１６０は、更新イベント、新規イベント及び更新パターンを、パターン更新部１７０に送信する。
【０１１１】
なお、更新パターンを選択できない場合、つまり、更新条件を満たすパターンがない場合、パターン判定部１６０は、新規パターンとして、未知パターンをパターン記憶部１９０に送信する。パターン記憶部１９０は、受信した新規パターンを記憶する（ステップＳ１１０）。そして、情報処理装置１００は、処理を終了する。
【０１１２】
（４）削除の場合（ステップＳ２０５の場合）：イベント判定部１５０から削除イベントを受信した場合
パターン判定部１６０は、パターン記憶部１９０から削除候補イベントを含むパターンを取得する。取得したパターンは、「更新候補パターン」である。次に、パターン判定部１６０は、更新候補パターンの中から、更新条件を満たすパターンを選択する。選択されたパターンは、「更新パターン」である。パターン判定部１６０は、削除イベント及び更新パターンをパターン更新部１７０に送信する。
【０１１３】
なお、更新パターンを選択できない場合、つまり、更新条件を満たすパターンがない場合、パターン判定部１６０は、新規パターンとして、未知パターンをパターン記憶部１９０に送信する。パターン記憶部１９０は、受信した新規パターンを記憶する（ステップＳ１１０）。そして、情報処理装置１００は、処理を終了する。
【０１１４】
パターン更新部１７０は、パターン判定部１６０から受信した情報を基に、パターン記憶部１９０に記憶されたパターンを新規パターンに更新する（ステップＳ１０９）。
【０１１５】
次に、パターン更新部１７０とパターン記憶部１９０の動作を、より詳細に説明する。
【０１１６】
（１）パターン判定部１６０から、追加パターンと新規イベントを受信した場合（追加の場合）
パターン更新部１７０は、新規パターンとして、追加パターンに新規イベントを加えたパターンを作成する。そして、パターン更新部１７０は、パターン記憶部１９０に、記憶している追加パターンの削除と、新規パターンの追加を依頼する。パターン記憶部１９０は、新規パターンを記憶し、追加パターンを削除する。そして、情報処理装置１００は、処理を終了する。
【０１１７】
（２）パターン判定部１６０から、変換候補パターンと未知パターンを受信した場合（転置の場合）
パターン更新部１７０は、パターン記憶部１９０に、未知パターンの記憶と、変換候補パターンの削除とを依頼する。この場合、未知パターンは、新規パターンである。パターン記憶部１９０は、新規パターンを記憶し、変換候補パターンを削除する。そして、情報処理装置１００は、処理を終了する。
【０１１８】
（３）パターン判定部１６０から、更新イベント、新規イベント及び更新パターンを受信した場合（置換の場合）
パターン更新部１７０は、更新パターンに含まれる更新イベントを新規イベントに置換した新規パターンを生成する。そして、パターン更新部１７０は、新規パターンをパターン記憶部１９０に送信する。さらに、パターン更新部１７０は、パターン記憶部１９０に、更新パターンの削除を依頼する。パターン記憶部１９０は、受信した新規パターンを記憶し、更新パターンを削除する。そして、情報処理装置１００は、処理を終了する。
【０１１９】
（４）パターン判定部１６０から削除イベントと更新パターンを受信した場合（削除の場合）
パターン更新部１７０は、更新パターンから削除イベントを削除したパターンを作成する。作成したパターンは、新規パターンである。そして、パターン更新部１７０は、パターン記憶部１９０に、新規パターンの記憶と、更新パターンの削除を依頼する。パターン記憶部１９０は、受信した新規パターンを記憶し、更新パターンを削除する。そして、情報処理装置１００は、処理を終了する。
【０１２０】
［第１の実施形態が奏する効果の説明］
第１の実施形態に係る情報処理装置１００は、分析に用いるルールの集合を適切な状態に維持するとの効果を得ることができる。
【０１２１】
その理由は、次のとおりである。
【０１２２】
ログ照合部１１０が、ログメッセージを合致するパターンを検出する。
【０１２３】
パターンが合致した場合、照合結果集計部１２０が、合致の回数を集計する。
【０１２４】
パターンが合致しない場合、パターン学習部１３０が、未知パターンを抽出する。
【０１２５】
パターン比較部１４０が、未知パターンの類似度を比較する。
【０１２６】
イベント判定部１５０は、イベントを判定する類似度の場合、イベントを更新するか否かを判定する。
【０１２７】
パターン判定部１６０は、パターンを更新するか否かを判定する。
【０１２８】
パターンを更新する場合、パターン更新部１７０が、パターンを更新する。
【０１２９】
未知パターンがあり、パターンを更新しない場合、イベント判定部１５０又はパターン判定部１６０が、未知パターンを新規パターンとしてパターン記憶部１９０に記憶を依頼する。
【０１３０】
つまり、その第１の理由は、イベント判定部１５０及びパターン判定部１６０が、パターンに含まれるイベントの発生頻度を基に、パターンの更新可否を判定するからである。
【０１３１】
また、第２の理由は、パターン比較部１４０が所定の編集距離より近い、つまり、共通するイベントを含むパターンを選択する。そして、イベント判定部１５０及びパターン判定部１６０で、編集距離が近いパターンを処理するためである。そのため、共通するイベントを含むパターンの更新が、同時に行われる。共通するイベントを含むパターンの更新を同時に行うと、発生頻度が低いパターンであっても、そのパターンが発生する前に、そのパターンを識別するためのルールを定義できるからである。
【０１３２】
この理由についてより詳細に説明する。
【０１３３】
対象システムにおいて、システムの構成要素（ハードウェア及び／又はソフトウェア）の更新が発生した場合、対象システムから出力するログメッセージは、変化する。そのため、ログメッセージを含む対象システムの出力パターンは、変化する。ここで、ログメッセージ及び出力パターンの発生頻度は、各ログメッセージ及び出力パターンで異なる。つまり、頻度が非常に低い出力パターンが、存在する。しかし、頻度が低い出力パターンの中に、頻度の高い出力パターンと共通のイベントを含む出力パターンが、存在する。例えば、「１、２、３、４、５、６」は、低頻度パターンとする。また、「７、３、９」は、高頻度パターンとする。そして、対象システムの構成要素の更新に伴い、イベント「３」がイベント「１０」に変化したとする。この場合、低頻度パターンとして、「１、２、１０、４、５、６」が、想定される。そして、本実施形態に係る情報処理装置１００は、「７、１０、９」というパターンを検出した段階で、「１、２、１０、４、５、６」というパターンを生成する。すなわち、本実施形態の情報処理装置１００は、低頻度パターンの発生を待たなくても、低頻度パターンを学習する。
【０１３４】
さらに、本実施形態の情報処理装置１００は、検出の精度の劣化を抑えるとの効果を得ることができる。あるいは、情報処理装置１００は、検出したい異常を検出できるとの効果を得ることができる。
【０１３５】
その理由は、次のとおりである。正常なログメッセージに基づく分析ルールは、未知なイベントを異常として検出するために用いられる。しかし、更新に伴い未知の低頻度パターンが発生すると、その都度、分析ルールを用いる一般的な分析装置は、未知の低頻度パターンが正常か否かの判定する必要がある。そのため、検出の精度は、劣化する。しかし、本実施形態の情報処理装置１００は、分析ルールを更新する。そのため、情報処理装置１００は、検出したい異常を検出できる。
【０１３６】
（第１の変形例）
以上説明した情報処理装置１００は、次のように構成される。
【０１３７】
例えば、情報処理装置１００の各構成部は、ハードウェア回路で構成されても良い。
【０１３８】
また、情報処理装置１００は、各構成部をネットワーク又はバスを介して接続した複数の情報処理装置として構成されても良い。
【０１３９】
例えば、情報処理装置１００は、各記憶部として、ネットワークを介して接続した外部記憶装置を用いて実現しても良い。あるいは、情報処理装置１００は、判定における閾値又は条件を、図示しないファイルから読み込むよう構成してもよい。あるいは、情報処理装置１００は、判定における閾値又は条件を、図示しないユーザが操作する装置から、受信してもよい。
【０１４０】
また、情報処理装置１００は、照合結果記憶部１８０に加え、照合結果を更新する構成（ログ照合部１１０、照合結果集積部１２０）を別構成の装置としてもよい。あるいは、情報処理装置１００は、パターンを学習する構成（パターン学習部１３０）を、別構成の装置としても良い。
【０１４１】
図８は、第１の変形例に係る情報処理装置１０１の構成の一例を示すブロック図である。
【０１４２】
図８において、図１と同じ構成には同じ符号を付し、その詳細な説明を省略する。
【０１４３】
情報処理装置１０１は、図１に示す照合結果記憶部１８０と、パターン記憶部１９０として、ネットワークを介して接続する外部の記憶装置を用いる。また、情報処理装置１０１は、未知パターンを抽出までの処理を実行する構成、つまり、図１に示すログ照合部１１０と、照合結果集計部１２０と、パターン学習部１３０とを、図示しない別の装置として構成する。
【０１４４】
そして、図８に示すパターン比較部１４０は、未知パターンと既知パターンとを受信し、情報処理装置１００のパターン比較部１４０と同様に動作する。
【０１４５】
また、イベント判定部１５０とパターン判定部１６０は、図示しない照合結果記憶部１８０から照合結果を受信する。そして、イベント判定部１５０、パターン判定部１６０、及びパターン更新部１７０は、情報処理装置１００の各構成同様に動作し、新規パターンを、別構成としたパターン記憶部１９０に送信する。
【０１４６】
本変形例に情報処理装置１０１は、情報処理装置１００と同様の効果を実現できる。その理由は、情報処理装置１０１は、既知パターンと未知パターンと照合結果とを基に、情報処理装置１００と同様に動作できるためである。
【０１４７】
なお、図８に示す情報処理装置１０１は、本実施形態の最小構成である。
【０１４８】
（第２の変形例）
また、情報処理装置１００は、複数の構成部を１つのハードウェアで構成されても良い。
【０１４９】
また、情報処理装置１００は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）とを含むコンピュータ装置として実現されても良い。情報処理装置１００は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Input Output Circuit）と、ネットワークインターフェース回路（ＮＩＣ：Network Interface Circuit）とを含むコンピュータ装置として実現されても良い。
【０１５０】
図９は、本変形例に係る情報処理装置６００の構成の一例を示すブロック図である。
【０１５１】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータを構成している。
【０１５２】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図１に示す各構成要素の機能を実現する。ここで、構成要素とは、ログ照合部１１０と、照合結果集計部１２０と、パターン学習部１３０と、パターン比較部１４０と、イベント判定部１５０と、パターン判定部１６０と、パターン更新部１７０である。ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶として使用しても良い。
【０１５３】
また、ＣＰＵ６１０は、プログラムを記憶したコンピュータ読み取り可能な記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取っても良い。さらに、ＣＰＵ６１０は、読み込んだプログラム又は受け取ったプログラムをＲＡＭ６３０に保存し、ＲＡＭ６３０に保存したプログラムを基に動作しても良い。
【０１５４】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Programmable-ROM）又はフラッシュＲＯＭである。
【０１５５】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Dynamic-RAM）である。
【０１５６】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作しても良い。また、内部記憶装置６４０は、図１に示す照合結果記憶部１８０とパターン記憶部１９０として動作しても良い。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Solid State Drive）又はディスクアレイ装置である。
【０１５７】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性の記憶媒体である。一方、ＲＡＭ６３０は、揮発性の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０１５８】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Universal Serial Bus）カードである。
【０１５９】
入力機器６６０は、情報処理装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１６０】
表示機器６７０は、情報処理装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１６１】
ＮＩＣ６８０は、ネットワークを介して他の構成とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Local Area Network）カード又はＰＣＭ（Peripheral Component Interconnect）カードである。
【０１６２】
このように構成された情報処理装置６００は、情報処理装置１００と同様の効果を得ることができる。
【０１６３】
その理由は、情報処理装置６００のＣＰＵ６１０が、プログラムに基づいて情報処理装置１００と同様の機能を実現できるためである。
【０１６４】
＜第２の実施形態＞
図１０は、第２の実施形態に係る情報処理装置２００の構成の一例を示すブロック図である。図１０において、図１と同様の構成には同じ符号を付し、その詳細な説明を省略する場合もある。
【０１６５】
図１０に示す第２の実施形態に係る情報処理装置２００は、第１の実施形態に係る情報処理装置１００の構成に加え、ログ情報記憶部２１０と、ログ情報判定部２２０とを含む。なお、情報処理装置２００は、第１の実施形態と同様に、図９に示すコンピュータを用いて実現されても良い。
【０１６６】
ログ情報記憶部２１０は、ログ情報を記憶する。
【０１６７】
ここで、「ログ情報」とは、ログメッセージ毎の属性の値を定義する情報である。
【０１６８】
また、「属性」とは、ログメッセージ毎に定義される情報である。属性は、例えば、ログメッセージの上位の構成要素に関連する情報（発信元の構成要素名称、アプリケーション、又は、ミドルウェア）、又は、ログメッセージ毎に定義できる情報（例えば、アプリケーション名又はミドルウェア名）である。
【０１６９】
図１１は、本実施形態に係るログ情報５００の一例を示す図である。
【０１７０】
図１１に示すログ情報５００は、イベントＩＤ５０１と、第１の属性５０２と第２の属性５０３との組を含む。
【０１７１】
イベントＩＤ５０１は、ログ情報５００を一意に識別するための情報である。第１の属性５０２は、構成要素の名称である。第２の属性５０３は、ソフトウェアのレイヤである。以下の説明において、ログ情報５００として、イベントＩＤ５０１の値を用いる。例えば、図１１の１行目のログ情報５００は、ログ情報「１」と呼ぶ。
【０１７２】
図１１のログ情報「１」は、イベントＩＤ５０１として「１」を含む。そして、ログ情報「１」は、構成要素の属性５０２として、「Application XXX」を含む。つまり、ログ情報「１」は、「Application XXX」で発生するイベントに属する。また、ログ情報「１」は、レイヤの属性５０３として、「ＡＰ」を含む。そして、レイヤである第２の属性５０３は、構成要素である第１の属性の上位概念である。なお、ログ情報５００に含まれる属性は、ログメッセージを構成する要素を用いて記述されてもよい。
【０１７３】
ログ情報判定部２２０は、イベント判定部１５０から受信したイベントに基づき、新たに更新する追加更新イベント又は削除する追加削除イベントを選択する。
【０１７４】
（１）イベント判定部１５０から更新イベントを受信した場合
ログ情報判定部２２０は、イベント判定部１５０から受信した更新イベントのイベントＩＤに基づき、ログ情報記憶部２１０を検索する。そして、ログ情報判定部２２０は、イベントＩＤに対応する属性を取得する。そして、ログ情報判定部２２０は、取得した属性情報に基づき、ログ情報記憶部２１０において同一の属性を有するイベントＩＤを検索する。検索されたイベントＩＤは、「追加更新候補イベント」である。次に、ログ情報判定部２２０は、追加更新候補イベント毎に、照合結果記憶部１８０から追加更新候補イベントに対応する照合結果を取得する。次に、ログ情報判定部２２０は、照合情報の合致の回数と選択条件に基づき、追加更新候補イベントから選択条件を満たすイベントを選択する。選択されたイベントが、「追加更新イベント」である。ここで、選択条件は、第１の実施形態の選択条件と同様である。
【０１７５】
次に、ログ情報判定部２２０は、追加更新イベントを含むパターンを、パターン記憶部１９０から検索する。検索したパターンは、「停止候補パターン」である。次に、ログ情報判定部２２０は、照合結果記憶部１８０から、各停止候補パターンに対応する照合結果を取得する。次に、ログ情報判定部２２０は、停止候補パターンにおける合致の回数の変化が所定の停止条件を満たすか否かを判定する。そして、停止条件を満たしている場合、ログ情報判定部２２０は、停止条件を満たすパターンを「停止パターン」とする。
【０１７６】
ここで、「停止条件」とは、予め、停止パターン判定するために定められた条件である。停止条件は、例えば、上記の選択条件と同様の条件でも良い。
【０１７７】
また、停止パターンとは、ログ照合部１１０において照合の対象としないパターンである。例えば、既に説明した通り、パターン記憶部１９０に記憶されたパターンは、照合対象であるか否かを示す情報を含んでも良い。パターンが照合対象であるか否かの情報を含む場合、ログ情報判定部２２０は、パターン記憶部１９０に記憶されている停止パターンとなったパターンの情報を更新する。
【０１７８】
（２）イベント判定部１５０から削除イベントを受信した場合
ログ情報判定部２２０は、削除イベントのイベントＩＤに基づき、ログ情報記憶部２１０を検索し、削除イベントのイベントＩＤの属性情報を取得する。次に、ログ情報判定部２２０は、取得した属性情報に基づき、ログ情報記憶部２１０において、同一の属性情報を有するイベントＩＤを検索する。検索されたイベントは、「追加削除候補イベント」である。次に、ログ情報判定部２２０は、照合結果記憶部１８０から、追加削除候補イベント毎に、対応する照合結果を取得する。そして、ログ情報判定部２２０は、照合結果の合致の回数に基づき、追加削除候補イベントから選択条件を満たすイベントを選択する。選択されたイベントは、「追加削除イベント」である。ここで、選択条件は、追加削除候補イベントとして定められても良く、上記の追加更新候補イベントの選択条件と同じでも良い。次に、ログ情報判定部２２０は、追加削除イベントを、パターン判定部１６０に送信する。
【０１７９】
情報処理装置２００のその他の動作は、第１の実施形態の情報処理装置１００と同様のため、詳細な説明を省略する。
【０１８０】
［第２の実施形態が奏する効果の説明］
第２の実施形態に係る情報処理装置２００は、第１の実施形態の効果に加え、ログ分析のためのルールを、より適切な状態に維持する効果を得ることができる。
【０１８１】
その理由は、第２の実施形態の情報処理装置２００が、ログ情報記憶部２１０と、ログ情報判定部２２０とを含むからである。そして、ログ情報判定部２２０が、ログ情報記憶部２１０が記憶するログ情報５００を用いて、イベント判定部１５０から受信したイベントと同一の属性を有するイベントも処理するためである。
【０１８２】
なお、上述した第１の実施形態及び第２の実施形態は、適宜、組み合わせて実施され手も良い。
【０１８３】
また、各実施形態の動作の説明においては、複数の動作を順番に説明しているが、動作の順番は、説明の順番に限る必要はない。各実施形態の複数の動作の順番は、支障のない範囲で変更可能できる。また、これら複数の動作の実行は、説明におけるタイミングに限る必要はない。例えば、実施形態中のある動作は、他の動作が実行中に、実行されても良い。また、ある動作が、他の動作と実行タイミングが部分的又は全部において重複してもよい。
【０１８４】
さらに、発明の理解を容易にするため、実施形態の各動作の説明において、ある動作が他の動作の契機になるように記載している。しかし、説明の記載は、記載されている動作と他の動作との関係を限定するものではない。各実施形態を実施するときに、複数の動作の関係は、内容的に支障のない範囲で変更することができる。
【０１８５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【０１８６】
この出願は、２０１４年５月１９日に出願された日本出願特願２０１４−１０３２６７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１８７】
本発明は、情報処理システム又は物理プラントなどを運用管理する技術に応用可能である。
【符号の説明】
【０１８８】
１００    情報処理装置
１０１    情報処理装置
１１０    ログ照合部
１２０    照合結果集計部
１３０    パターン学習部
１４０    パターン比較部
１５０    イベント判定部
１６０    パターン判定部
１７０    パターン更新部
１８０    照合結果記憶部
１９０    パターン記憶部
２００    情報処理装置
２１０    ログ情報記憶部
２２０    ログ情報判定部
３００    パターン
３０１    パターンＩＤ
３０２    イベント
４００    照合結果
４０１    パターンＩＤ
４０２    開始時刻
４０３    合致回数
４０４    単位時間
５００    ログ情報
５０１    イベントＩＤ
５０２    属性
５０３    属性
６００    情報処理装置
６１０    ＣＰＵ
６２０    ＲＯＭ
６３０    ＲＡＭ
６４０    内部記憶装置
６５０    ＩＯＣ
６６０    入力機器
６７０    表示機器
６８０    ＮＩＣ
７００    記憶媒体
【図１】
0006508202.tif 000003
【図２】
0006508202.tif 000004
【図３】
0006508202.tif 000005
【図４】
0006508202.tif 000006
【図５】
0006508202.tif 000007
【図６】
0006508202.tif 000008
【図７】
0006508202.tif 000009
【図８】
0006508202.tif 000010
【図９】
0006508202.tif 000011
【図１０】
0006508202.tif 000012
【図１１】
0006508202.tif 000013