(57)【要約】  利用者が機械の生成するログの生成則を事前に知ることなく、相関の高いログの集合を抽出するための技術を提供することである。本発明の一態様は、ログメッセージに関するテンプレートを格納するテンプレート格納部と、前記格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部とを有するログ分析装置に関する。
2016031681.tif 000002
【特許請求の範囲】
【請求項１】
ログメッセージに関するテンプレートを格納するテンプレート格納部と、
前記格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部と、
を有するログ分析装置。
【請求項２】
当該ログ分析装置は、前記ホストからログメッセージを取得する毎に、前記取得したログメッセージに対して前記イベントを抽出する、請求項１記載のログ分析装置。
【請求項３】
前記イベント候補抽出部は、前記同一のホストから提供されたログメッセージについて特定されたテンプレートを検出すると、前記ログメッセージのタイムスタンプに基づき前記同一のホストから提供されたログメッセージについて特定されたテンプレートのうち、前記検出されたテンプレートの直前のテンプレートを抽出し、前記検出されたテンプレートと前記直前のテンプレートとの発生時間差に基づき、前記検出されたテンプレートと前記直前のテンプレートとが同一のイベント候補に属するか判断する、請求項１又は２記載のログ分析装置。
【請求項４】
前記イベント候補抽出部は、前記検出されたテンプレートと前記直前のテンプレートとに依存する発生時間間隔を推定する、請求項３記載のログ分析装置。
【請求項５】
前記イベント候補抽出部は、前記発生時間差が前記推定された発生時間間隔以下である場合、前記検出されたテンプレートと前記直前のテンプレートとが同一のイベント候補に属すると判断する、請求項４記載のログ分析装置。
【請求項６】
前記イベント候補抽出部は、前記発生時間差が前記推定された発生時間間隔より大きい場合、前記同一のホストから提供されたログメッセージについて特定された前記直前のテンプレートまでに発生したテンプレートをイベント候補として確定し、前記検出されたテンプレートを新たなイベント候補として抽出する、請求項４記載のログ分析装置。
【請求項７】
前記イベント候補抽出部は、過去に算出された発生時間差について生成されたクラスタのうち前記発生時間差が属するクラスタを特定し、前記特定されたクラスタの平均及び分散に基づき前記発生時間間隔を推定する、請求項４記載のログ分析装置。
【請求項８】
前記テンプレート特定部は、オンライン又はオフラインに提供されたログメッセージに一致するテンプレートを特定し、特定したテンプレートを前記イベント候補抽出部に提供する、請求項１又は２記載のログ分析装置。
【請求項９】
ログ分析装置と、
監視対象のホストと、
前記ログ分析装置からイベントを受信するユーザ装置と、
を有するログ分析システムであって、
前記ログ分析装置は、
ログメッセージに関するテンプレートを格納するテンプレート格納部と、
前記格納されているテンプレートから、前記監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部と、
を有するログ分析システム。
【請求項１０】
ログ分析装置により実現されるログ分析方法であって、
格納されているログメッセージに関するテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するステップと、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するステップと、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するステップと、
を有するログ分析方法。
【請求項１１】
格納されているログメッセージに関するテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するステップと、
前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するステップと、
前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多種多様な機械が出力するログ情報から利用者にとって有用な情報を抽出する技術に関し、特に利用者が機械の生成するログの形式の生成則を事前に直接的に知ることなく必要な情報を逐次的に抽出するのに好適な技術に関するものである。
【背景技術】
【０００２】
今日、コスト削減を主な理由として、異なる製造元の、異なる役割を持つ機器、ソフトウェアの一元的な監視・管理が行われている。一方で、こうした多種多様な機器やソフトウェアはそれぞれ独自の形態を持つログを出力する機構を有しており、機器の監視・管理を行う際において使用される。情報機器の発展に伴い、これらのログ情報は複雑・大規模化しており、効率的な監視方法が必要となっている。【０００３】
こうした中で、非特許文献１では、ログ分析を簡略化するための分析基盤が提案されている。しかしながら、これを利用するためには、個々のログの発生する意味やログメッセージの内容に関しての事前知識が必要となり、膨大な未知のログの分析にはノウハウの蓄積がなければ運用が困難となる。【０００４】
一方、非特許文献２では、ルータなどのネットワーク機器の生成するsyslogを対象とし、ベンダやメッセージタイプ、エラーコード、詳細なメッセージ内容といったある程度の形式を事前に与えられた場合におけるテンプレートの把握法が与えられている。ルータの位置関係などを利用して、syslogのダイジェスト情報を表示する手法が提案されている。【０００５】
このような従来技術では、少なくとも情報を収集する段階での事前知識が必要である。例えば、どのベンダからログを収集しているか、メッセージ内のどの部分がエラーコードを示しているのかといったことを把握しておかなければならず、テンプレート把握機構を単純に用意するだけでなく、事前の手動での入力や準備が必要となる。また、syslogのダイジェスト表示機能は、syslogに特化した手法であるため、その他の監視ログ情報への適用が困難である。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Splunk http://www.splunk.com/
【非特許文献２】T. Qiu, Z. Ge, D. Pei, J. Wang, J, Xu, "What Happened in my Network? Mining Network Events from Router Syslogs", In IMC, 2010.
【非特許文献３】Y. Chi, H. Wang, P.S. Yu, and R. R. Muntz, "Moment: Maintaining Closed Frequent Itemsets over a Stream Sliding Window," In Proc. of ICDM, 2004.
【非特許文献４】N. Jiang, and L. Gruenwald, "CFI-Stream: Mining Closed Frequent Itemsets in Data Streams," In Proc. of KDD, 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本願出願人により出願された特願２０１３−１６８２２６号では、このような事前情報を用いることなく、syslogに限定されない一般的なログのテンプレートを逐次的に抽出する方法が開示されている。一方、当該方法により抽出されるテンプレートは、図１に示されるように、１行単位で規定されるものであり、ネットワークで逐次的に発生するログから抽出されるテンプレートの組み合わせの関連性に関するログ分析が所望される。【０００８】
従って、本発明の課題は、利用者が機械の生成するログの生成則を事前に知ることなく、相関の高いログの集合を抽出するための技術を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の一態様は、ログメッセージに関するテンプレートを格納するテンプレート格納部と、前記格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定するテンプレート特定部と、前記特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、前記検出されたテンプレートの系列をイベント候補として抽出するイベント候補抽出部と、前記抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出するイベント抽出部とを有するログ分析装置に関する。
【発明の効果】
【００１０】
本発明によると、利用者が機械の生成するログの生成則を事前に知ることなく、相関の高いログの集合を抽出することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、syslogに関する一例となるテンプレートを示す図である。
【図２】図２は、本発明の一実施例によるログ分析システムを示す概略図である。
【図３】図３は、本発明の一実施例によるログ分析装置の機能構成を示すブロック図である。
【図４】図４は、テンプレート間の発生時間間隔の分布を示す図である。
【図５】図５は、本発明の一実施例によるイベント候補抽出処理を示すフロー図である。
【図６】図６は、本発明の一実施例によるdur(t0,t)の更新処理を示すフロー図である。
【図７】図７は、本発明の一実施例による発生時間差のクラスタリング処理を示すフロー図である。
【図８】図８は、本発明の他の実施例によるログ分析システムを示す概略図である。
【図９】図９は、本発明の他の実施例によるログ分析処理を示すフローチャートである。
【図１０】図１０は、本発明の他の実施例によるログ分析処理のシミュレーション結果を示す図である。
【図１１】図１１は、本発明の他の実施例によるログ分析システムを示す概略図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。
【００１３】
後述する実施例では、ログメッセージ間の相関を考慮したログ分析を実行するログ分析装置が開示される。本発明を概略すると、ログ分析装置は、ネットワーク機器からログメッセージを収集し、予め取得されているログメッセージに関するテンプレートから、収集したログメッセージに一致するテンプレートを特定する。ログ分析装置は、特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、検出されたテンプレートと当該ホストについて以前に検出されたテンプレートとの発生時間差に基づきテンプレート間の相関を判断し、判断結果に応じて検出されたテンプレートの系列をイベント候補として抽出する。ログ分析装置はさらに、このように抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出し、ログ分析結果として利用者に提供する。
【００１４】
これにより、単一のテンプレートに一致したログメッセージを抽出するだけでなく、逐次的に生成されたログメッセージに一致する複数のテンプレートの間の時間的な相関関係に基づき、相関するテンプレート系列をイベントとして抽出することが可能になる。
【００１５】
図２を参照して、本発明の一実施例によるログ分析システムを説明する。図２は、本発明の一実施例によるログ分析システムを示す概略図である。
【００１６】
図２に示されるように、ログ分析システム１０は、ログ分析装置１００、監視対象機器群２００及びユーザ装置３００を有する。
【００１７】
ログ分析装置１００は、ログメッセージに関するテンプレートを予め保持し、監視対象機器群２００の各ホストからログメッセージを収集し、収集したログメッセージに対して後述される処理を実行することによって、相関するテンプレート系列をイベントとして抽出する。図２に示されるように、ログ分析装置１００は、ログ収集装置１０１、ログ・テンプレート情報データベース（ＤＢ）１０２、イベント候補抽出エンジン１０３、イベント候補データベース（ＤＢ）１０４、イベント抽出エンジン１０５、イベントデータベース（ＤＢ）１０６及びユーザインタフェース１０７のハードウェア要素から構成される。
【００１８】
ログ収集装置１０１は、監視対象機器群２００に通信接続され、監視対象機器群２００の各ホスト（ｐ．０，ｐ．１，...，ｐ．ｎ）からログメッセージを収集する。当該ログメッセージは、例えば、syslogであってもよいが、これに限定されることなく、ホストから送信されるホストの動作状態などを示す他の何れか適切なメッセージであってもよい。
【００１９】
ログ・テンプレート情報ＤＢ１０２は、ログ収集装置１０１により収集されたログメッセージを格納すると共に、ログメッセージから抽出されたテンプレートを格納する。本実施例では、格納されているテンプレートは、何れか適切なテンプレート抽出法を利用して、過去に収集されたログメッセージから予め抽出されたものであってもよい。例えば、テンプレートは、図１に示されるような具体的なパラメータ値をワイルドカード"＊"としたデータ形式を有し、ログメッセージ内の重要とされる部分や行から構成されてもよい。なお、各テンプレートには、識別子（ＩＤ）が割り当てられ、ｉ＝１，２，...，Ｉなどにより表される。
【００２０】
イベント候補抽出エンジン１０３は、後述されるようなイベント候補抽出処理を実行し、同一のホストから逐次的に収集したログメッセージに関連する１以上のテンプレートの系列をイベント候補として抽出する。
【００２１】
イベント候補ＤＢ１０４は、イベント候補抽出エンジン１０３により抽出されたイベント候補を格納する。
【００２２】
イベント抽出エンジン１０５は、後述されるようなイベント抽出処理を実行し、抽出されたイベント候補から頻出するテンプレートの系列又はパターンをイベントとして抽出する。
【００２３】
イベントＤＢ１０６は、イベント抽出エンジン１０５により抽出されたイベントを格納する。
【００２４】
ユーザインタフェース１０７は、抽出されたイベントをユーザ装置３００の利用者に提供する。例えば、ユーザインタフェース１０７は、ユーザ装置３００がイベントを利用者に表示できるように、ユーザ装置３００に抽出したイベントを送信する。
【００２５】
一例となるハードウェア構成として、ログ分析装置１００は、バスを介し相互接続されるドライブ装置、補助記憶装置、メモリ装置、CPU (Central Processing Unit)及びインタフェース装置を有する。ログ分析装置１００における後述される各種機能及び処理を実現する各種プログラムは、光ディスクや半導体メモリなどの記録媒体によって提供されてもよい。プログラムを記憶した記録媒体がドライブ装置にセットされると、プログラムが記録媒体からドライブ装置を介して補助記憶装置にインストールされる。但し、プログラムのインストールは必ずしも記録媒体により行う必要はなく、ネットワーク（図示せず）を介し何れかの外部装置からダウンロードするようにしてもよい。補助記憶装置は、インストールされたプログラムを格納すると共に、必要なファイルやデータなどを格納する。メモリ装置は、プログラムの起動指示があった場合に、補助記憶装置からプログラムやデータを読み出して格納する。上述された各データベースは、補助記憶媒体やメモリ装置により実現されてもよい。CPUは、情報を処理するプロセッサであって、メモリ装置に格納されたプログラムやプログラムを実行するのに必要なパラメータなどの各種データに従って、後述されるようなログ分析装置１００の各種機能及び処理を実行する。上述された各エンジンは、プロセッサにより実現されてもよい。インタフェース装置は、ネットワーク又は外部装置に接続するための通信インタフェースとして用いられる。しかしながら、ログ分析装置１００は、上述したハードウェア構成に限定されるものでなく、何れか適切な情報処理装置として実現されてもよい。
【００２６】
監視対象機器群２００は、１以上のホストｐ．０〜ｐ．ｎから構成され、ネットワークを介しログ分析装置１００に通信接続される。各ホストは、例えば、ルータなどのネットワーク機器であってもよく、syslogメッセージなどの各種ログメッセージを逐次生成し、ログ分析装置１００に送信する。一実施例では、ログメッセージは、当該ログメッセージが生成された時間を示すタイムスタンプ、当該ログメッセージを生成したホスト名及びメッセージ本体を含む。なお、各ホストには、識別子（ＩＤ）が割り当てられ、ｈ＝１，２，...，Ｈなどにより表される。
【００２７】
ユーザ装置３００は、パーソナルコンピュータ、スマートフォンやタブレットなどの情報処理装置であり、ネットワークを介しログ分析装置１００に通信接続される。利用者は、ユーザ装置３００を介しログ分析装置１００から分析結果であるイベントを確認することができる。
【００２８】
次に、図３〜６を参照して、本発明の一実施例によるログ分析装置を説明する。図３は、本発明の一実施例によるログ分析装置の機能構成を示すブロック図である。
【００２９】
図３に示されるように、ログ分析装置１００は、テンプレート格納部１１０、テンプレート特定部１２０、イベント候補抽出部１３０及びイベント抽出部１４０を有する。
【００３０】
テンプレート格納部１１０は、ログメッセージに関するテンプレートを格納する。具体的には、ログ分析装置１００は、監視対象機器群２００の各ホストｈからログメッセージを収集し、何れか適切なテンプレート抽出法に従ってこれまでに収集したログメッセージから抽出されたテンプレートを保持する。一実施例では、各テンプレートは、利用者に有用なログメッセージから構成され、図１に示されるようなログメッセージ内の具体的なパラメータ値をワイルドカード"＊"としたデータ形式を有してもよい。例えば、テンプレートは、本願出願人により出願済みの特願２０１３−１６８２２６号に記載されるテンプレート抽出法に従って自動的に抽出されてもよいし、あるいは、ログ分析装置１００のオペレータにより予め設定されてもよい。各テンプレートには、識別子（ＩＤ）が割り当てられ、ｉ＝１，２，...，Ｉなどにより表される。
【００３１】
テンプレート特定部１２０は、格納されているテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定する。具体的には、各ログメッセージは、当該ログメッセージが生成された時間を示すタイムスタンプ、当該ログメッセージを生成したホスト名及びメッセージ本体を含む。
【００３２】
テンプレート特定部１２０は、監視対象機器群２００の各ホストから受信したログメッセージ内の各行と、テンプレート格納部１１０に格納されているテンプレートとを対比し、受信したログメッセージに一致するテンプレートを抽出する。例えば、図１に示されるログメッセージとテンプレートとの具体例では、ログメッセージは、テンプレートのワイルドカード"＊"に具体的な値"６６２２８８"などが設定されている点を除きテンプレートに一致する。このため、テンプレート特定部１２０は、当該ログメッセージがテンプレートに一致していると判断することができる。テンプレート特定部１２０は、格納されている各ログメッセージに対してテンプレートとの対比を順次実行し、格納されているテンプレートに一致するログメッセージを特定する。なお、後述するように、テンプレート特定部１２０は、オンライン又はオフラインに提供されたログメッセージに一致するテンプレートを特定し、特定したテンプレートをイベント候補抽出部１３０に提供してもよい。
【００３３】
イベント候補抽出部１３０は、特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、検出されたテンプレートの系列をイベント候補として抽出する。具体的には、テンプレート特定部１２０がログメッセージに一致していると特定したテンプレートについて、イベント候補抽出部１３０はまず、当該ログメッセージ内の生成元のホスト名を参照して、同一のホストから送信されたログメッセージについて特定されたテンプレートを検出する。
【００３４】
一実施例では、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出すると、イベント候補抽出部１３０は、当該ログメッセージのタイムスタンプに基づき同一のホストから提供されたログメッセージについて特定されたテンプレートのうち、検出されたテンプレートの直前のテンプレートを抽出し、検出されたテンプレートと直前のテンプレートとの発生時間差に基づき、検出されたテンプレートと直前のテンプレートとが同一のイベント候補に属するか判断してもよい。一般に、発生時間差が小さい場合、これら２つのテンプレートは相関して生起したと推定することが可能であり、同一のイベント候補に属している可能性が高いと考えられるためである。
【００３５】
例えば、図４に示されるように、テンプレート間の発生時間間隔は多峰性の分布に従う傾向があることが知られている。図示された例は、過去のデータに基づくテンプレート間の発生時間間隔を示したものであり、３組のテンプレート間の発生時間間隔（秒）の分布が示されている。図から分かるように、テンプレート間の発生時間間隔は多峰性の分布に従うケースが多く、各分布の峰によってイベントが区別されると考えられる。そこで、以下において、テンプレート間の発生時間間隔の分布の各峰について閾値を学習する方法を説明する。当該方法は、テンプレート発生時間間隔をクラスタとして捉え、クラスタ毎に発生時間差の閾値（後述するdur(t0,t)）を逐次的に更新又は学習するというアプローチに基づく。
【００３６】
ここで、図５を参照して、当該イベント候補抽出処理をより詳細に説明する。図５は、本発明の一実施例によるイベント候補抽出処理を示すフロー図である。
【００３７】
図５に示されるように、ステップＳ１０１において、イベント候補抽出部１３０は、ホストｈについて特定されたテンプレートｔについて、ホストｈにおいて直前に発生したログメッセージに対して一致していると特定されたテンプレートｔ０の発生時間と、テンプレートｔの発生時間との間の発生時間差ｄを計算する。
【００３８】
ステップＳ１０２において、イベント候補抽出部１３０は、後述されるような更新処理に従って、テンプレートｔ０とテンプレートｔとに依存する発生時間間隔dur(t0,t)を更新する。上述したように、テンプレートｔ０とテンプレートｔとが所定の時間内で発生する場合、テンプレートｔ０とテンプレートｔとは相関して生起したと推定可能であり、dur(t0,t)は当該時間として定義される。発生時間間隔dur(t0,t)は、テンプレートの種別やイベントの種別などに応じて異なる値に定義されてもよい。ここで、発生時間間隔dur(t0,t)はテンプレートｔ０及びｔに依存する。これは、テンプレート及びイベント毎にその発生時間間隔が異なるためである。しかしながら、発生時間間隔dur(t0,t)の値は、一般には自明でなく、例えば、後述されるような更新処理に従って逐次的に推定されてもよい。
【００３９】
ステップＳ１０３において、イベント候補抽出部１３０は、発生時間差ｄが発生時間間隔dur(t0,t)より大きいか、すなわち、テンプレートｔ０とテンプレートｔとが相関して発生したと推定可能であるか判定する。発生時間差ｄが発生時間間隔dur(t0,t)より大きい場合（Ｓ１０３：ｙｅｓ）、イベント候補抽出部１３０は、テンプレートｔ０とテンプレートｔとが相関して発生したものでないと判断し、テンプレートｔ０までのテンプレート系列をイベント候補として確定する。換言すると、イベント候補抽出部１３０は、発生時間差ｄが発生時間間隔dur(t0,t)より大きい場合、同一のホストｈから提供されたログメッセージについて特定された直前のテンプレートｔ０までに発生したテンプレートｔ１，ｔ２，...をイベント候補として確定し、検出されたテンプレートｔを新たなイベント候補として抽出する。
【００４０】
他方、発生時間差ｄが発生時間間隔dur(t0,t)以下である場合（Ｓ１０３：ｎｏ）、イベント候補抽出部１３０は、テンプレートｔ０とテンプレートｔとが相関して発生したものであると判断し、テンプレートｔ０までのテンプレート系列にテンプレートｔを追加する。換言すると、イベント候補抽出部１３０は、検出されたテンプレートｔと直前のテンプレートｔ０とに依存する発生時間間隔dur(t0,t)を推定し、発生時間差ｄが発生時間間隔dur(t0,t)以下である場合、検出されたテンプレートｔと直前のテンプレートｔ０とが同一のイベント候補ｔ，ｔ１，ｔ２，...に属すると判断する。
【００４１】
ここで、図６を参照して、上述した発生時間間隔dur(t0,t)の算出に関するステップＳ１０２をより詳細に説明する。一実施例では、イベント候補抽出部１３０は、過去に算出された発生時間差について生成されたクラスタのうち発生時間差dが属するクラスタを特定し、特定されたクラスタの平均及び分散に基づき発生時間間隔dur(t0,t)を推定してもよい。図６は、本発明の一実施例によるdur(t0,t)の更新処理を示すフロー図である。
【００４２】
図６に示されるように、ステップＳ２０１において、イベント候補抽出部１３０は、テンプレートｔとテンプレートｔ０との発生時間差dをクラスタリングし、dが属するクラスタを検索する。具体的には、イベント候補抽出部１３０は、ホストｈにおけるｔより前の過去Ｐ個のテンプレート(t0, t1, …, tp-1)に対して、各時間間隔t-t0, t-t1, …, t-tp-1を計算し、各計算結果を対応する発生間隔リスト群DL(t0,t), DL(t1,t), …, DL(tp-1,t)に追加する。その後、イベント候補抽出部１３０は、各DL(ti,t) (i=0,1,…p-1)について、新たに追加した発生時間差dをクラスタリングする。これは、同じテンプレートの発生間隔は一意的な値であるとは限らず、ある範囲を有すると考えられるためである。
【００４３】
ここで、当該クラスタリングは、逐次的に実行可能な任意のクラスタリング方法が適用可能であるが、以下でより詳細に説明されるようなDBSCANベースの方法を利用してもよい。
【００４４】
ステップＳ２０２において、イベント候補抽出部１３０は、発生時間差dが属するクラスタCiに含まれる要素の個数が所定の閾値以上であるか判断する。クラスタCiに含まれる要素の個数が閾値以上である場合（Ｓ２０２：ｙｅｓ）、イベント候補抽出部１３０は、ステップＳ２０３に移行する。他方、クラスタCiに含まれる要素の個数が閾値未満である場合（Ｓ２０２：ｎｏ）、イベント候補抽出部１３０は、ステップＳ２０４において、当該クラスタCiは外れ値に対応するものであると判断し、発生時間間隔dur(t0,t)をデフォルト値に設定する。
【００４５】
ステップＳ２０３において、イベント候補抽出部１３０は、クラスタCiに対する平均値M及び分散Vを以下の式に従って更新する。
【００４６】
【数１】
2016031681.tif 000003
ここで、ｎは更新回数を示し、α，βは所定の定数である。
【００４７】
すなわち、更新後の平均値M(n+1)は、クラスタCiの更新前の平均値M(n)と発生時間差dとに基づき算出され、更新後の分散V(n+1)は、クラスタCiの更新前の分散V(n)と発生時間差d及び更新前の平均値M(n)に基づき算出される。
【００４８】
ステップＳ２０５において、イベント候補抽出部１３０は、更新後の分散V(n+1)が所定の閾値以下であるか判断する。分散V(n+1)が当該閾値以下である場合（Ｓ２０５：ｙｅｓ）、イベント候補抽出部１３０は、ステップＳ２０６に移行し、他方、分散V(n+1)が当該閾値を超える場合（Ｓ２０５：ｎｏ）、イベント候補抽出部１３０は、テンプレートｔとテンプレートｔ０とが相関して発生したものでないと判断し、ステップＳ２０７において、当該クラスタCiは外れ値に対応するものであると判断し、発生時間間隔d(t0,t)をデフォルト値に設定する。
【００４９】
ステップＳ２０６において、イベント候補抽出部１３０は、以下の式に従って発生時間間隔dur(t0,t)を更新する。
【００５０】
【数２】
2016031681.tif 000004
ここで、γは所定の定数である。
【００５１】
このように取得した発生時間間隔dur(t0,t)を用いて、イベント候補抽出部１３０は、ステップＳ１０２におけるdur(t0,t)の更新処理を実行する。上述したDBSCANベースクラスタリング方法によると、計算が全て逐次的に実行可能であるため、計算速度の大きな劣化は発生しない。なお、本発明によるdur(t0,t)の更新処理は、これに限定されるものでなく、逐次的なクラスタリングを可能にする何れか適切な方法が適用されてもよい。
【００５２】
ここで、図７を参照して、上述したクラスタリング処理に関するステップＳ２０１をより詳細に説明する。図７は、本発明の一実施例による発生時間差のクラスタリング処理を示すフロー図である。
【００５３】
図７に示されるように、現時点までに取得された発生間隔群のクラスタをC1,…,CLとする。Ci (i=1,2,…,L)は昇順にソートされ、Ciに含まれる値のうち、最小のものをCiminとし、最大のものをCimaxとする。ここで、新たな発生時間差dが到着すると、イベント候補抽出部１３０は、ステップＳ３０１において、当該発生時間差dが過去に発生した何れかのクラスタCiに属するか否か、すなわち、d<C1min-δ又はCLmax+δ<dであるか判定する。
【００５４】
d<C1min-δ又はCLmax+δ<dでない場合（Ｓ３０１：ｎｏ）、イベント候補抽出部１３０は、発生時間差dが過去に発生した何れかのクラスタCiに属すると判断し、ステップＳ３０２に移行し、他方、d<C1min-δ又はCLmax+δ<dである場合（Ｓ３０１：ｙｅｓ）、発生時間差dが過去に発生したクラスタCiの何れにも属さないと判断し、発生時間差dを要素とする新たなクラスタを生成する。
【００５５】
ステップＳ３０２において、イベント候補抽出部１３０は、クラスタC1から昇順にd<C(i+1)minとなる最小のiを検索する。
【００５６】
ステップＳ３０４において、イベント候補抽出部１３０は、Cimin-δ<d<Cimax+δであるか判断する。Cimin-δ<d<Cimax+δである場合（Ｓ３０４：ｙｅｓ）、イベント候補抽出部１３０は、ステップＳ３０６において、発生時間差dをクラスタCiに割り当てる。他方、Cimin-δ<d<Cimax+δでない場合（Ｓ３０４：ｎｏ）、イベント候補抽出部１３０は、発生時間差dがクラスタCiに属さないと判断し、ステップＳ３０５において、クラスタCi+1に属するか、すなわち、0<C(i+1)min-d<δであるか判断する。
【００５７】
0<C(i+1)min-d<δでない場合（Ｓ３０５：ｎｏ）、イベント候補抽出部１３０は、発生時間差dがクラスタCi, Ci+1の何れにも属さないと判断し、発生時間差dを要素とする新たなクラスタを生成する。他方、0<C(i+1)min-d<δである場合（Ｓ３０５：ｙｅｓ）、イベント候補抽出部１３０は、発生時間差dがクラスタCi+1に属すると判断し、ステップＳ３０８において、発生時間差dをクラスタCi+1に割り当てる。このようにして、イベント候補抽出部１３０は、発生時間差dが属するクラスタCi+1を特定する。
【００５８】
その後、イベント候補抽出部１３０は、同一ホストｈについて特定されたテンプレートｉの系列を時間順につなぎ合わせ、生成されたテンプレートｉの系列をイベント候補として出力する。
【００５９】
イベント抽出部１４０は、抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出する。具体的には、イベント抽出部１４０は、抽出された各イベント候補から共通で頻出するテンプレートの集合又はパターンをイベントとして取得する。イベント抽出部１４０は、何れか適当な頻出パターンのカウント方法を利用可能であり、例えば、Y.Chi, H.Wang, P.S.Yu, and R.R.Muntz, "Moment: Maintaining Closed Frequent Itemsets over a Stream Sliding Window", In proc. of ICDM. 2004やN.Jiang, and L.Gruenwald, "CFI-Stream: Mining Closed Frequent Itemsets in Data Streams", In proc. of KDD, 2006に開示される逐次的にclosedな頻出パターンを列挙する方法を利用してもよい。ここで、closedなパターンとは、同一発生回数を有するパターンのうち最大の集合を表すものである。例えば、CFI-Streamでは、内部にPrefix Treeに類似したclosedな頻出パターンを列挙したDIUTreeと呼ばれる木を保持し、これを逐次的に新たに到着したイベント候補に対して更新する。当該更新は、主として既にDIUTreeに新しいイベント候補が含まれているか、又は新しいclosedパターンになるか、というチェックを必要最小限の走査で行うものである。利用者は、特定のイベント発生回数の閾値Ｅを設定することによって、Ｅ回以上発生したイベントをDIUTreeにより逐次把握することができる。
【００６０】
次に、図８〜１０を参照して、本発明の他の実施例によるログ分析システムを説明する。上述したログ分析システム１０は、一定の期間において監視対象機器群２００において生成されたログメッセージをログ分析装置１００が収集し、当該期間内に収集したログメッセージに対して上述したログ分析が実行されるオフライン処理に関するものである。他の実施例では、ログ分析システム１０は、図８に示されるように、オンライン処理に関するものであってもよい。すなわち、ログ分析装置１００は、ホストからログメッセージを取得する毎に、取得したログメッセージに対してイベントを抽出してもよい。具体的には、監視対象機器群２００からログメッセージを取得する毎に、ログ分析装置１００は、取得したログメッセージをテンプレート付加データベース（ＤＢ）１０８に格納する。さらに、ログ分析装置１００は、格納した各ログメッセージに対して、上述したイベント候補抽出処理を実行し、イベント候補を抽出し、抽出したイベント候補からイベントを抽出するようにしてもよい。抽出されたイベントは、例えば、抽出される毎に、あるいはユーザ装置３００からのクエリの発行や特定のイベントが更新された場合に、ユーザインタフェース１０７を介しユーザ装置３００に送信されてもよい。
【００６１】
図９は、本発明の他の実施例によるログ分析処理を示すフローチャートである。オンラインのログ分析処理は、ログメッセージを取得する毎に、図５〜７を参照して説明したオフラインのログ分析処理を実行するというものである。当該ログ分析処理は、コンピュータがプログラムを実行することによって実現されてもよい。
【００６２】
図９に示されるように、ステップＳ４０１において、ログ分析装置１００は、監視対象機器群２００のホストからログメッセージを取得したか判断し、ログメッセージを取得すると、以降のステップを実行する。なお、ホストから所定数（１，２，３，...）のログメッセージを取得した後、ログ分析装置１００が以降のステップを実行するようにしてもよい。あるいは、ホストからログメッセージを所定の期間取得した後、ログ分析装置１００が以降のステップの実行するようにしてもよい。
【００６３】
ステップＳ４０２において、ログ分析装置１００は、格納されているログメッセージに関するテンプレートから、監視対象のホストから提供された各ログメッセージに一致するテンプレートを特定する。具体的には、ログ分析装置１００は、格納されているテンプレートから、取得したログメッセージに一致するテンプレートを抽出する。
【００６４】
ステップＳ４０３において、ログ分析装置１００は、特定されたテンプレートのうち、同一のホストから提供されたログメッセージについて特定されたテンプレートを検出し、検出されたテンプレートの系列をイベント候補として抽出する。具体的には、ログ分析装置１００は、上述した図５〜７の処理を実行することによって、イベント候補を抽出すると共に、発生時間間隔dur(t0,t)を更新又は学習する。
【００６５】
ステップＳ４０４において、ログ分析装置１００は、抽出されたイベント候補から頻出するテンプレートの系列をイベントとして抽出する。具体的には、ログ分析装置１００は、上述したような何れか既知の方法を利用して、抽出された各イベント候補から共通で頻出するテンプレートの集合又はパターンをイベントとして取得する。その後、当該処理は、ステップＳ４０１に戻り、ログメッセージが取得される毎に上述したステップが実行される。
【００６６】
図１０は、本発明の他の実施例によるログ分析処理のシミュレーション結果を示す図である。図では、上述したオンラインのログ分析処理が適用された際のシミュレーション結果が示され、１万行のログメッセージを処理する毎の処理時間の推移が示されている。オフラインのログ分析処理では、ログメッセージが取得される毎に全てのデータに対して上述したログ分析処理が実行され、処理行数と共に処理時間が増加する。他方、本実施例によるオンラインのログ分析処理は、図示されるように、安定した速度により逐次処理が可能になる。
【００６７】
また、他の実施例では、図１１に示されるように、ログ分析装置１００は、故障・工事情報データベース（ＤＢ）２５０に通信接続され、ネットワーク機器の故障時に発生するログメッセージや工事に関するログメッセージに関してイベントを抽出してもよい。
【００６８】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６９】
本国際出願は、２０１４年８月２５日に出願した日本国特許出願２０１４−１７００９７号に基づく優先権を主張するものであり、２０１４−１７００９７号の全内容を本国際出願に援用する。
【符号の説明】
【００７０】
１０  ログ分析システム
１００  ログ分析装置
１１０  テンプレート格納部
１２０  テンプレート特定部
１３０  イベント候補抽出部
１４０  イベント抽出部
２００  監視対象機器群
３００  ユーザ装置
【図１】
2016031681.tif 000005
【図２】
2016031681.tif 000006
【図３】
2016031681.tif 000007
【図４】
2016031681.tif 000008
【図５】
2016031681.tif 000009
【図６】
2016031681.tif 000010
【図７】
2016031681.tif 000011
【図８】
2016031681.tif 000012
【図９】
2016031681.tif 000013
【図１０】
2016031681.tif 000014
【図１１】
2016031681.tif 000015
【国際調査報告】
2016031681.tif 000016
2016031681.tif 000017