(57)【特許請求の範囲】
【請求項１】
ログの出力に基づいて異常を検出する第１の分析を行う工程と、
前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う工程と、
前記ログが、変化可能な変数部分と変化しない定数部分とを含む、予め決められた複数の形式のいずれに合致するか判定する工程と
を含み、
前記第２の分析を行う工程は、
前記ログに含まれる前記変数部分の値に基づいて前記異常を分析し、
前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析することを特徴とする、
ログ分析方法。
【請求項２】
前記第２の分析を行う工程は、前記ログに含まれる前記変数部分の値ごとに前記ログの分布を生成することによって前記異常を分析することを特徴とする、請求項１に記載のログ分析方法。
【請求項３】
前記第１の分析を行う工程は、前記ログの出力数又は出力頻度の時系列変化に基づいて前記異常を検出することを特徴とする、請求項１または２に記載のログ分析方法。
【請求項４】
前記第１の分析を行う工程は、予め記録された前記形式および前記変数部分の値のいずれにも合致しない前記ログが出力された場合に、前記異常を検出することを特徴とする、請求項１または２に記載のログ分析方法。
【請求項５】
前記第２の分析を行う工程は、前記第１の分析を行う工程における予め記録された前記形式および前記変数部分の値のいずれにも合致しない前記ログの数又は頻度の時系列のグラフを生成し、前記グラフ中の変化点に基づいて前記異常を分析することを特徴とする、請求項４に記載のログ分析方法。
【請求項６】
コンピュータに、
ログの出力に基づいて異常を検出する第１の分析を行う工程と、
前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う工程と、
前記ログが、変化可能な変数部分と変化しない定数部分とを含む、予め決められた複数の形式のいずれに合致するか判定する工程と
を実行させ、
前記第２の分析を行う工程は、
前記ログに含まれる前記変数部分の値に基づいて前記異常を分析し、
前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析することを特徴とする、
ログ分析プログラム。
【請求項７】
ログの出力に基づいて異常を検出する第１の分析を行う簡易異常分析部と、
前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う詳細異常分析部と、
前記ログが、変化可能な変数部分と変化しない定数部分とを含む、予め決められた複数の形式のいずれに合致するか判定する判定部と
を備え、
前記詳細異常分析部は、
前記ログに含まれる前記変数部分の値に基づいて前記異常を分析し、
前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析することを特徴とする、
ログ分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログを分析するためのログ分析方法、システムおよびプログラムに関する。
【背景技術】
【０００２】
コンピュータ上で実行されるシステムでは、一般的にイベントの結果やメッセージ等を含むログが出力される。システム異常等が発生した際には、通常時と比べてログの出力頻度および内容に変化が生じる。そのため、ログの出力頻度や内容に基づいて異常を検出する様々な方法が考案されている。【０００３】
特許文献１に記載の技術は、過去のログ（イベント）が出力された頻度の分布から平均および標準偏差を算出し、算出された平均および標準偏差から理論的分布（正規分布、ポワソン分布等）を生成する。そして該技術は、理論的分布に基づいて分析対象のログから異常が発生したか否かを判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２３６８６２号公報
【発明の概要】
【０００５】
特許文献１に記載の技術は、ログの出力頻度の変化に基づいて異常の発生を検出する。しかしながら、特許文献１に記載の技術では、さらに異常の原因を分析するために他のログ分析方法を協調させて動作させることは想定されていない。
【０００６】
また、複数のログ分析方法を独立して実行する場合には、異常の発生時に多数の通知が発生する。そのため、利用者は多数の通知を同時に受けることになり、迅速に異常の対応および分析を行うことが難しい。
【０００７】
本発明は、上述の問題に鑑みて行われたものであって、複数の分析を協調させてログの異常を段階的に分析することができるログ分析方法、システムおよびプログラムを提供することを目的とする。
【０００８】
本発明の第１の態様は、ログ分析方法であって、ログの出力に基づいて異常を検出する第１の分析を行う工程と、前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う工程とを含み、前記第２の分析を行う工程は、前記ログに含まれる前記変数部分の値に基づいて前記異常を分析し、前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析する。
【０００９】
本発明の第２の態様は、ログ分析プログラムであって、コンピュータに、ログの出力に基づいて異常を検出する第１の分析を行う工程と、前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う工程と、前記ログが、変化可能な変数部分と変化しない定数部分とを含む、予め決められた複数の形式のいずれに合致するか判定する工程とを実行させ、前記第２の分析を行う工程は、前記ログに含まれる前記変数部分の値に基づいて前記異常を分析し、前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析する。
【００１０】
本発明の第３の態様は、ログ分析システムであって、ログの出力に基づいて異常を検出する第１の分析を行う簡易異常分析部と、前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う詳細異常分析部と、前記ログが、変化可能な変数部分と変化しない定数部分とを含む、予め決められた複数の形式のいずれに合致するか判定する判定部とを備え、前記詳細異常分析部は、前記ログに含まれる前記変数部分の値に基づいて前記異常を分析し、前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析する。
【００１１】
本発明によれば、ログの出力に基づく第１の分析を行った後に、該第１の分析の結果を用いてログの詳細な内容に基づく第２の分析を行うため、複数の分析を協調させてログの異常を段階的に分析することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るログ分析システムのブロック図である。
【図２】第１の実施形態に係る分析対象ログの模式図である。
【図３】第１の実施形態に係るフォーマットの模式図である。
【図４】第１の実施形態に係るログ分析方法の模式図である。
【図５】第１の実施形態に係るログ分析システムの概略構成図である。
【図６】第１の実施形態に係るログ分析方法のフローチャートを示す図である。
【図７】第２の実施形態に係るログ分析システムのブロック図である。
【図８】第２の実施形態に係るログ分析方法の模式図である。
【図９】第３の実施形態に係るログ分析方法の模式図である。
【図１０】第３の実施形態に係るログ分析方法の模式図である。
【図１１】各実施形態に係るログ分析システムのブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
【００１４】
（第１の実施形態）
図１は、本実施形態に係るログ分析システム１００のブロック図である。図１において、矢印は主なデータの流れを示しており、図１に示したもの以外のデータの流れがあってよい。図１において、各ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図１に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてよい。
【００１５】
ログ分析システム１００は、処理部として、ログ入力部１１０、フォーマット判定部１２０、簡易異常分析部１３０、詳細異常分析部１４０および通知制御部１５０を備える。また、ログ分析システム１００は、記憶部として、フォーマット記憶部１６１およびログ履歴記憶部１６２を備える。
【００１６】
ログ入力部１１０は、分析の対象とする分析対象ログ１０を受け取り、ログ分析システム１００に入力する。分析対象ログ１０は、ログ分析システム１００の外部から取得されてよく、あるいはログ分析システム１００の内部に予め記録されたものを読み出すことにより取得されてよい。分析対象ログ１０は、１つ以上の装置又はプログラムから出力される１つ以上のログを含む。分析対象ログ１０は、任意のデータ形式（ファイル形式）で表されたログであり、例えばバイナリデータ又はテキストデータでよい。また、分析対象ログ１０はデータベースのテーブルとして記録されてよく、あるいはテキストファイルとして記録されてよい。
【００１７】
図２は、例示的な分析対象ログ１０の模式図である。本実施形態における分析対象ログ１０は、装置又はプログラムから出力される１つのログを１単位とし、１つ以上の任意の数のログを含む。１つのログは１行の文字列でよく、あるいは複数行の文字列でよい。すなわち、分析対象ログ１０は分析対象ログ１０に含まれるログの総体を指し、ログは分析対象ログ１０から抜き出された１つのログを指す。各ログは、タイムスタンプおよびメッセージ等を含む。ログ分析システム１００は、特定の種類のログに限らず、広範な種類のログを分析対象とすることができる。例えば、ｓｙｓｌｏｇ、イベントログ等のオペレーティングシステムやアプリケーションなどから出力されるメッセージを記録する任意のログを分析対象ログ１０として用いることができる。
【００１８】
フォーマット判定部１２０は、分析対象ログ１０に含まれる各ログに対して、フォーマット記憶部１６１に予め記録されているいずれのフォーマット（形式）に合致するかを判定し、合致するフォーマットを用いて各ログを変数部分と定数部分とに分離する。フォーマット判定が行われたログは、判定されたフォーマットを示す情報とともにログ履歴記憶部１６２に記録される。フォーマットとは、ログの特性に基づいて予め決められた、ログの種類である。ログの特性は、互いに類似するログ間で変化しやすい又は変化しづらいという性質や、ログ中で変化しやすい部分を示す文字列が記載されているという性質を含む。変数部分とはフォーマットの中で変化可能な部分であり、定数部分とはフォーマットの中で変化しない部分である。入力されたログ中の変数部分の値（数値、文字列およびその他のデータを含む）を変数値と呼ぶ。変数部分および定数部分はフォーマット毎に異なる。そのため、あるフォーマットでは変数部分として定義される部分が、別のフォーマットでは定数部分として定義されることや、その逆があり得る。
【００１９】
図３は、フォーマット記憶部１６１に記録される例示的なフォーマットの模式図である。フォーマットは、一意のフォーマットＩＤに関連付けられたフォーマットを表す文字列を含む。フォーマットは、ログ中の変化可能な部分に所定の識別子を記載することによって変数部分として規定し、ログ中の変数部分以外の部分を定数部分として規定する。変数部分の識別子として、例えば「＜変数：タイムスタンプ＞」はタイムスタンプを表す変数部分を示し、「＜変数：文字列＞」は任意の文字列を表す変数部分を示し、「＜変数：数値＞」は任意の数値を表す変数部分を示し、「＜変数：ＩＰ＞」は任意のＩＰアドレスを表す変数部分を示す。変数部分の識別子はこれらに限られず、正規表現や、取り得る値のリスト等の任意の方法により定義されてよい。また、フォーマットは変数部分を含まずに定数部分のみによって構成されてよく、あるいは定数部分を含まずに変数部分のみによって構成されてよい。
【００２０】
例えば、フォーマット判定部１２０は、図２の３行目のログを、図３のＩＤが１であるフォーマットに合致すると判定する。そして、フォーマット判定部１２０は、判定されたフォーマットに基づいて該ログを処理し、タイムスタンプである「２０１５／０８／１７  ０８：２８：３７」、文字列である「ＳＶ００３」、数値である「３２５８」およびＩＰアドレスである「１９２．１６８．１．２３」を変数値として決定する。
【００２１】
図３において、フォーマットは視認性のために文字列のリストで表されているが、任意のデータ形式（ファイル形式）で表されてよく、例えばバイナリデータ又はテキストデータでよい。また、フォーマットはバイナリファイル又はテキストファイルとしてフォーマット記憶部１６１に記録されてよく、あるいはデータベースのテーブルとしてフォーマット記憶部１６１に記録されてよい。
【００２２】
簡易異常分析部１３０および詳細異常分析部１４０は、以下に説明するログ分析方法によって、分析対象ログ１０に対して２つの段階で異常を検出および分析する。
【００２３】
図４は、本実施形態に係るログ分析方法の模式図である。まず、簡易異常分析部１３０は、分析対象ログ１０に対して簡易異常分析（第１の分析）を行い、異常が発生したことおよびその時間を検出する。簡易異常分析は、分析対象ログ１０中のログの出力数の傾向の変化等、ログ出力の時系列変化を用いて異常を検出する分析である。
【００２４】
具体的には、簡易異常分析部１３０は、分析対象ログ１０に含まれるログが各時間（時刻）までに出力された数を合計した累積出力数の分布Ａ１を生成する。累積出力数は、１つのフォーマットのログの出力数でよく、あるいは複数のフォーマットのログの出力数の合計でよく、あるいは全てのフォーマットのログの出力数の合計でよい。そして、簡易異常分析部１３０は、累積出力数の分布Ａ１から、累積出力数が急激に増加する時間を異常検出時間ｔ１として検出する。累積出力数が急激に増加することは、例えばある時間から次の時間の累積出力数の増加数又は増加率が所定の閾値以上であることによって検出される。閾値は、実験やシミュレーションによって適宜決定される。簡易異常分析のために、累積出力数に代えて、単位時間あたりの出力頻度を用いてもよい。
【００２５】
詳細異常分析部１４０は、簡易異常分析部１３０によって異常が検出された場合に、簡易異常分析部１３０によって検出された異常検出時間ｔ１を含む所定の時間範囲内に出力されたログをログ履歴記憶部１６２から読み出して詳細異常分析（第２の分析）を行い、異常の原因を示す情報を検出する。詳細異常分析は、分析対象ログ１０中のログに含まれる変数値等、ログの内容を用いて異常を検出する分析である。
【００２６】
具体的には、詳細異常分析部１４０は、簡易異常分析部１３０によって検出された異常検出時間ｔ１の前後の第１の時間範囲（例えば異常検出時間ｔ１の前後１２時間）に該当するログおよびそのフォーマットをログ履歴記憶部１６２から取得し、取得されたログに含まれる変数値ごとのログの出力数の分布Ａ２を生成する。図４の例では、変数としてサーバ名を用いているが、ファイル名、ＩＰアドレス等、異常の原因となり得る任意の変数を用いて変数値ごとの分布Ａ２を生成してよい。
【００２７】
詳細異常分析部１４０は、変数値ごとの分布Ａ２から、異常検出時間ｔ１の近傍で出力数が増加している変数値（ここではサーバ名「ＳＶ００３」）を異常の原因を示す情報として検出する。出力数が増加していることは、例えば異常検出時間ｔ１の前後の第１の時間範囲（例えば異常検出時間ｔ１の前後１２時間）の平均出力数に対する、異常検出時間ｔ１の前後の第２の時間範囲（例えば異常検出時間ｔ１の前後１時間）の平均出力数の増加数又は増加率が所定の閾値以上であることによって検出される。ここで第２の時間範囲は、第１の時間範囲より短く設定される。これにより、ログの定期的又は規則的な出力ではなく、異常の発生の近傍でのログの不定期又は不規則な出力を検出することができる。詳細異常分析のために、出力数に代えて、単位時間あたりの出力頻度を用いてもよい。
【００２８】
通知制御部１５０は、簡易異常分析部１３０および詳細異常分析部１４０によって検出された異常を示す情報（例えば異常が検出された時間、該時間の前後のログ、および異常の原因を示す情報）を、ディスプレイ２０を用いて通知する制御を行う。通知制御部１５０による異常の通知は、ディスプレイ２０による表示に限らず、プリンタによる印刷、スピーカによる音声出力等、利用者に対して通知することが可能な任意の方法によって行われてよい。
【００２９】
簡易異常分析では、ログの出力（ここではログの出力数又はログの出力頻度の時系列変化）に基づいて異常を検出するため、計算コストが低い。一方、詳細異常分析では、ログの内容（ここではログに含まれる変数値）の詳細な分析を行うため、詳細な異常の分析を行うことができるものの、簡易異常分析よりも計算コストが高い。そのため、本実施形態は、ログの出力に基づいて異常を検出する簡易異常分析を行った後に、簡易異常分析によって検出された異常の発生時間を含む所定の時間範囲内に出力されたログの内容に基づいて異常を分析する詳細異常分析を行う。すなわち、本実施形態では、簡易異常分析を行って詳細異常分析の対象とする分析範囲を絞り込むことによって、計算コストを低減しつつ詳細な異常の分析を行うことができる。また、簡易異常分析によって絞り込まれた分析範囲についてのみ詳細異常分析を行うため、簡易異常分析および詳細異常分析を独立して実行するよりも無駄な異常の通知の数を低減することができる。
【００３０】
図５は、本実施形態に係るログ分析システム１００の例示的な機器構成を示す概略構成図である。ログ分析システム１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、メモリ１０２と、記憶装置１０３と、通信インターフェース１０４と、ディスプレイ２０とを備える。ログ分析システム１００は独立した装置でよく、あるいは他の装置と一体に構成されてよい。
【００３１】
通信インターフェース１０４は、データの送受信を行う通信部であり、有線通信および無線通信の少なくとも一方の通信方式を実行可能に構成される。通信インターフェース１０４は、該通信方式に必要なプロセッサ、電気回路、アンテナ、接続端子等を含む。通信インターフェース１０４は、ＣＰＵ１０１からの信号に従って、該通信方式を用いてネットワークに接続され、通信を行う。通信インターフェース１０４は、例えば分析対象ログ１０を外部から受信する。
【００３２】
記憶装置１０３は、ログ分析システム１００が実行するプログラムや、プログラムによる処理結果のデータ等を記憶する。記憶装置１０３は、読み取り専用のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、読み書き可能のハードディスクドライブ又はフラッシュメモリ等を含む。また、記憶装置１０３は、ＣＤ−ＲＯＭ等のコンピュータ読取可能な可搬記憶媒体を含んでもよい。メモリ１０２は、ＣＰＵ１０１が処理中のデータや記憶装置１０３から読み出されたプログラムおよびデータを一時的に記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含む。
【００３３】
ＣＰＵ１０１は、処理に用いる一時的なデータをメモリ１０２に一時的に記録し、記憶装置１０３に記録されたプログラムを読み出し、該プログラムに従って該一時的なデータに対して種々の演算、制御、判別などの処理動作を実行するプロセッサである。また、ＣＰＵ１０１は、記憶装置１０３に処理結果のデータを記録し、また通信インターフェース１０４を介して処理結果のデータを外部に送信する。
【００３４】
本実施形態においてＣＰＵ１０１は、記憶装置１０３に記録されたプログラムを実行することによって、図１のログ入力部１１０、フォーマット判定部１２０、簡易異常分析部１３０、詳細異常分析部１４０および通知制御部１５０として機能する。また、本実施形態において記憶装置１０３は、図１のフォーマット記憶部１６１およびログ履歴記憶部１６２として機能する。
【００３５】
ディスプレイ２０は、利用者に対して情報を表示する表示装置である。ディスプレイ２０として、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ、液晶ディスプレイ等の任意の表示装置を用いてよい。ディスプレイ２０は、ＣＰＵ１０１からの信号に従って、所定の情報を表示する。
【００３６】
ログ分析システム１００は、図５に示す具体的な構成に限定されない。ログ分析システム１００は、１つの装置に限られず、２つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されていてもよい。ログ分析システム１００に含まれる各部は、それぞれ電気回路構成により実現されていてもよい。ここで、電気回路構成とは、単一のデバイス、複数のデバイス、チップセット又はクラウドを概念的に含む文言である。
【００３７】
また、ログ分析システム１００の少なくとも一部がＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）形式で提供されてよい。すなわち、ログ分析システム１００を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてよい。
【００３８】
図６は、本実施形態に係るログ分析システム１００を用いるログ分析方法のフローチャートを示す図である。図６のフローチャートは、例えば利用者がログ分析システム１００に対してログ分析を実行するための所定の操作を行うことによって開始される。まず、ログ入力部１１０は、分析対象ログ１０を受け取り、ログ分析システム１００に入力する（ステップＳ１０１）。フォーマット判定部１２０は、ステップＳ１０１で入力された分析対象ログ１０に含まれる各ログについて、フォーマット記憶部１６１に記録されたいずれのフォーマットに適合するか判定する（ステップＳ１０２）。フォーマット判定部１２０は、フォーマット判定が行われた分析対象ログ１０に含まれる各ログを、判定されたフォーマットを示す情報とともにログ履歴記憶部１６２に記録する。
【００３９】
次に、簡易異常分析部１３０は、ステップＳ１０２でフォーマットが判定されたログに対して、上述の簡易異常分析（第１の分析）を行い、異常が発生したことおよびその時間を検出する（ステップＳ１０３）。
【００４０】
簡易異常分析部１３０によって異常が検出された場合に（ステップＳ１０４のＹＥＳ）、詳細異常分析部１４０は、ステップＳ１０２でフォーマットが判定されたログのうちステップＳ１０３で検出された異常検出時間を含む所定の時間範囲内のログに対して、上述の詳細異常分析（第２の分析）を行い、異常の原因を分析し、異常の原因を示す情報を検出する（ステップＳ１０５）。
【００４１】
通知制御部１５０は、ステップＳ１０３およびＳ１０５で検出された異常を示す情報（例えば異常が検出された時間、該時間の前後のログ、および異常の原因を示す情報）を、ディスプレイ２０を用いて通知する制御を行う（ステップＳ１０６）。ステップＳ１０６における通知を行った後、あるいはステップＳ１０３で異常が検出されない場合に（ステップＳ１０４のＮＯ）、ログ分析方法を終了する。
【００４２】
ログ分析システム１００のＣＰＵ１０１は、図６に示すログ分析方法に含まれる各ステップ（工程）の主体となる。すなわち、ＣＰＵ１０１は、図６に示すログ分析方法を実行するためのプログラムをメモリ１０２又は記憶装置１０３から読み出し、該プログラムを実行してログ分析システム１００の各部を制御することによって図６に示すログ分析方法を実行する。
【００４３】
従来、複数のログ分析方法を協調させて行うことは想定されていなかった。異なる種類の分析を行う複数のログ分析方法を独立して実行する場合には、無駄な計算コストが発生し、また異常の発生時にそれぞれのログ分析方法から多数の通知が発生するおそれがあった。多数の通知が発生すると利用者が各通知の重要性を判断する必要があり、利用者の業務の負荷が増加してしまう。それに対して、本実施形態では簡易異常分析を行って詳細異常分析の対象とする分析範囲を絞り込むことによって、計算コストを低減しつつ詳細な異常の分析を行うことができる。また、簡易異常分析によって絞り込まれた分析範囲についてのみ詳細異常分析を行うため、簡易異常分析および詳細異常分析を独立して実行するよりも無駄な異常の通知の数を低減することができる。
【００４４】
（第２の実施形態）
本実施形態では、第１の実施形態とは異なる手法を用いて簡易異常分析および詳細異常分析を行う。図７は、本実施形態に係るログ分析システム２００のブロック図である。ログ分析システム２００は、図１のログ分析システム１００の構成に加えて、記憶部としてモデル記憶部２６３を備えており、簡易異常分析部２３０において行われる簡易異常分析および詳細異常分析部２４０において行われる詳細異常分析の内容が異なる。以下では第１の実施形態と異なる部分のみを説明する。
【００４５】
図８は、本実施形態に係るログ分析方法の模式図である。まず、簡易異常分析部２３０は、分析対象ログ１０に対して簡易異常分析（第１の分析）を行い、異常が発生したことおよびその時間を検出する。
【００４６】
具体的には、簡易異常分析部２３０は、分析対象ログ１０に含まれる各ログＢ１が、モデル記憶部２６３に予め記録されたフォーマットおよび変数値の少なくとも一方を示すモデルのいずれかに該当するか否かを判定する。すなわち、簡易異常分析部２３０は、ログＢ１のフォーマットおよび変数値がモデル記憶部２６３に記録されたいずれかのモデルのフォーマットおよび変数値に合致する場合に該ログＢ１は正常であり、いずれのモデルのフォーマットおよび変数値にも合致しない場合に該ログＢ１は異常であると判定する。そして、簡易異常分析部２３０は、異常なログＢ１が出力された時間を異常検出時間ｔ１として検出する。このようなモデルに基づくログの異常の判定は計算コストが低いため、簡易異常分析として用いることができる。
【００４７】
モデル記憶部２６３には、正常なフォーマットおよび変数値の組み合わせを示すモデルが予め記録されている。モデル記憶部２６３に記録されるモデルは、フォーマットおよび変数値の組み合わせに限らず、フォーマットおよび変数値の少なくとも一方によって規定されてよい。すなわち、フォーマットのみを示すモデルについては、簡易異常分析部２３０は、分析対象ログ１０に含まれるログのフォーマットが、いずれかのモデルのフォーマットに合致するか否かによって正常および異常を判定する。変数値のみを示すモデルについては、簡易異常分析部２３０は、分析対象ログ１０に含まれるログに、いずれかのモデルの変数値が含まれるか否かによって正常および異常を判定する。
【００４８】
詳細異常分析部２４０は、簡易異常分析部２３０によって異常が検出された場合に、簡易異常分析部２３０によって検出された異常検出時間ｔ１を含む所定の時間範囲内に出力されたログをログ履歴記憶部１６２から読み出して詳細異常分析（第２の分析）を行い、異常の原因を示す情報を検出する。
【００４９】
具体的には、詳細異常分析部２４０は、ログ履歴記憶部１６２に記録された分析対象ログ１０から簡易異常分析部２３０によって検出された異常検出時間ｔ１の前後の第１の時間範囲（例えば異常検出時間ｔ１の前後１２時間）に該当するログおよびそのフォーマットをログ履歴記憶部１６２から取得する。そして、詳細異常分析部２４０は、取得されたログをフォーマットおよび変数値の組み合わせごとに分離して、フォーマットおよび変数値の組み合わせごとのログの出力数の分布Ｂ２を生成する。
【００５０】
例えば図８の例では、フォーマットおよび変数値の組み合わせα、β、γについて分布Ｂ２が生成されている。例えば、組み合わせαはフォーマットＩＤが「１」および変数値が「ＳＶ００２」の組み合わせであり、組み合わせβはフォーマットＩＤが「１」および変数値が「ＳＶ００３」の組み合わせであり、組み合わせγはフォーマットＩＤが「３」および変数値が「ＳＶ００３」の組み合わせである。これに限らず、フォーマットおよび変数値の任意の組み合わせについて分布Ｂ２が生成されてよい。分布Ｂ２は、フォーマットおよび変数値の全ての組み合わせについて生成されてよく、あるいは所定の条件を満たす（例えばサーバ名を示す変数値を含む）一部の組み合わせについて生成されてよい。
【００５１】
そして、詳細異常分析部２４０は、組み合わせごとの分布Ｂ２から、異常検出時間ｔ１の近傍で出力数が増加している組み合わせを異常の原因を示す情報として検出する。出力数が増加していることは、例えば異常検出時間ｔ１の前後の第１の時間範囲（例えば異常検出時間ｔ１の前後１２時間）の平均出力数に対する、異常検出時間ｔ１の前後の第２の時間範囲（例えば異常検出時間ｔ１の前後１時間）の平均出力数の増加数又は増加率が所定の閾値以上であることによって検出される。ここで第２の時間範囲は、第１の時間範囲より短く設定される。これにより、ログの定期的又は規則的な出力ではなく、異常の発生の近傍でのログの不定期又は不規則な出力を検出することができる。詳細異常分析のために、出力数に代えて、単位時間あたりの出力頻度を用いてもよい。また、日付および時刻を含む時間ごとの出力数又は出力頻度ではなく、複数の日付のログの出力数又は出力頻度を１日の中の時刻ごとに集計したログの周期を用いて詳細異常分析を行ってもよい。
【００５２】
通知制御部１５０は、簡易異常分析部２３０および詳細異常分析部２４０によって検出された異常を示す情報（例えば異常が検出された時間、該時間の前後のログ、および異常の原因を示す情報）を、ディスプレイ２０を用いて通知する制御を行う。通知制御部１５０による異常の通知は、ディスプレイ２０による表示に限らず、プリンタによる印刷、スピーカによる音声出力等、利用者に対して通知することが可能な任意の方法によって行われてよい。
【００５３】
本実施形態においても、第１の実施形態と同様に、簡易異常分析では、ログの出力（ここでは正常なモデルに合致しないログの出力）に基づいて異常を検出するため、計算コストが低い。一方、詳細異常分析では、ログの内容（ここではログのフォーマットおよびログに含まれる変数値の組み合わせ）の詳細な分析を行うため、異常の詳細な原因分析を行うことができるものの、簡易異常分析よりも計算コストが高い。そのため、本実施形態は、ログの出力に基づいて異常を検出する簡易異常分析を行った後に、簡易異常分析によって検出された異常の発生時間を含む所定の時間範囲内に出力されたログの内容に基づいて詳細異常分析を行う。すなわち、本実施形態では、簡易異常分析を行って詳細異常分析の対象とする分析範囲を絞り込むことによって、計算コストを低減しつつ詳細な異常の分析を行うことができる。また、簡易異常分析によって絞り込まれた分析範囲についてのみ詳細異常分析を行うため、簡易異常分析および詳細異常分析を独立して実行するよりも不要な異常の通知の数を低減することができる。さらに、フォーマットおよび変数の組み合わせごとに分離された分布を生成することによって検出を行うため、変数値単独の分布では埋もれていた分布の特徴に基づいて異常の原因を示す情報を検出することができる。
【００５４】
（第３の実施形態）
本実施形態は、第２の実施形態の詳細異常分析においてログの分布から異常の原因を示す情報を検出するための方法を提供する。本実施形態の方法は、第２の実施形態に係るログ分析システム２００において利用される。
【００５５】
図９および１０は、それぞれ本実施形態に係るログ分析方法の模式図である。図９および１０は異なる種類のグラフを用いているが、共通のログ分析方法を示す。図９の方法では、詳細異常分析部２４０は、フォーマットおよび変数値の組み合わせごとに、各時間（時刻）までに簡易異常分析部２３０によって判定された異常なログの数を合計した累積異常発生数のグラフＣ１を生成する。図１０の方法では、詳細異常分析部２４０は、フォーマットおよび変数値の組み合わせごとに、各時間（時刻）における簡易異常分析部２３０によって判定された異常なログの単位時間あたりの出現頻度である異常発生頻度のグラフＤ１を生成する。図９、１０には、正常時および異常時の累積異常発生数のグラフＣ１、Ｄ１とともに、各時間における異常なログの出力数の分布Ｃ２、Ｄ２が示されている。
【００５６】
図９、１０の上のグラフのように、正常時であっても、分布Ｃ２、Ｄ２に示す定期的又は規則的に出力される異常なログは、例えば単にモデルとして未登録のログであることが多く、異常の原因を示す情報として検出する重要性は低い。それに対して、図９、１０の下のグラフのように、異常時には分布Ｃ２、Ｄ２に不定期又は不規則な変化が起こる。このような異常なログの出力数の不定期又は不規則な変化は異常が発生していることを示していることが多いため、本実施形態に係る詳細異常分析部２４０は、異常なログの出力数の不定期又は不規則な変化に基づいて異常の原因を示す情報を検出する。
【００５７】
分布Ｃ２、Ｄ２における不定期又は不規則な変化を検出するために、本実施形態に係る詳細異常分析部２４０は、累積異常発生数のグラフＣ１又は異常発生頻度のグラフＤ１の変化点を検出する。累積異常発生数のグラフＣ１の変化点としては、グラフＣ１中の変曲点を用いる。図９の下のグラフのように、異常なログの出力数に不定期又は不規則な変化が発生すると、特定の時間ｔ４においてグラフＣ１の傾きが不連続に変化する。そのため、詳細異常分析部２４０は、フォーマットおよび変数値の組み合わせごとにグラフＣ１中で傾きの変化量が所定の閾値以上である変曲点を検出する。そして、詳細異常分析部２４０は、変曲点が存在するグラフＣ１のフォーマットおよび変数値の組み合わせを、異常の原因を示す情報として検出する。変曲点を検出するための閾値は、実験やシミュレーションによって適宜決定される。
【００５８】
異常発生頻度のグラフＤ１の変化点としては、グラフＤ１中の不連続点を用いる。図１０の下のグラフのように、異常なログの出力数に不定期又は不規則な変化が発生すると、特定の時間ｔ５においてグラフＤ１が不連続に変化する。そのため、詳細異常分析部２４０は、フォーマットおよび変数値の組み合わせごとにグラフＤ１中で変化量が所定の閾値以上である不連続点を検出する。そして、詳細異常分析部２４０は、不連続点が存在するグラフＤ１のフォーマットおよび変数値の組み合わせを、異常の原因を示す情報として検出する。不連続点を検出するための閾値は、実験やシミュレーションによって適宜決定される。
【００５９】
このように本実施形態に係る詳細異常分析部２４０は、累積異常発生数又は異常発生頻度のグラフの変化点を用いることによって、異常なログの数の分布そのものを直接分析するよりも、高精度に不定期又は不規則な変化を検出することができる。本実施形態は第２の実施形態と組み合わせているが、第１の実施形態と組み合わせてもよい。その場合には、詳細異常分析部２４０は、累積ログ出力数又はログ出力頻度のグラフの変化点を検出することによって異常の原因を示す情報を検出してよい。
【００６０】
（その他の実施形態）
図１１は、上述の各実施形態に係るログ分析システム１００、２００の概略構成図である。図１１には、ログ分析システム１００、２００が複数の分析を協調させてログの異常を段階的に分析する装置として機能するための構成例が示されている。ログ分析システム１００、２００は、ログの出力に基づいて異常を検出する第１の分析を行う簡易異常分析部１３０、２３０と、前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う詳細異常分析部１４０、２４０と、を備える。
【００６１】
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
【００６２】
上述の実施形態の機能を実現するように該実施形態の構成を動作させるプログラム（より具体的には、図６に示す処理をコンピュータに実行させるログ分析プログラム）を記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
【００６３】
該記録媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性メモリカード、ＲＯＭを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、ＯＳ上で動作して処理を実行するものも各実施形態の範疇に含まれる。
【００６４】
上述の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６５】
（付記１）
ログの出力に基づいて異常を検出する第１の分析を行う工程と、
前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う工程と、
を含むログ分析方法。
【００６６】
（付記２）
前記ログが、変化可能な変数部分と変化しない定数部分とを含む、予め決められた複数の形式のいずれに合致するか判定する工程をさらに含み、
前記第２の分析を行う工程は、前記ログに含まれる前記変数部分の値に基づいて前記異常を分析する、付記１に記載のログ分析方法。
【００６７】
（付記３）
前記第２の分析を行う工程は、前記ログに含まれる前記変数部分の値ごとに前記ログの分布を生成することによって前記異常を分析することを特徴とする、付記２に記載のログ分析方法。
【００６８】
（付記４）
前記第２の分析を行う工程は、前記ログの前記形式および前記ログに含まれる前記変数部分の値の組み合わせごとに前記ログの分布を生成することによって前記異常を分析することを特徴とする、付記２に記載のログ分析方法。
【００６９】
（付記５）
前記第１の分析を行う工程は、前記ログの出力数又は出力頻度の時系列変化に基づいて前記異常を検出することを特徴とする、付記１〜４のいずれか一項に記載のログ分析方法。
【００７０】
（付記６）
前記第１の分析を行う工程は、予め記録された前記形式および前記変数部分の値のいずれにも合致しない前記ログが出力された場合に、前記異常を検出することを特徴とする、付記２〜４のいずれか一項に記載のログ分析方法。
【００７１】
（付記７）
前記第２の分析を行う工程は、前記第１の分析を行う工程における予め記録された前記形式および前記変数部分の値のいずれにも合致しない前記ログの数又は頻度の時系列のグラフを生成し、前記グラフ中の変化点に基づいて前記異常を分析することを特徴とする、付記６に記載のログ分析方法。
【００７２】
（付記８）
コンピュータに、
ログの出力に基づいて異常を検出する第１の分析を行う工程と、
前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う工程と、
を実行させるログ分析プログラム。
【００７３】
（付記９）
ログの出力に基づいて異常を検出する第１の分析を行う簡易異常分析部と、
前記第１の分析によって検出された前記異常の発生時間を含む時間範囲内に出力された前記ログの内容に基づいて前記異常を分析する第２の分析を行う詳細異常分析部と、
を備えるログ分析システム。
【図１】
0006756379.tif 000002
【図２】
0006756379.tif 000003
【図３】
0006756379.tif 000004
【図４】
0006756379.tif 000005
【図５】
0006756379.tif 000006
【図６】
0006756379.tif 000007
【図７】
0006756379.tif 000008
【図８】
0006756379.tif 000009
【図９】
0006756379.tif 000010
【図１０】
0006756379.tif 000011
【図１１】
0006756379.tif 000012