以下、図面を参照して、実施形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
<第1の実施形態>
以下、第1の実施形態について、図面を参照して詳細に説明する。
図1は、第1の実施形態に係るログ分析システム100の構成を示すブロック図である。図1において、各ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、図1に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記録媒体等、任意の手段を介して行われてよい。
図1を参照すると、本実施形態におけるログ分析システム100は、処理部として、入力部110、形式判定部120、異常分析部130、性能情報取得部140、原因情報取得部150、及び情報出力部160を備える。また、ログ分析システム100は、記憶部として、形式記憶部171、モデル記憶部172、及び状態記憶部173を備える。
入力部110は、分析対象のログである分析対象ログ10を取得する。分析対象ログ10は、ログ分析システム100の外部から取得されてよい。また、分析対象ログ10は、ログ分析システム100の内部に予め記録されたものを読み出すことにより取得されてよい。分析対象ログ10は、1つ以上の装置又はプログラムから出力される1つ以上のログを含む。分析対象ログ10は、任意のデータ形式(ファイル形式)で表されたログであり、例えばバイナリデータ又はテキストデータである。また、分析対象ログ10は、データベースのテーブルとして記録されてよい。また、分析対象ログ10は、テキストファイルとして記録されてよい。
図4は、第1の実施形態に係る分析対象ログ10の例を示す図である。本実施形態における分析対象ログ10は、装置又はプログラムから出力される1つのログを1単位とし、1つ以上の任意の数のログを含む。1つのログは1行の文字列でよい。また、1つのログは複数行の文字列でよい。すなわち、分析対象ログ10は、分析対象ログ10に含まれるログの総体を指し、ログは分析対象ログ10から抜き出された1つのログを指す。分析対象ログ10が含む1つのログは、例えば、「2015/08/17 08:29:37 [SV008] JNW3258が開始しました。」である。
また、各ログは、タイムスタンプ及びメッセージ等を含む。ログ分析システム100は、特定の種類のログに限らず、広範な種類のログを分析対象とすることができる。例えば、syslog、イベントログ等のオペレーティングシステムやアプリケーションから出力されるメッセージを記録するログを分析対象ログ10として用いることができる。
形式判定部120は、分析対象ログ10に含まれる各ログに対して、形式記憶部171に予め記録されているいずれの形式(フォーマット)に適合するかを判定し、判定結果を異常分析部130に送る。具体的には、形式判定部120は、分析対象ログ10に含まれる各ログを形式ごとに分類し、形式毎に分類した各ログを異常分析部130に送る。また、形式判定部120は、判定により適合する形式を用いて各ログを変数部分と定数部分とに分離する。
形式とは、既知のログの形式であってよい。また、形式は、ログの特性に基づいて予め決められた、ログの形式であってもよい。ログの特性には、例えば、互いに類似するログ間で変化しやすい又は変化しづらいという性質、あるいは、ログ中で変化しやすい部分とみなせる文字列が記載されているという性質が含まれる。
形式の変数部分は、形式の中で変化可能な部分であり、定数部分とはログの形式の中で変化しない部分である。送られたログ中の変数部分の値(数値、文字列及びその他のデータを含む)を変数値と呼ぶ。変数部分及び定数部分は、形式毎に異なる。そのため、ある形式では変数部分として定義される部分が、別の形式では定数部分として定義されることや、その逆があり得る。
図5は、第1の実施形態に係る形式情報の例を示す図である。形式情報は、図1の形式記憶部171に記録される。形式情報は、形式と形式の識別子である形式ID(Identification)を含む。形式は、一意のIDに関連付けられた形式を表す文字列を含む。形式は、ログ中の変化可能な部分に所定の識別子を記載することによって変数部分として規定し、ログ中の変数部分以外の部分を定数部分として規定する。変数部分の識別子として、例えば「<変数:タイムスタンプ>」はタイムスタンプを表す変数部分を示し、「<変数:文字列>」は任意の文字列を表す変数部分を示す。変数部分の識別子として、例えば、「<変数:数値>」は任意の数値を表す変数部分を示し、「<変数:IP>」は任意のIP(Internet Protocol)アドレスを表す変数部分を示す。変数部分の識別子はこれらに限られず、正規表現や、取り得る値のリスト等の任意の方法により定義されてよい。また、形式は変数部分を含まずに定数部分によって構成されてよく、あるいは定数部分を含まずに変数部分によって構成されてよい。例えば、形式は変数部分を含まずに定数部分のみで構成されてよく、あるいは、定数部分を含まずに変数部分のみで構成されてもよい。
例えば、形式判定部120は、図4の1行目のログである「2015/08/17 08:29:37 [SV008] JNW3258が開始しました。」を、図5のIDが「039」である形式に適合すると判定する。そして、形式判定部120は、判定された形式に基づいて該ログを処理し、タイムスタンプである「2015/08/17 08:29:37」、文字列である「SV008」及び数値である「3258」を変数値として決定する。
図5において、形式は視認性のために文字列のリストで表されているが、任意のデータ形式(ファイル形式)で表されてよく、例えばバイナリデータ又はテキストデータでもよい。また、形式はテキストファイルとして形式記憶部171に記録されてもよい。また、形式はデータベースのテーブルとして形式記憶部171に記録されてよい。
図6は、第1の実施形態に係る形式判定結果の例を示す図である。形式判定結果は、形式判定部120により、形式記憶部171に記録された形式ごとに分類された、分析対象ログ10に含まれる各ログである。図6が示す形式判定結果は、各ログと形式IDとを含む。図6が示す形式判定結果は、形式IDに関連付けられたログである。
形式判定結果は、例えば、「ログ」が「2015/08/17 08:29:37 [SV008] JNW3258が開始しました。」、「形式ID」が「039」、である。
すなわち、形式判定部120は、変数部分及び定数部分の構成により定められる複数の形式のうち、システムの構成要素から出力されるログがいずれの形式であるかを判定する。
異常分析部130は、形式判定部120により判定されたログ中の変数値に対して、モデル記憶部172に予め記録されているモデルに基づいて異常か否かを判定する。モデルとは、ログの正常な振る舞いの定義である。モデル記憶部172には、1つ以上のモデルが予め記録されている。モデルは、例えば、ある形式において数値の変数値が所定の範囲内であること、ある形式において文字列の変数値が登録済のものであることである。モデルはこれに限られず、任意の定義でよい。すなわち、異常分析部130は、判定された形式の変数部分の値に基づいて、ログが異常であるか否かを分析する。
異常分析部130は、送られたログがモデル記憶部172中のいずれのモデルにも適合しない場合、該ログは異常であると判定し、異常ログとして次の性能情報取得部140に送る。一方、異常分析部130は、送られたログがモデル記憶部172中のいずれかのモデルに適合する場合、該ログは正常ログであると判定し、性能情報取得部140には送らない。
性能情報取得部140は、異常分析部130から送られた異常ログに基づいて、その出力元であるシステムに含まれる構成要素の性能情報20を取得し、性能情報20を原因情報取得部150に送る。構成要素は、例えば、サーバ等の物理装置、仮想マシン等の仮想装置、各種プログラムである。性能情報20とは、構成要素に関する情報であり、構成要素の稼働中のシステムの処理状態である稼働状態を含む情報である。また、性能情報20は、構成要素名又は構成要素のリソース等を含んでもよい。性能情報20は、例えば、CPU(Central Processing Unit)使用率、物理メモリ使用率、プロセス情報、パケット数又は死活監視の情報である。性能情報20は、ログ分析システム100の外部から取得されてよい。すなわち、性能情報取得部140は、異常であると分析されたログを出力したシステムの構成要素の稼働状態を取得する。なお、性能情報取得部は、稼働状態取得部とも記される。
性能情報取得部140は、例えば、異常ログの出力元のシステムから性能情報20を直接取得してよい。また、性能情報取得部140は、例えば、異常ログの出力元のシステムを監視する監視システムから性能情報20を取得してよい。また、性能情報20は、性能情報取得部140や監視システム等により一定期間取得されてよい。そして、一定期間取得された性能情報20は、ログ分析システム100内部に記憶されてよい。性能情報取得部140は、ログ分析システム100の内部に記憶された一定期間の性能情報20を読み出すことにより、取得してよい。
原因情報取得部150は、性能情報取得部140により取得された性能情報20と状態記憶部173に予め記録されている状態情報を用いて、異常ログの出力元のシステムの構成要素の異常の原因に関する情報である原因情報を取得する。原因情報は、例えば、異常ログの出力元のシステムの構成要素の異常の原因を示す情報(異常原因)や異常ログの出力元のシステムにおいて異常が発生している構成要素の情報(異常原因に対応する構成要素)を含む。例えば、原因情報の一例は、ログを出力したシステムの構成要素の稼働状態に応じた異常原因である。具体的には、原因情報取得部150は、性能情報取得部140によって取得された1以上の性能情報20を状態記憶部173に予め記録されている状態情報に基づき、いずれの状態に該当するかを判定し、状態の判定結果を情報出力部160に送る。
状態情報は、性能情報20に基づいて異常の原因を定義する情報である。
図7は、状態記憶部173に記録される状態情報の例を示す図である。図7の(a)に示す状態情報は、性能異常種別、異常原因、及び閾値のリストを含む。性能異常種別は、閾値に対する性能情報20の状態を示す。異常原因は、性能情報20に対応する異常ログの出力元のシステムの状態を示す。閾値は、性能情報20から異常原因を判定するための判定値である。例えば、図7の(a)に示す状態情報の一例は、「性能異常種別」が「閾値未満」、「異常原因」が「稼働停止」、「閾値」が「CPU使用率1%」である。
ここで、例えば、性能情報取得部140により取得された異常ログの出力元のシステムの性能情報20における稼働状態の「CPU使用率」が「0%」であるとする。この場合、性能情報20における稼働状態の「CPU使用率」は1%未満であるため、稼働状態は、図7の(a)に示した状態情報のうち、「閾値」が「CPU使用率1%」であり「性能異常種別」が「閾値未満」の状態情報に対応する。したがって、原因情報取得部150は、図7の(a)に示した「異常原因」である「稼働停止」を原因情報として情報出力部160に送る。すなわち、原因情報取得部150は、取得された稼働状態に応じた異常原因を取得する。原因情報取得部は、異常原因取得部とも記される。
また、状態情報の他の例として、図7の(b)に示す状態情報は、形式IDと異常原因と閾値を含む。図7の(b)が示す状態情報は、形式記憶部171に記録された形式IDに関連付けられた、異常原因及び閾値を含む。図7の(b)に示す状態情報は、例えば、「形式ID」が「039」、「異常原因」が「稼働停止」、「閾値」が「CPU使用率0%」である。
本実施形態に係るログ分析システム100が図7の(b)に示す状態情報を用いる場合、性能情報取得部140は、異常分析部130から入力された異常ログの形式IDを取得する。すなわち、性能情報取得部140は、異常であると分析されたログの形式を取得する。原因情報取得部150は、性能情報取得部140により取得された異常ログの出力元のシステムの性能情報20、異常ログの形式ID及び図7の(b)に示す形式IDごとの状態情報の閾値を用いて、形式IDごとの異常ログの出力元のシステムの異常原因を取得する。すなわち、原因情報取得部150は、取得された性能情報20に含まれる稼働状態とログの形式と異常ログの形式ごとの閾値と性能情報20とに応じて形式ごとの原因情報を取得する。情報出力部160は、原因情報取得部150により取得された形式IDごとの異常ログの出力元のシステムの異常原因と該異常原因に対応する構成要素とを出力する。すなわち、情報出力部160は、形式ごとの原因情報を出力する。
これにより、図7の(b)の状態情報を用いるログ分析システム100は、形式の特性ごとの異常原因を取得及び出力するため、異常原因をより正確に取得できる。また、本実施形態のログ分析システム100は、形式IDごとに異常原因を取得するため、処理が早くなる。
図7が示す状態情報の閾値は1種類の判定値であるが、これに限定されず複数種類の判定値でもよい。また、図7の(a)と図7の(b)に示す状態情報の閾値は期間に関連付けられた判定値でよい。期間に関連付けられた判定値である閾値は、例えば、判定値が所定の期間継続しているかどうかを判定するために使用される。期間に関連付けられた判定値である閾値は、例えば、「CPU使用率0% 3秒間」である。原因情報取得部150は、性能情報20と、状態情報の形式ID及び閾値とを用いることで、異常ログの出力元のシステムの異常原因の取得を簡易にできる。その理由としては、形式(例えば、形式ID)ごとに閾値が定まっているため、原因情報取得部150は、異常分析部130によって取得された異常ログの形式IDに対応する閾値で異常原因を取得するからである。この閾値を用いることにより、本実施形態のログ分析システム100は、異常原因をより正確に取得可能となる。
また、図7において、状態情報は視認性のために文字列として表されているが、任意のデータ形式(ファイル形式)で表されてよく、例えばバイナリデータ又はテキストデータでよい。状態情報はここに示した具体的な定義に限られず、任意の方法により定義されてよい。また、状態情報は複数のファイル又はテーブルに別れて記録されてもよい。
情報出力部160は、原因情報取得部150により取得された原因情報(状態の判定結果)の出力を行う。すなわち、情報出力部160は、取得された異常原因と該異常原因に対応する構成要素を出力する。本実施形態において、情報出力部160は表示装置30に原因情報を出力し、表示装置30はユーザに向けて原因情報を画像として表示する。表示装置30は、画像を表示するための液晶ディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等の表示部を備える。
図8は、表示装置30を用いる原因情報の表示画面の例を示す図である。図8が示す画面Aは、異常ログの出力元のシステムにおける異常箇所(異常原因に対応する構成要素)と、原因情報取得部150により取得された異常原因とを表示する。図8が示す画面Aは、例えば、「異常箇所」が「SV008」、「異常原因」は「稼働停止」である。すなわち、図8が示す画面Aは、異常ログの出力元のシステム名と、当該システムの異常原因を対応付けて表示している。
図8が示す画面は一例であり、原因情報取得部150により取得された原因情報をユーザに対して視認可能に表示できれば、いずれの表示方法を用いてもよい。また、ログ分析システム100(情報出力部160)による情報の出力方法は、ユーザに向けた画像表示に限られない。例えば、情報出力部160は出力すべき情報をデータとして出力し、ログ分析システム100は情報出力部160からのデータに対して記録処理、印刷処理、分析処理、統計処理等を行う手段を備えてもよい。また、当該記録処理等は、ログ分析システム100の外部装置(図示せず)に実行させてもよい。
図8の画面を参照することによって、ユーザは分析対象ログ10中の各ログから取得された異常ログの出力元であるシステムの異常の原因を知ることができる。
図2は、本実施形態に係るログ分析システム100の機器構成を示すブロック図である。ログ分析システム100は、CPU101と、通信インターフェース102と、記憶装置103と、メモリ104とを備える。ログ分析システム100は、表示装置30に通信インターフェース102を介して接続されてよい。また、ログ分析システム100は、表示装置30を含んでよい。ログ分析システム100は独立した装置でよい。また、ログ分析システム100は、他の装置と一体に構成されてよい。
通信インターフェース102は、データの送受信を行う通信部であり、有線通信及び無線通信の少なくとも一方の通信方式を実行可能に構成される。通信インターフェース102は、該通信方式に必要なプロセッサ、電気回路、アンテナ、接続端子等を含む。通信インターフェース102は、CPU101からの信号に従って、該通信方式を用いてネットワークに接続され、通信を行う。通信インターフェース102は、例えば分析対象ログ10を外部から受信する。
記憶装置103は、ログ分析システム100が実行するプログラムや、プログラムによる処理結果のデータ等を記憶する。記憶装置103は、読み取り専用のROM(Read Only Memory)や、読み書き可能のハードディスクドライブ又はフラッシュメモリ等を含む。また、記憶装置103は、CD(compact disc)−ROM等のコンピュータ読取可能な可搬記録媒体を含んでもよい。メモリ104は、CPU101が処理中のデータや記憶装置103から読み出されたプログラム及びデータを一時的に記憶するRAM(Random Access Memory)等を含む。
CPU101は、処理に用いる一時的なデータをメモリ104に一時的に記録し、記憶装置103に記録されたプログラムを読み出し、該プログラムに従って該一時的なデータに対して種々の演算、制御、判別等の処理動作を実行する処理部としてのプロセッサである。また、CPU101は、記憶装置103に処理結果のデータを記録し、また通信インターフェース102を介して処理結果のデータを外部に送信する。
本実施形態においてCPU101は、記憶装置103に記録されたプログラムを実行することによって、図1の入力部110、形式判定部120、異常分析部130、性能情報取得部140、原因情報取得部150及び情報出力部160として機能する。また、本実施形態において記憶装置103は、図1の形式記憶部171、モデル記憶部172及び状態記憶部173として機能する。
ログ分析システム100は、図2に示す具体的な構成に限定されない。ログ分析システム100は、1つの装置に限られず、2つ以上の物理的に分離した装置が有線又は無線で接続されることにより構成されていてもよい。ログ分析システム100に含まれる各部は、それぞれ電気回路構成により実現されていてもよい。ここで、電気回路構成とは、単一のデバイス、複数のデバイス、チップセット又はクラウドを概念的に含む文言である。
また、ログ分析システム100の少なくとも一部がSaaS(Software as a Service)形式で提供されてよい。すなわち、ログ分析システム100を実現するための機能の少なくとも一部が、ネットワーク経由で実行されるソフトウェアによって実行されてよい。
図3を用いて、本実施形態の動作について説明する。図3は、第1の実施形態に係るログ分析システム100の動作例を示すフローチャートである。
入力部110は、分析対象ログ10を取得する(ステップS101)。形式判定部120は、ステップS101で入力された分析対象ログ10に含まれる各ログを判定対象として、形式記憶部171に記録されたいずれかの形式に適合するか否かを判定する(ステップS102)。
ステップS102において判定対象のログが形式記憶部171に記録されたいずれの形式にも適合しない場合には(ステップS103のNO)、ステップS105へ進む。
ステップS102において判定対象のログが形式記憶部171に記録されたいずれかの形式に適合した場合には(ステップS103のYES)、形式判定部120は、該形式を用いて判定対象のログを変数部分と定数部分とに分離し、判定対象のログ中の変数値を記録する(ステップS104)。また、形式判定部120は、分析対象ログ10に含まれる各ログを形式ごとに分類する。
異常分析部130は、ステップS104において取得された変数値に基づいて、判定対象のログがモデル記憶部172に記録されたいずれかのモデルに適合するか否かを判定する(ステップS105)。異常分析部130は、判定対象のログがモデル記憶部172に記録されたいずれのモデルにも適合しない場合には、判定対象のログは異常ログであると判定する。一方、異常分析部130は、判定対象のログがモデル記憶部172に記録されたいずれかのモデルに適合する場合には、判定対象のログは正常ログであると判定する。
また、異常分析部130は、ステップS103でNOの場合、形式に適合しないログを未知の形式を持つ異常ログ(未知ログ)であると判定する。
分析対象ログ10中の全てのログに対して分析が終了していない場合には(ステップS106のNO)、分析対象ログ10の次の1つのログを判定対象としてステップS102〜S106を繰り返す。
分析対象ログ10中の全てのログに対して分析が終了した場合には(ステップS106のYES)、分析対象ログ10において、異常分析部130により判定された異常ログの出力元であるシステムの性能情報20を取得する(ステップS107)。
原因情報取得部150は、ステップS107において取得された性能情報20に基づき、異常ログの出力元のシステムの原因情報である原因情報を取得する(ステップS108)。情報出力部160は、ステップS108で取得された原因情報を表示装置30に出力し(ステップS109)、ユーザに向けて表示させる。
以上のように、本実施形態に係るログ分析システム100は、分析対象ログ10中の各ログから異常ログを分析し、該異常ログの出力元であるシステムの性能情報20に基づいて原因情報を取得し、該原因情報を出力する。ログ分析システム100は、分析対象ログ10を出力するシステムに異常が発生すると、該システムの異常の原因を表示できる。これにより、ユーザに異常ログに関する異常の原因を提示できる。
なお、モデル記憶部172に予め記録されているモデル(以降、「異常判定の基準」と記載)は、設定された時期から時間が経過したり、システムを構成する機器が変更されたりすると、実態に合わなくなることがある。そのため、ログ分析システム100は、過去に蓄積したログに基づいて異常判定の基準を変更してよい。例えば、ログ分析システム100は、所定の期間内に蓄積したログにおける各形式の出現比率の平均値を変更後の異常判定の基準として用いてよい。あるいは、ログ分析システム100は、ユーザから入力された値を変更後の異常判定の基準として用いてよい。異常判定の基準の更新タイミングとして、ログ分析システム100は、例えば異常判定の基準が前回設定された日から所定の時間が経過した場合に、変更後の異常判定の基準を設定してよい。また、ログ分析システム100は、分析対象ログ10を出力するシステムを構成する機器がリプレースされる際等に機器の変更を検知した場合に、変更後の異常判定の基準を設定してもよい。また、ログ分析システム100は、ユーザの指示を契機として、変更後の異常判定の基準を設定してもよい。
<第2の実施形態>
以下、第2の実施形態について、図面を参照して詳細に説明する。
第1の実施形態におけるログ分析システム100は異常ログの出力元のシステムの性能情報20に基づいて状態を判定するが、本実施形態におけるログ分析システム200は性能情報20に加えて、異常ログの出力元のシステムの接続情報40に基づいて状態の判定を行う。
図9は、本実施形態に係るログ分析システム200の構成を示すブロック図である。本実施形態におけるログ分析システム200は、処理部として、入力部110、形式判定部120、異常分析部130、性能情報取得部240、原因情報取得部150、及び情報出力部160を備える。また、ログ分析システム200は、記憶部として、形式記憶部171、モデル記憶部172、及び状態記憶部173を備える。すなわち、本実施形態に係るログ分析システム200は、第1の実施形態に係るログ分析システム100における性能情報取得部140の代わりに、性能情報取得部240を備える。
性能情報取得部240は、異常分析部130から入力された異常ログの出力元であるシステムの性能情報20に加えて、該システムの接続情報40を取得し、性能情報20及び接続情報40を原因情報取得部150に送る。すなわち、性能情報取得部240は、システムの性能情報20とシステムの各構成要素の関係性を示す接続情報40を取得する。接続情報40は、分析対象ログ10を出力するシステムの構成要素間の依存関係を示す情報である。性能情報取得部は、稼働状態取得部とも記される。
接続情報40は、例えば、システムの構成要素間のネットワークによる接続関係、仮想装置やプログラムの主従関係である。また、接続情報40は、ログ分析システム200の外部から取得されてよい。接続情報40は、ログ分析システム200の内部に予め記録されたものを読み出すことにより取得されてよい。
また、性能情報取得部240は、異常ログの出力元であるシステムの性能情報20と接続情報40を取得する際に、例えば、該異常ログの内容に基づき取得してもよい。具体的には、第1の実施形態の図4が示す「2015/08/17 08:32:30 [SV004] SV003へのリクエストがタイムアウトしました」というログの場合、性能情報取得部240は、SV004だけでなく、SV003の性能情報20及び接続情報40を取得してもよい。また、性能情報取得部240は、異常ログの出力元であるシステムの性能情報20と接続情報40を取得する際に、例えば、該システム(構成要素)に接続されている構成要素の性能情報20を取得してもよい。具体的には、本実施形態の図10が示すように、性能情報取得部240は、例えば、異常ログの出力元であるシステム(例えば、Server008)の接続関係にある構成要素(例えば、Server005)の性能情報20、あるいは、接続関係にある全ての構成要素(例えば、Server001からServer007)の性能情報20を取得してもよい。
原因情報取得部150は、性能情報取得部240により取得された性能情報20及び接続情報40を用いて、異常ログの出力元のシステムの原因情報である原因情報と該原因情報に関連付けられた接続情報を取得する。すなわち、原因情報取得部150は、取得された性能情報20に含まれる稼働状態と接続情報40とに応じて原因情報と該原因情報に関連付けられた接続情報を取得する。具体的には、原因情報取得部150は、性能情報取得部240によって取得された1以上の性能情報20及び接続情報40を状態記憶部173に予め記録されている状態情報に基づき、いずれの状態に該当するかを判定し、状態の判定結果を情報出力部160に入力する。ここで、状態の判定結果は、異常箇所と異常箇所の原因を含む原因情報に加えて、接続情報40を含む。
また、原因情報取得部150は、例えば、性能情報取得部240が該異常ログの内容に基づき取得した性能情報20及び接続情報40を用いて、原因情報と該原因情報に関連付けられた接続情報を取得してもよい。また、原因情報取得部150は、例えば、性能情報取得部240により取得された、異常ログの出力元であるシステム(構成要素)に接続されている構成要素の性能情報20及び接続情報40を用いて、原因情報と該原因情報に関連付けられた接続情報を取得してもよい。これにより、ユーザは、異常ログの出力元であるシステム(異常箇所)の異常原因を確認できるだけでなく、異常箇所に関連する構成要素の状態も確認できる。
図10は、第2の実施形態における原因情報及び接続情報40の表示画面の例を示す図である。図10が示す表示装置30の画面Bは、原因情報取得部150により取得された原因情報B1と、原因情報取得部150により取得された原因情報に関連付けられた接続情報を表す構成表示B2を表示する。構成表示B2は、例えば、性能情報取得部240により取得された性能情報20及び接続情報40に基づいて、各構成要素及びそれらの間の関係を示す。
具体的には、構成表示B2は、各構成要素を示す記号(ここでは丸)と、構成要素間を接続する線で示され、例えば、「Server001」と「Server002」が接続されていることを表している。構成要素を示す記号の近傍には、該構成要素を示す文字列(構成要素名)が表示される。また、構成表示B2上には、異常箇所が二重丸B3で強調される。これにより、ユーザは異常のある構成要素を容易に知ることができる。
図10が示す原因情報B1は、例えば、形式ID,異常箇所及び原因のリストを含む。
図10が示す原因情報B1、例えば、「形式ID」が「039」、「異常箇所」が「SV008」、「異常原因」は「稼働停止」である。
異常箇所を強調するために、異常箇所を示す記号又は文字列の種類、色、大きさ等を変化させてもよい。あるいは、異常箇所を点滅させてもよい。原因情報B1と構成表示B2との関係を明示するために、原因情報B1中の異常箇所の文字列の色と、構成表示B2中の異常箇所の文字列の色とを同一にしてもよい。
図11は、図10が示した表示画面にさらに性能情報20を表示する表示画面の例を示す図である。図11が示す画面Bは、図10に示した画面Bに加えて、構成要素の性能情報20を表す性能情報B4を表示してもよい。例えば、図11が示す性能情報B4はSV008の性能情報20(例えば、「CPU使用率」が「30%」、「物理メモリ」が「70%」)である。
図11に示した性能情報B4は、ユーザが構成表示B2上の二重丸B3に対して外部からの操作(例えば、マウス、タッチパネル等の入力装置を用いた操作)を行うことによって表示される。すなわち、情報出力部160は、外部からの入力操作に応じて、取得された性能情報20を出力する。
なお、図8に示した画面Aにおいても、同様の処理が行われてもよい。例えば、ユーザが構成表示A上のSV008に対して外部からの操作を行うことによって、画面Aは、SV008の性能情報20を表示する。
ログ分析システム200(情報出力部160)は、ユーザの操作により選択された原因情報又は構成表示(接続情報40)を表示装置30上で画像表示するだけでなく、原因情報又は構成表示を記録、印刷等の任意の方法によって出力してもよい。
本実施形態に係るログ分析システム200は、異常ログの出力元であるシステムの接続情報40を備えるため、性能情報20と接続情報40に基づいて原因情報と該原因情報に関連付けられた接続情報を取得し、該原因情報と該原因情報に関連付けられた接続情報を出力できる。本実施形態によれば、異常ログの出力元のシステムの異常箇所と該異常箇所の原因を提示でき、構成要素間の関係性及び異常箇所を視認可能な状態でユーザに提供できる。
このように、本実施形態においては、第1の実施形態における状態の判定に代えて、形式の出現比率に基づいて各時間区間における異常の発生を判定し、出力する。本実施形態によれば、直接的に異常の発生を示す情報をユーザに提供することができる。
<第3の実施形態>
以下、第3の実施形態について、図面を参照して詳細に説明する。
第2の実施形態におけるログ分析システム200は異常ログの出力元のシステムの性能情報20及び接続情報40に基づいて状態を判定するが、本実施形態におけるログ分析システム300は性能情報20及び接続情報40とユーザが対応すべき順位を示す優先順位を含む状態情報に基づいて状態の判定を行う。
図12は、本実施形態に係るログ分析システム300の構成を示すブロック図である。本実施形態におけるログ分析システム300は、処理部として、入力部110、形式判定部120、異常分析部130、性能情報取得部240、原因情報取得部150、及び情報出力部160を備える。また、ログ分析システム300は、記憶部として、形式記憶部171、モデル記憶部172、及び状態記憶部373を備える。すなわち、本実施形態に係るログ分析システム300は、第2の実施形態に係るログ分析システム200における状態記憶部173の代わりに、状態記憶部373を備える。
図13は、状態記憶部373に記録される状態情報の例を示す図である。図13が示す状態情報は、優先順位、異常原因、及び閾値のリストを含む。
図13が示す状態情報は、例えば、「優先順位」が「1」、「異常原因」が「稼働停止」、「閾値」が「CPU使用率0%」である。原因情報取得部150は、性能情報取得部240により取得された異常ログの出力元のシステムの性能情報20及び接続情報40と、図13が示す状態情報の優先順位、異常原因及び閾値とを用いることで、異常ログの出力元のシステムの異常原因と該異常原因への優先順位を取得できる。具体的には、原因情報取得部150は、性能情報取得部240によって取得された1以上の性能情報20及び接続情報40を状態記憶部373に予め記録されている、優先順位を含む状態情報に基づき、いずれの状態に該当するかを判定し、状態の判定結果を情報出力部160に送る。すなわち、原因情報取得部150は、取得された性能情報20が示す稼働状態に応じて、稼働状態ごとに重み付けされた、原因情報を取得する。情報出力部160は、取得された稼働状態ごとに重み付けされた、原因情報を表示装置30に出力する。また、ユーザはログ分析システム300を用いることで、異常ログの出力元のシステムの異常箇所、該異常箇所の原因及び優先順位を確認でき、重大な異常から優先的に対応することができる。
図13において、状態情報は視認性のために文字列及び数値のリストで表されているが、任意のデータ形式(ファイル形式)で表されてよく、例えばバイナリデータ又はテキストデータでよい。
図14は、表示装置30が原因情報及び接続情報40の表示画面の例を示す図である。
図14が示す画面Cは、原因情報取得部150により取得された優先順位を含む原因情報(状態の判定結果)C1を表示する。図14が示す原因情報C1は、例えば、形式ID,優先順位、異常箇所及び原因のリストを含む。原因情報C1は、例えば、優先順位の高いものから順に表示されてよい。これにより、原因情報C1の中で最上位の異常箇所である「SV008」が、優先度の高い(重大な)異常であることを示すことができる。上位の異常箇所や原因を強調するために、変数値の文字種、色、大きさ等を変化させてもよい。
また、図14が示す画面Cは、性能情報取得部240により取得された性能情報20及び接続情報40に基づいて、各構成要素及びそれらの間の関係を示す構成表示C2を表示する。構成表示C2には、各構成要素を示す記号(ここでは丸)と、構成要素間を接続する線とが示される。構成要素を示す記号の近傍には、該構成要素を示す文字列(構成要素名)が表示される。構成表示C2上には、優先順位の高い構成要素(異常箇所)が三重丸C3で強調され、その他の異常箇所が二重丸C4で強調される。これにより、ユーザは重大な異常のある構成要素を容易に知ることができる。上位の異常箇所を強調するために、異常箇所を示す記号又は文字列の種類、色、大きさ等を変化させてもよい。あるいは、上位の異常箇所を点滅させてもよい。原因情報C1と構成表示C2との関係を明示するために、原因情報C1中の異常箇所の文字列の色と、構成表示C2中の異常箇所の文字列の色とを同一にしてもよい。
本実施形態に係るログ分析システム300は、優先順位を含む状態情報を備えるため、優先順位を含む状態情報に基づいて優先順位を含む原因情報を取得し、該原因情報を出力できる。本実施形態によれば、異常ログの出力元のシステムの異常箇所と該異常箇所の原因を提示でき、重大な異常から優先的に対応するための優先順位をユーザに提供できる。
<第4の実施形態>
以下、第4の実施形態について、図面を参照して詳細に説明する。
本実施形態では形式、モデル及び状態を学習するための学習部を備える。図15は、第4の実施形態に係るログ分析システム400のブロック図である。ログ分析システム400は、図1の構成に加えて、形式学習部481、モデル学習部482及び状態学習部483を備える。
形式学習部481は、形式判定部120が形式の判定を行う際、判定対象のログが形式記憶部171に記録されているいずれの形式にも適合しない場合に、新たな形式を作成して形式記憶部171に記録する。
形式学習部481が形式を学習するための第1の方法として、形式学習部481は、形式が未知である複数のログを蓄積し、それらに対して統計的に変化する変数部分と変化しない定数部分とを分離することによって、新たな形式として定義することができる。形式学習部481が形式を学習するための第2の方法として、形式学習部481は、既知の変数値のリストを読み込み、形式が未知であるログの中で既知の変数値と一致する又は類似する部分を変数部分と判定し、それ以外の部分を定数部分と判定することによって、新たな形式を定義することができる。既知の変数値として、値そのものを用いてよく、あるいは正規表現のようなパターンを用いてよい。形式の学習方法はこれらに限られず、入力されたログに対して新たな形式を定義することが可能な任意の学習アルゴリズムを用いてよい。
モデル学習部482は、異常分析部130がモデルの判定を行う際、判定対象のログがモデル記憶部172に記録されているいずれのモデルにも適合しない場合に、新たなモデルを作成してモデル記憶部172に記録する。
通常、異常分析部130はモデル記憶部172に予め記録されているいずれのモデルにも適合しないログを異常ログと判定するが、モデルが未知であるログであっても正常ログである場合がある。この場合に、ユーザは入力装置を介してモデル記憶部172のモデルに適合しないログが正常ログであるという指示を入力すると、モデル学習部482は当該ログの形式及び変数値に基づいて新たなモデルを作成し、モデル記憶部172に記録する。モデルの学習方法はこれに限られず、入力されたログから新たにモデルを定義することが可能な任意の学習アルゴリズムを用いてよい。
状態学習部483は、原因情報取得部150が状態の判定を行う際、判定対象の性能情報20が状態記憶部173に記録されているいずれの状態にも該当(類似)しない場合に、該性能情報20に係る情報を新たな状態として状態記憶部173に記録する。具体的には、状態学習部483は、新たに生成した異常原因及び閾値を状態記憶部173に記録する。異常原因及び閾値は、所定の規則(日時等)に基づいて自動的に生成されてもよく、あるいはキーボード等の入力装置を介してユーザによる入力を受け付けてもよい。
また、状態学習部483は、異常原因及び閾値に加えて、性能異常種別や形式ID等も関連付けて状態記憶部173に記録してよい。
本実施形態に係るログ分析システム400は、形式、モデル及び状態を学習するための学習部を備えるため、未知の形式、モデル又は状態のログから新たに形式、モデル又は状態を生成し、記録することができる。
<その他の実施形態>
図16は、上述の第1−第4の実施形態に係るログ分析システムの概略構成を示すブロック図である。図16には、ログ分析システム500が異常ログを出力したシステムの異常原因と該異常原因に対応する構成要素の出力を行う装置として機能するための構成例が示されている。ログ分析システム500は、変数部分及び定数部分の構成により定められる複数の形式のうち、システムの構成要素から出力されるログがいずれの形式であるかを判定する形式判定部120と、判定された形式の変数部分の値に基づいて、ログが異常であるか否かを分析する異常分析部130と、異常であると分析されたログを出力したシステムの構成要素の稼働状態を取得する性能情報取得部540と、取得された稼働状態に応じた異常原因を取得する原因情報取得部150と、取得された原因情報を出力する情報出力部160を備える。性能情報取得部540は、性能情報取得部140又は性能情報取得部240と同様の機能を有する。また、性能情報取得部は、異常原因取得部とも記され、原因情報取得部は、異常原因取得部とも記される。
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
上述の実施形態の機能を実現するように該実施形態の構成を動作させるプログラム(より具体的には、図3に示す処理をコンピュータに実行させるプログラム)を記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
該記録媒体としては例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、OS(Operating system)上で動作して処理を実行するものも各実施形態の範疇に含まれる。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2015年12月25日に出願された日本出願特願2015−254540を基礎とする優先権を主張し、その開示の全てをここに取り込む。