(57)【特許請求の範囲】
【請求項１】
複数の機器が出力するログ情報から有用な情報を抽出する監視情報分析装置であって、
前記複数の機器から収集したログメッセージを格納するログ情報記憶手段と、
前記ログ情報記憶手段から前記ログメッセージを取得して、該ログメッセージに含まれる各単語に対して、該単語の出現位置（idx）、単語（word）、該ログメッセージに含まれる単語数(len)からなる｛idx，word，len｝の組の出現頻度を求め、該出現頻度に基づいてスコアを算出し、該スコアに基づいてクラスタリングを行うことにより、テンプレートを生成し、テンプレート記憶手段に格納するテンプレート生成手段と、
前記複数の機器から直接、または、前記ログ情報記憶手段から、ログメッセージを取得して、前記テンプレート記憶手段の前記テンプレートとマッチングを行うことにより、重要なメッセージを抽出し、出力するテンプレートマッチング手段と、
を有し、
前記テンプレート生成手段は、
クラスタリングされたクラスタを値の高いものから併合し、前記ログメッセージの総単語数と重要な単語を含むクラスタの範囲を決定するための所定の閾値を乗じた値を超えた時点において併合した単語集合を前記テンプレートとする
ことを特徴とする監視情報分析装置。
【請求項２】
前記テンプレート生成手段は、
最もスコアの大きい単語Aを現在のクラスタとし、前記ログメッセージから取得したクラスタリングを行っていない最大のスコアを有する単語Bの平均距離を求め、該平均距離が所定の閾値以下であれば、該単語Bを該現在のクラスタに併合する手段を含む
請求項1記載の監視情報分析装置。
【請求項３】
前記テンプレート生成手段は、
任意のタイミングで前記テンプレートを生成し、前記テンプレート記憶手段を更新する手段を含む
請求項1記載の監視情報分析装置。
【請求項４】
前記テンプレートマッチング手段は、
抽出された重要なメッセージを強調表示する手段を含む
請求項1記載の監視情報分析装置。
【請求項５】
複数の機器が出力するログ情報から有用な情報を抽出する監視情報分析方法であって、
テンプレート生成手段が、前記複数の機器から収集したログメッセージを格納するログ情報記憶手段から該ログメッセージを取得して、該ログメッセージに含まれる各単語に対して、該単語の出現位置（idx）、単語（word）、該ログメッセージに含まれる単語数(len)からなる｛idx，word，len｝の組の出現頻度を求め、該出現頻度に基づいてスコアを算出し、該スコアに基づいてクラスタリングを行うことにより、テンプレートを生成し、テンプレート記憶手段に格納するテンプレート生成ステップと、
テンプレートマッチング手段が、前記複数の機器から直接、または、前記ログ情報記憶手段から、ログメッセージを取得して、前記テンプレート記憶手段の前記テンプレートとマッチングを行うことにより、重要なメッセージを抽出し、出力するテンプレートマッチングステップと、
を行い、
前記テンプレート生成ステップにおいて、
クラスタリングされたクラスタを値の高いものから併合し、前記ログメッセージの総単語数と重要な単語を含むクラスタの範囲を決定するための所定の閾値を乗じた値を超えた時点において併合した単語集合を前記テンプレートとする
ことを特徴とする監視情報分析方法。
【請求項６】
前記テンプレート生成ステップにおいて、
最もスコアの大きい単語Aを現在のクラスタとし、前記ログメッセージから取得したクラスタリングを行っていない最大のスコアを有する単語Bの平均距離を求め、該平均距離が所定の閾値以下であれば、該単語Bを該現在のクラスタに併合する
請求項５記載の監視情報分析方法。
【請求項７】
前記テンプレート生成ステップにおいて、
任意のタイミングで前記テンプレートを生成し、前記テンプレート記憶手段を更新する請求項５記載の監視情報分析方法。
【請求項８】
前記テンプレートマッチングステップにおいて、
抽出された重要なメッセージを強調表示する
請求項５記載の監視情報分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視情報分析装置及び方法に係り、特に、多種多様な装置が出力するログ情報から利用者にとって有用な情報を抽出する技術において、装置が生成するログ形式の生成則を利用者が事前に直接知ることなく、情報を抽出するための監視情報分析装置及び方法に関する。
【背景技術】
【０００２】
今日、コスト削減を主な理由として、異なる製造元の、異なる役割を持つ機器、ソフトウェアの一元的な監視・管理が行われている。一方で、こうした多種多様な機器やソフトウェアはそれぞれ独自の形態を持つログを出力する機構を有しており、機器の監視・管理を行う際において使用される情報機器の発展に伴い、これらのログ情報は大規模化しており、効率的な監視方法が必要となっている。
【０００３】
こうした中で, 様々なログデータファイル形式に対応可能であり、SQL文を利用したデータ変換による集計・分析が可能なツールが開発されている（例えば、非特許文献１、非特許文献２参照）。これらの分析ツールは、出力されるログの意味や形式を熟知している利用者が膨大なログ情報を効率よく集計・分析するために利用される。
【０００４】
また、以前に生起したエラーログをある一定期間保持しておき、それが再度起こる度にエラーログ番号と共に保存し、障害情報の効率的な管理方法も知られている。
【０００５】
一方、ルータなどのネットワーク機器の生成するsyslogを対象とし、ベンダやメッセージタイプ、エラーコード、詳細なメッセージ内容といったある程度の形式を事前に与えられた場合におけるテンプレートの把握法を与えている（例えば、非特許文献３参照）。当該技術は、あるメッセージタイプを根とし、付随する単語を順に、過去に出現したログメッセージにおける頻度ごとに葉を追加していくことで木構造を形成していき、テンプレートを把握するものである。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】T. Qiu, Z. Ge, D. Pei, J. Wang, J, Xu,"What Happened in my Network? Mining Network Events from Router Syslogs", In IMC, 2010.
【非特許文献２】Log Parser Microsoft.    http://technet.microsoft.com/ja-jp/scriptcenter/dd919274
【非特許文献３】Splunk    http://www.splunk.com/
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の非特許文献１，２の技術は、機械の生成するログには実際に発生した事象を意味するメッセージ部分と、エラーコードや、ID番号、起こった場所、時間等のエラーコード特有の値や単語が含まれており、実際は発生した事象が同じであってもエラーログが一意に定まらないことが多い。このため、同じ事象の発生を意味するログが別々の番号で管理されてしまうことになり、非効率的かつ有用とは言えない。
【０００８】
また、非特許文献３の技術では、少なくとも情報を収集する段階での事前知識が必要である。例えば、どのベンダからログを収集しているか、メッセージ内のどの部分がエラーコードを示しているのかといったことを把握しておかなければならず、テンプレート把握機構を単純に用意するだけでなく、事前の手動での入力や準備が必要となる。
【０００９】
上記のように、従来技術では、それぞれ利用者がログの意味や形式を熟知している必要があったり、同じ事象の発生を意味するログが別々の番号で管理されてしまうといった非効率な点があったり、情報を収集する段階での事前知識や手法での入力といった準備が必要であったりという様々な問題がある。
【００１０】
本発明は、上記の点に鑑みなされたもので、利用者が、装置が生成するログ形式の生成則を事前に直接的に知ることなく、その利用者にとって必要な情報抽出する実現することが可能な監視情報分析装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するため、本発明（請求項１）は、複数の機器が出力するログ情報から有用な情報を抽出する監視情報分析装置であって、
前記複数の機器から収集したログメッセージを格納するログ情報記憶手段と、
前記ログ情報記憶手段から前記ログメッセージを取得して、該ログメッセージに含まれる各単語に対して、該単語の出現位置（idx）、単語（word）、該ログメッセージに含まれる単語数(len)からなる｛idx，word，len｝の組の出現頻度を求め、該出現頻度に基づいてスコアを算出し、該スコアに基づいてクラスタリングを行うことにより、テンプレートを生成し、テンプレート記憶手段に格納するテンプレート生成手段と、
前記複数の機器から直接、または、前記ログ情報記憶手段から、ログメッセージを取得して、前記テンプレート記憶手段の前記テンプレートとマッチングを行うことにより、重要なメッセージを抽出し、出力するテンプレートマッチング手段と、
を有し、
前記テンプレート生成手段は、
クラスタリングされたクラスタを値の高いものから併合し、前記ログメッセージの総単語数と重要な単語を含むクラスタの範囲を決定するための所定の閾値を乗じた値を超えた時点において併合した単語集合を前記テンプレートとする。
【００１２】
また、本発明（請求項２）は、前記テンプレート生成手段において、
最もスコアの大きい単語Aを現在のクラスタとし、前記ログメッセージから取得したクラスタリングを行っていない最大のスコアを有する単語Bの平均距離を求め、該平均距離が所定の閾値以下であれば、該単語Bを該現在のクラスタに併合する手段を含む。
【００１３】
また、本発明（請求項３）は、前記テンプレート生成手段において、
任意のタイミングで前記テンプレートを生成し、前記テンプレート記憶手段を更新する手段を含む。
【００１４】
また、本発明（請求項４）は、前記テンプレートマッチング手段において、
抽出された重要なメッセージを強調表示する手段を含む。
【発明の効果】
【００１５】
上述のように本発明によれば、ログメッセージ内の単語のスコアに基づいたクラスタリングを行い、当該単語をクラスタに併合するかを判定するためのパラメータを用いてスコアの低いクラスタを除くようにテンプレートを生成することにより、重要なログメッセージを抽出することが可能となる。これにより、監視対象機器が生成するログの形式の生成則を事前に直接的に知ることなく、利用者にとって必要な情報を抽出することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施の形態における概要動作のフローチャートである。
【図２】本発明の一実施の形態における監視情報分析装置の構成図である。
【図３】本発明の一実施の形態における監視情報分析装置のテンプレート生成までの動作のフローチャートである。
【図４】本発明の一実施の形態におけるスコアクラスタリングのフローチャートである。
【図５】本発明の第１の実施例のシステム構成図である。
【図６】本発明の第１の実施例のログメッセージとテンプレートの例である。
【図７】本発明の第２の実施例のシステム構成図である。
【発明を実施するための形態】
【００１７】
以下、図面と共に本発明の実施の形態を説明する。
【００１８】
図１は、本発明の一実施の形態における概要動作のフローチャートである。
【００１９】
本発明は、監視対象の機器からログを収集し（ステップ１）、過去のログ情報を事前に分析して得られたログメッセージ群に含まれる各単語に対し、スコアリングを行い、各メッセージ内の単語をスコアに基づいてクラスタリングし、スコアの低い単語クラスタを除去するためのテンプレートを生成し、蓄積しておく（ステップ２）。蓄積されているログ情報を読み出して、蓄積されているテンプレートとマッチングを行い（ステップ３）、ログメッセージ中の重要部分を抽出し、利用者に提示する（ステップ４）。
【００２０】
図２は、本発明の一実施の形態における監視情報分析装置の構成を示す。
【００２１】
同図に示す監視情報分析装置は、単語情報生成部１０、出現数計数部２０、スコア算出部３０、テンプレート生成部４０、ログＤＢ５０、単語情報ＤＢ６０、テンプレートＤＢ７０、テンプレート整形・表示部８０から構成される。
【００２２】
ログＤＢ５０、単語情報ＤＢ６０、テンプレートＤＢ７０は、ハードディスク装置等の記憶媒体に格納されているものとする。ログＤＢ５０は、予め監視対象機器から収集されたログ情報が格納されている。
【００２３】
図３は、本発明の一実施の形態における監視情報分析装置の動作のフローチャートである。
【００２４】
ステップ１００）  単語情報生成部１０は、ログＤＢ５０からログメッセージを読み込み、以下のような処理を行う。
【００２５】
単語情報生成部１０は、ログメッセージに出現する単語の持つ二つの性質を利用する。
【００２６】
１つ目は、ある1行のログメッセージ内に出現する各単語のうち、重要でないパラメータは他の単語と比べ相対的に出現頻度が低くなる点である。２つ目は、特定の単語が出現する位置に関する規則性である。
【００２７】
単語情報生成部１０は、過去の全ログメッセージについて、ログに記載されたタイムスタンプを消去し、特定の記号文字（コロン、セミコロン等）に対してスペースを付与する。具体的な例としては、"＜"、"＞"記号にはスペースを付与して、それぞれ"  ＞"、"＜  "と書き換える。特定の記号文字とは、上記のような括弧記号、コロン、セミコロンなどを表す、利用者はこれらの記号の定義を柔軟に行うことが可能である。
【００２８】
ステップ２００）  上記の処理を行ったログメッセージの中で、一意なログメッセージ（以下、「ユニークメッセージ」と記す）を単語情報ＤＢ６０に格納する。
【００２９】
ステップ３００）  出現数計数部２０は、単語情報ＤＢ６０から読み出したユニークメッセージをスペース文字で分割し、分割された各単語（以下、「word」と記す）、先頭からの単語の出現位置（以下、「idx」と記す）、ログメッセージ内の単語数（以下、「len」と記す）からなる｛idx，word，len｝の組の出現回数を計算し、当該｛idx，word，len｝の組と共に単語情報ＤＢ６０に格納する。
【００３０】
ステップ４００）  スコア算出部３０は、単語情報ＤＢ６０から｛idx，word，len｝の組の出現回数を取得して、len及びidxが与えられた元でのwordの生起確率Pr(word|idx，len)を計算し、これを｛idx，word，len｝の組が持つスコアとして単語情報ＤＢ６０に格納する。
【００３１】
当該スコアの決定方法としては、一般に機器の生成するログは何らかの生成則を持っているため、ある単語は同じ位置に出現することが多く、同じ単語数を持つメッセージは同等のイベントを表す傾向を持つという考察に基づいている。これにより、頻繁に出現する単語と稀にしか出現しない単語を効率的に区別できる。
【００３２】
ステップ５００）  テンプレート生成部４０は、単語情報ＤＢ６０から取得した全ユニークメッセージの単語を当該単語のスコアに基づいてクラスタリングを行い、スコアの低い単語クラスタを除外するためのテンプレートを作成する。これにより、後述する手プレート整形・表示部８０において、ログメッセージから重要と判断される部分の抽出を可能にする。
【００３３】
テンプレート生成までの動作について説明する。
【００３４】
図３は、本発明の一実施の形態における監視情報分析装置のテンプレート生成までの動作のフローチャートである。
【００３５】
ステップ５０１）  まず、テンプレート生成部４０は、単語情報ＤＢ６０から各ユニークメッセージに対して、各｛idx，word，len｝とそのスコアを取得する。また、ｉ＝４（規定値）として設定する。
【００３６】
ステップ５０２）  上記の各組｛idx，word，len｝とスコアのリストに関して降順に並び替えを行う。
【００３７】
ステップ５０３）  最も大きいスコアを持つ単語を選択し、これを現在のクラスタとする。
【００３８】
ステップ５０４）  まだクラスタリングを行っていない最大の単語を選び、そのスコアに対し、現在のクラスタ内の各単語の値との平均距離を計算し、クラスタへ併合が可能かの判定を行う。すなわち、現在のクラスタに含まれる単語をw1，…，wnとし、各wi（ｉ＝１，…，ｎ）のスコアをsi、また、クラスタの併合が可能かどうかの判定を行う文字のスコアをｖとしたときの
【００３９】
【数１】
0005711677.tif 000002
の値を計算する。
【００４０】
ステップ５０５）  上記の(1)で求められた平均距離が適切に定められた閾値Ｖ（規定値：0.01）以下であれば、ステップ５０６に移行する。もし、閾値を超えていた場合は、ステップ５０７に移行する。
【００４１】
ステップ５０６）  選択した単語を現在のクラスタに併合し、ステップ５０４の処理に戻る。
【００４２】
ステップ５０７）  現在のクラスタを出力する。
【００４３】
ステップ５０８）  まだ、未選択の単語がある場合は、ステップ５０９に移行する。
【００４４】
ステップ５０９）  選択した単語を現在のクラスタとして、ステップ５０４に移行する。
【００４５】
ステップ５１０）  未選択の単語がない場合には、生成したクラスタ数が閾値C以上であるかを判定する。クラスタ数が閾値C(規定値：4）以上でなければステップ５１２に移行し、クラスタ数がC以上であればステップ５１１に移行する。
【００４６】
ステップ５１１）  全てのクラスタを出力し終了する。
【００４７】
ステップ５１２）  ｉ＝０であればステップ５１３に移行し、そうでなければステップ５１１に移行する。
【００４８】
ステップ５１３）  クラスタ内の単語数が1より大きいものの中で、最小の値を持つクラスタを新たな入力メッセージとする。ｉ＝ｉ−１，V：＝V／10として更新し、ステップ５０３に戻り、（ｉ）から適用する。
【００４９】
上記のVの値は、クラスタを形成するためのクラスタ間距離の閾値を表しており、最初の閾値を0.01とした。ログメッセージの量により最適な値は変化するが、スコアは１以下の値をとり、もしクラスタ数が十分でなければVを1／10倍して再度計算を行うため、この規定値で問題はない。また、再計算を行う際に、1／10倍することに関しては、頻繁に出現する単語とそうでない単語とのスコア、すなわち出現頻度の差はおよそ０（1／10）で下がることが実験により証明されており、これに基づくｉの値は反復の上限を与えており、もし、クラスタ内の全単語のスコアが同じ場合に無限ループへ陥らないように設定されている。また、同時に過分割を避けるために、ｉ＝４を規定値としている。閾値Ｃは予め設定する目標とするクラスタ数である。例として、
「%TRACKING-5-STATE: 1 interface Fa0/0 line-protocol Up->Down」
というsyslogメッセージを考えると、ログメッセージの単語は大別して、ログを分類するためのエラーコード部分（「%TRACKING-5-STATE」）、イベントが起こった対象を表す部分（「interface, line-protocol」）、実際に起こったイベント部分（「Up->Down」）、パラメータ部分（「1，Fa0/0」）という４分類が可能な場合が多いことから、この値を設定している。
【００５０】
テンプレート生成部４０では、全ての出力されたクラスタ列に含まる各組｛idx，word，len｝の情報を元に、新たなメッセージであるテンプレートを作成する。この際、出力されたクラスタの値の高いものから併合していき、もともとのメッセージの総単語数×閾値ｃ（規定値：0.75）を超えたとき、そこまでで併合した単語を用いて生成する。このようにして生成されたテンプレートはテンプレートＤＢ７０に格納される。なお、閾値ｃは、重要な単語を含むクラスタの範囲を決めるパラメータであり、多くのログメッセージは重要な単語の個数が相対的にパラメータの個数より多い。この事実と多くのログメッセージが満たす最適な値として、規定値を0.75と設定した。
【実施例】
【００５１】
以下に、上記に基づいて具体的な動作を説明する。
【００５２】
［第１の実施例］
本発明では、単語情報生成部１０によって単語とそのスコアが記憶された単語情報ＤＢ５０と、それを用いてテンプレートを作成するテンプレート生成部４０、そして発生してくるログをテンプレートと突合せ、情報の重要度に応じて表示するテンプレート整形・表示部８０を主要な構成とする。なお、テンプレート生成部４０としてテンプレート把握エンジンを用いるものとする。これらは、図５に示すような構成で実施することができる。
【００５３】
図５では、ログ収集装置１で収集されたログを、予めログＤＢ５０へ保存している場合を想定している。事前に収集した過去のログを用いてテンプレートを生成しておき、時々刻々と発生するログに対してテンプレートをマッチングさせるものである。
【００５４】
入力とするログはどの様な機器のものでも問題はないが、例えば、ネットワーク監視のためのルータのsyslogなどが考えられる。この場合において、図５のオフライン形態について説明する。
【００５５】
ネットワーク機器の生成するログは一元的にログ収集装置１で収集され、ログＤＢ５０に保存されている。この後、単語情報生成部１０、出現数計数部２０の処理を経て、スコア算出部３０において、単語毎のスコアを計算し、単語情報ＤＢ６０に保存する。テンプレート生成部４０は、単語情報ＤＢ６０に格納されている全ての単語情報に基づいてテンプレートを生成し、テンプレートＤＢ７０に格納する。これらの工程は全てオフラインで行われる。
【００５６】
図６は、本発明の第１の実施例のsyslogの場合におけるログメッセージとテンプレートの例を示す。
【００５７】
上記の処理が完了している状態において、テンプレート整形・表示部８０は、時々刻々とログＤＢ５０に蓄積されているログ情報を読み込み、図６に示すように、テンプレートＤＢ７０のテンプレートとのマッチングを行う。その結果、最もマッチする文字列を得て、テンプレートとなっている部分を色分け等により強調表示する。図６において、太字部分が強調表示されるメッセージを表している。
【００５８】
以下に、図６に示されるメッセージ例に対してどのようにテンプレートが生成されるかについて説明する。
【００５９】
まず、図６（Ａ）の１列目に表されるようなメッセージが到着しているとする。各単語はスペースにより分割され、これまでに受け取った全ログメッセージを利用してスコアが付与される。２列目には、１列目の先頭にあるログメッセージ内の各単語に対して、スコアごとのクラスタリングを行った結果を示す。各クラスタの単語の隣の括弧内の数字は、その単語のスコアを表す。各クラスタ間の距離がＶで分割されている様子がわかり、スコアの低いクラスタはパラメータであることが一見してわかる。
【００６０】
図６（Ｂ）の例も同様に、クラスタ７がパラメータ部を表すことがわかる。最後に、３列目にはテンプレートの例を示す。閾値ｃ＝0.75であることから、クラスタを１から順に繋げていき、元のログメッセージの総単語数×0.75を超えた時点でテンプレートを作成し、その他のクラスタ内の単語をアスタリスクとして表示している。この例では、最後の一つのクラスタのみがパラメータとして除かれたが、これが複数の場合もある。
【００６１】
［第２の実施例］
第１の実施例では、オフライン形態について説明したが、本実施例では、オンライン形態について説明する。
【００６２】
図７は、本発明の第２の実施の形態におけるシステム構成を示す。
【００６３】
図７では、ログ収集装置１が時々刻々と発生するログを用いて逐次単語情報ＤＢ１０を更新し、テンプレート整形・表示部８０に与えることにより、テンプレートを蓄積するテンプレートＤＢ７０をオンラインで更新するシステムを示す。ここで、ログ収集装置１は、前述の単語情報生成部１０の機能を有し、監視対象となる機器群のログを生成し、単語情報DB６０に格納する機能と、テンプレートマッチングする際に、テンプレート整形・表示部８０に転送する機能を有している。
【００６４】
テンプレートマッチングの方法は、第1の実施の形態と同様である。
【００６５】
なお、図２に示す監視情報分析装置の構成要素の各動作をプログラムとして構築し、監視情報分析装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００６６】
本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。  
【符号の説明】
【００６７】
１  ログ収集装置
１０  単語情報生成部
２０  出現数計数部
３０  スコア算出部
４０  テンプレート生成部
５０  ログＤＢ
６０  単語情報ＤＢ
７０  テンプレートＤＢ
８０  テンプレート整形・表示部
【図１】
0005711677.tif 000003
【図２】
0005711677.tif 000004
【図３】
0005711677.tif 000005
【図４】
0005711677.tif 000006
【図５】
0005711677.tif 000007
【図６】
0005711677.tif 000008
【図７】
0005711677.tif 000009