以下、図面を参照して、実施形態を説明するが、本発明は本実施形態に限定されるものではない。なお、以下で説明する図面で、同機能を有するものは同一符号を付け、その繰り返しの説明は省略することもある。
<第1の実施形態>
以下、第1の実施形態について、図面を参照して詳細に説明する。
図1は、第1の実施形態に係るログ分析システム100の構成を示すブロック図である。図1において、各ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、図1に示すブロックは単一の装置内に実装されてよく、あるいは複数の装置内に別れて実装されてよい。ブロック間のデータの授受は、データバス、ネットワーク、可搬記録媒体等、任意の手段を介して行われてよい。
図1を参照すると、本実施形態におけるログ分析システム100は、処理部として、入力部110、形式判定部120、集合判定部130、接続情報取得部140、ログ集計部150、及び情報出力部160を備える。また、ログ分析システム100は、記憶部として、形式記憶部171、集合記憶部172を備える。
入力部110は、分析対象のログである分析対象ログ10を取得し、形式判定部120に送る。図4は、第1の実施形態における分析対象ログ10の例を示す図である。本実施形態における分析対象ログ10は、システムに含まれる1以上の構成要素から出力される。構成要素は、例えば、サーバ等の物理装置、仮想マシン等の仮想装置、各種プログラムである。本実施形態における分析対象ログ10は、構成要素から出力される1つのログを1単位とし、1つ以上の任意の数のログを含む。例えば、図4が示す分析対象ログ10の一例は、「2015/08/17 08:29:37 [SV001] JNW3258が開始しました。」である。
分析対象ログ10は、分析対象ログ10に含まれるログの総体を示し、ログは分析対象ログ10から抜き出された1つのログを示す。分析対象ログ10は、ログ分析システム100の外部から取得されてもよい。また、分析対象ログ10は、ログ分析システム100の内部に予め記録されたものを読み出すことにより取得されてよい。分析対象ログ10は、1つ以上の装置又はプログラムから出力される1つ以上のログを含む。分析対象ログ10は、任意のデータ形式(ファイル形式)で表されたログであり、例えばバイナリデータ又はテキストデータでよい。また、分析対象ログ10は、データベースのテーブルとして記録されてよい。また、分析対象ログ10は、テキストファイルとして記録されてよい。
また、各ログは、タイムスタンプ及びメッセージ等を含む。ログ分析システム100は、特定の種類のログに限らず、広範な種類のログを分析対象とすることができる。例えば、syslog、イベントログ等のオペレーティングシステムやアプリケーションから出力されるメッセージを記録するログを分析対象ログ10として用いることができる。
形式判定部120は、分析対象ログ10に含まれる各ログに対して、形式記憶部171に予め記録されているいずれの形式(フォーマット)に適合するかを判定し、判定結果を集合判定部130に送る。具体的には、形式判定部120は、分析対象ログ10に含まれる各ログを形式ごとに分類し、形式毎に分類した各ログを集合判定部130に送る。また、形式判定部120は、判定により適合する形式を用いて各ログを変数部分と定数部分とに分離する。
形式とは、既知のログの形式であってよい。また、形式は、ログの特性に基づいて予め決められた、ログの形式であってよい。ログの特性には、例えば、互いに類似するログ間で変化しやすい又は変化しづらいという性質、あるいは、ログ中で変化しやすい部分とみなせる文字列が記載されているという性質が含まれる。
形式の変数部分は、形式の中で変化可能な部分であり、定数部分とはログの形式の中で変化しない部分である。送られたログ中の変数部分の値(数値、文字列及びその他のデータを含む)を変数値と呼ぶ。変数部分及び定数部分は、形式毎に異なる。そのため、ある形式では変数部分として定義される部分が、別の形式では定数部分として定義されることや、その逆があり得る。
図5は、第1の実施形態に係る形式情報の例を示す図である。形式情報は、形式記憶部171に記録される。形式情報は、形式と形式の識別子である形式ID(Identification)を含む。形式は、一意のIDに関連付けられた形式を表す文字列を含む。形式は、ログ中の変化可能な部分に所定の識別子を記載することによって変数部分として規定し、ログ中の変数部分以外の部分を定数部分として規定する。変数部分の識別子として、例えば「<変数:タイムスタンプ>」はタイムスタンプを表す変数部分を示し、「<変数:文字列>」は任意の文字列を表す変数部分を示す。変数部分の識別子として、例えば、「<変数:数値>」は任意の数値を表す変数部分を示し、「<変数:IP>」は任意のIP(Internet Protocol)アドレスを表す変数部分を示す。変数部分の識別子はこれらに限られず、正規表現や、取り得る値のリスト等の任意の方法により定義されてよい。形式は変数部分を含まずに定数部分によって構成されてよく、あるいは定数部分を含まずに変数部分によって構成されてもよい。また、形式は変数部分を含まずに定数部分のみによって構成されてよく、あるいは定数部分を含まずに変数部分のみによって構成されてよい。
例えば、形式判定部120は、図4の1行目のログである「2015/08/17 08:29:37 [SV001] JNW3258が開始しました。」を、図5のIDが「039」である形式に適合すると判定する。そして、形式判定部120は、判定された形式に基づいて該ログを処理し、タイムスタンプである「2015/08/17 08:29:37」、文字列である「SV001」及び数値である「3258」を変数値として決定する。
図5において、形式は視認性のために文字列のリストで表されているが、任意のデータ形式(ファイル形式)で表されてよく、例えばバイナリデータ又はテキストデータでよい。また、形式はテキストファイルとして形式記憶部171に記録されてよい。また、形式はデータベースのテーブルとして形式記憶部171に記録されてよい。
図6は、第1の実施形態に係る形式判定結果の例を示す図である。形式判定結果は、形式判定部120により、形式記憶部171に記録された形式ごとに分類された、分析対象ログ10に含まれる各ログである。図6が示す形式判定結果は、各ログと形式IDを含む。図6が示す形式判定結果は、形式IDに関連付けられたログである。
形式判定結果は、例えば、「ログ」が「2015/08/17 08:29:37 [SV001] JNW3258が開始しました。」、「形式ID」が「039」、である。
すなわち、形式判定部120は、予め定められる複数の形式のうち、システムの構成要素から出力される複数のログがいずれの形式であるかを判定する。
なお、形式判定部120は、分析対象ログ10に含まれる各ログが形式記憶部171中のいずれの形式にも適合しない場合、該ログを集合判定部130に送らず形式記憶部171に記憶する。形式に適合しないログを収集しておくことで、ログの形式を新たに追加するための情報として用いることができる。
集合判定部130は、形式判定部120により判定された形式ごとの各ログに対して、集合記憶部172に予め記録されている集合に適合するかを判定し、判定結果を接続情報取得部140に送る。具体的には、集合判定部130は、判定された形式毎の各ログを集合記憶部172の集合毎に分類し、集合毎に分類した各ログを接続情報取得部140に送る。集合記憶部172には、1つ以上の集合が予め記録されている。
図7は、集合記憶部172に記録される集合の例を示す図である。集合は、構成要素を跨る一連の処理を示す情報である。構成要素の他、構成要素と関連付けが可能な情報を用いてもよい。例えば、集合は、図6に示すように構成要素を含むログと関連付け可能な形式IDで示されてもよい。図7に示す集合は、集合の識別子である集合IDと複数の形式IDで示される。また集合は、一意のIDに関連付けられた形式IDを表す数値を含んでもよい。図7が示す集合の一例は、「集合ID」が「1」、「複数の形式ID」が「039,055,071」である。すなわち、同一の集合IDに関連付けられた039、055、及び071の各形式に対応する各構成要素により、該構成要素間にまたがる一連の処理が実行される。集合は、各形式IDが登録済のものであってもよい。集合はこれに限られず、任意の定義でもよい。
また、集合は、例えば、形式IDと該形式IDの出力元であるシステム(構成要素)の情報とが対応付けられた形式情報が1以上含まれていてもよい。例えば、該集合の一例は、「集合ID」が「1」、「形式情報」が「039(SV001),055(SV002),071(SV004)」である。「039(SV001)」は、形式IDである039と該形式ID039に該当するログの出力元であるSV001(Server001)とが対応付けられていることを示す。
図8は、第1の実施形態における集合判定結果の例を示す図である。集合判定結果は、集合判定部130により、集合記憶部172に記録された集合ごとに分類された、形式ごとの各ログである。図8が示す集合判定結果は、形式ごとの各ログと集合IDを含む。該集合判定結果は、ログと形式IDと集合IDを含む。該集合判定結果は、形式IDと集合IDとに関連付けられたログである。例えば、集合判定結果の一例は、「ログ」が「2015/08/17 08:29:37 [SV001] JNW3258が開始しました。」、「形式ID」が「039」、「集合ID」が「1」である。すなわち、集合判定部130は、複数の形式の集合のうち、判定された形式ごとの複数のログがいずれの集合であるかを判定する。
接続情報取得部140は、集合判定部130から送られた集合ごとの各ログの出力元である構成要素の接続情報20を取得し、接続情報20をログ集計部150に送る。
接続情報20とは、構成要素に関する情報である。接続情報20は、分析対象ログ10を出力する各構成要素の情報と、該構成要素間の依存関係を示す情報である。接続情報20は、例えば、構成要素名、構成要素のリソース、システムの構成要素間のネットワークによる接続関係、仮想装置やプログラムの主従関係を含む。
例えば、図8が示すように、接続情報取得部140は、集合ごとに分類されたログである「2015/08/17 08:29:37 [SV001] JNW 3258 が開始しました。」から該ログの出力元の構成要素である「SV001」を特定し、該構成要素の接続情報を該構成要素から取得する。
なお、本実施形態において、接続情報取得部140は、接続情報20をログ分析システム100の外部から取得する場合を例として説明している。しかしながら、これは一例であり、接続情報取得部140は、例えば、ログ分析システム100の内部の記録媒体に予め記録されている接続情報20を読み出して取得してもよい。
その他、接続情報取得部140は、例えば、集合ごとの各ログの出力元の構成要素を監視する監視システムから接続情報20を取得してもよい。
ログ集計部150は、集合判定部130により判定された集合ごとの各ログを集計する。具体的には、ログ集計部150は、集合IDと該集合IDに対応する構成要素ごとに、集合ごとの各ログの出現回数であるログ件数を算出し、集計結果を情報出力部160に送る。
図9は、第1の実施形態における集計結果の例を示す図である。集計結果は、集合記憶部172に記録された集合と該集合に対応する構成要素ごとにログ集計部150で集計されたログ件数である。図9が示す集計結果は、集合IDと構成要素とログ件数であり、具体的には、集合IDと、該集合IDに対応付けられた構成要素と、該構成要素に関連付けられたログの件数である。例えば、集計結果の一例は、「集合ID」が「1」、「構成要素」が「SV001」、「ログ件数」が「50」である。すなわち、ログ集計部150は、集合ごとの複数のログを構成要素ごとに集計する。
情報出力部160は、集合ID、該集合IDに対応付けられた構成要素および該構成要素に関連付けられたログ件数を、接続情報20が示す構成要素の接続関係に基づいて構成要素順に出力する。構成要素順とは、一連の処理における始点の構成要素から終点の構成要素への順序を表す。すなわち、情報出力部160は、接続情報に基づいて、構成要素ごとに集計結果を出力する。本実施形態において、情報出力部160は表示装置30に集計結果を出力し、表示装置30はユーザに向けて集計結果を画像として表示する。表示装置30は、画像を表示するための液晶ディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等の表示部を備える。
図10は、第1の実施形態における集計結果の表示画面の例を示す図である。図10が示す画面Aでは、ログ集計部150から送られた集計結果が表示される。図10の画面Aでは、例えば、「集合ID」と「構成要素」と「ログ件数」とが対応付けられた表が表示される。該画面Aが表示する集計結果の一例は、「集合ID」が「1」、「構成要素」が「SV001」、「ログ件数」は「50」である。また、図10に示した表示画面では、上から構成要素順にログ件数が表示される。すなわち、一連の処理が「SV001」により開始され、「SV002」、「SV004」の順に実行される。
なお、図10が示す画面は一例であり、ログ集計部150から送られた集計結果をユーザに対して視認可能に表示できるのであれば、画面の表示方法は限定されない。また、ログ分析システム100(情報出力部160)による情報(例えば、集計結果)の出力方法は、ユーザに向けた画像表示に限られない。例えば、情報出力部160は出力すべき情報をデータとして出力し、ログ分析システム100又はその他システムは情報出力部160からのデータに対して記録処理、印刷処理、分析処理、統計処理等を行ってもよい。
図10の画面を参照することによって、ユーザは分析対象ログ10中の各ログから1つの集合による各構成要素の処理結果を確認でき、各構成要素の該処理結果の差分から、どの構成要素で処理が滞留しているのかを把握することができる。例えば、図10が示す画面では、ユーザは、構成要素SV002と構成要素SV004とのログ件数の差分から、構成要素SV004での処理が滞留していると把握できる。
図2は、本実施形態に係るログ分析システム100の機器構成を示すブロック図である。ログ分析システム100は、CPU(Central Processing Unit)101と、通信インターフェース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)。形式判定部120は、分析対象のログが形式記憶部171に記録されたいずれかの形式に適合する場合(ステップS103でYES)には、分析対象ログ10に含まれる各ログを形式ごとに分類する。
ステップS102において判定対象のログが形式記憶部171に記録されたいずれの形式にも適合しない場合には(ステップS103のNO)、分析対象ログ10の次の1つのログを判定対象としてステップS102〜S103が繰り返される。
集合判定部130は、ステップS102において判定された分析対象ログ10に含まれる各ログを判定対象として、集合記憶部172に記録された集合に適合するか否かを判定する(ステップS104)。集合判定部130は、判定対象の各ログが集合記憶部172に記録された集合に適合する場合(ステップS105でYES)には、判定対象の各ログを集合ごとに分類する。
ステップS104において判定対象のログが集合記憶部172に記録されたいずれの集合にも適合しない場合には(ステップS105のNO)、判定対象のログの次の1つのログを判定対象としてステップS102〜S105が繰り返される。
分析対象ログ10中の全てのログに対して分析が終了していない場合には(ステップS106のNO)、分析対象ログ10の次の1つのログを判定対象としてステップS102〜S106が繰り返される。
分析対象ログ10中の全てのログに対して分析が終了した場合には(ステップS106のYES)、接続情報取得部140は、分析対象ログ10において、集合判定部130により判定された集合ごとの各ログの出力元であるシステムの接続情報20を取得する(ステップS107)。
ログ集計部150は、ステップS105において判定された集合ごとの各ログを示す集合ログを集計する(ステップS108)。情報出力部160は、ステップS107において接続情報20に基づき、ステップS108で集計された結果を示す集計情報を表示装置30に出力し(ステップS109)、ユーザに向けて表示させる。
以上のように、本実施形態に係るログ分析システム100は、分析対象ログ10中の各ログを形式ごとに判定し、該形式ごとの各ログを集合ごとに判定し、該形式ごとかつ集合ごとに判定された各ログの出力元であるシステムの接続情報を取得する。ログ分析システム100は、該形式ごとかつ集合ごとの各ログ集合ログを集計し、接続情報20に基づいて集計結果を出力する。
ログ分析システム100は、分析対象ログ10を分析することにより、該分析対象ログ10を出力するシステムの各構成要素間における一連の処理の結果を表示できる。これにより、システムから出力されたログに基づき複数のサーバにまたがる一連の処理の進行状況をユーザに提示できる。
なお、接続情報取得部140は、集合ごとに分類されたログから該ログの出力元の構成要素を取得する際に、該ログの変数部分の値から構成要素を取得してもよい。
例えば、図6が示す形式ID039のログ「2015/08/17 08:29:37 [SV001] JNW 3258 が開始しました。」を用いてログの出力元の構成要素の取得方法を説明する。図6が示す形式ID039のログの変数部分の値は、図5の形式ID039を参照すると「2015/08/17 08:29:37」、「SV001」、及び「3258」となる。接続情報取得部140は、該変数部分の値を参照し、構成要素である「SV001」を特定し、該構成要素の接続情報を該構成要素から取得する。
なお、集合記憶部172に予め記録されている集合(以降、「集合判定の基準」とも記載)は、設定された時期から時間が経過したり、システムを構成する機器が変更されたりすると、実態に合わなくなることがある。そのため、ログ分析システム100は、過去に蓄積したログに基づいて集合判定の基準を変更してよい。例えば、ログ分析システム100は、ユーザから入力された値(形式ID)を変更後の集合判定の基準として用いてよい。集合判定の基準の更新タイミングとして、ログ分析システム100は、例えば集合判定の基準が前回設定された日から所定の時間が経過した場合に、変更後の集合判定の基準を設定してよい。また、ログ分析システム100は、分析対象ログ10を出力するシステムを構成する機器がリプレースされる際等に機器の変更を検知した場合に、変更後の集合判定の基準を設定してもよい。また、ログ分析システム100は、ユーザの指示を契機として、変更後の集合判定の基準を設定してもよい。
<第2の実施形態>
以下、第2の実施形態について、図面を参照して詳細に説明する。
第1の実施形態に係るログ分析システム100は形式判定部120により判定された形式ごとの各ログを、形式記憶部171に記録されている複数の形式を含む集合に基づいて判定する。一方、第2の実施形態に係るログ分析システム200は、形式判定部120により判定された形式ごとの各ログを、集合記憶部272に記録されている複数の形式の順序を含む集合に基づいて判定する。
図11は、本実施形態に係るログ分析システム200の構成を示すブロック図である。ログ分析システム200は、処理部として、入力部110、形式判定部120、集合判定部130、接続情報取得部140、ログ集計部250、及び情報出力部260を備える。また、ログ分析システム200は、記憶部として、形式記憶部171、集合記憶部272を備える。すなわち、第2の実施形態に係るログ分析システム200は、第1の実施形態に係るログ分析システム100における集合記憶部172、ログ集計部150及び情報出力部160の代わりに、集合記憶部272、ログ集計部250及び情報出力部260を備える。
ログ集計部250は、集合判定部130により判定された順序を含む集合ごとの各ログと接続情報取得部140により取得された接続情報20を用いて、集合ごとのログを集計する。具体的には、ログ集計部250は、集合IDと該集合IDに対応する構成要素ごとに、集合ごとのログ件数及び未処理のログ件数を算出し、該算出結果を情報出力部260に送る。
図12は、第2の実施形態における集合の例を示す図である。集合は、集合記憶部272に記録される。集合は、集合IDと複数の形式IDの順序を含む。複数の形式IDの順序は、システムの各構成要素における一連の処理の順序と対応付けられた形式IDを表す。
図12に示す集合の一例は、「集合ID」が「1」、「形式IDの順序」が「039→055→071」である。該集合は、形式IDである039、055、及び071の各形式に該当する構成要素が当該順序にて処理される、一連の処理であることを示す。順序を含む集合は、例えば、各形式IDが登録済のものであってもよい。順序を含む集合はこれに限られず、任意の定義でよい。また、本実施形態における集合は、矢印によって順序を表すが、これに限られず、任意の文字列、数値又は図形で順序を表してよい。
未処理のログ件数は、システムの各構成要素が処理を完了していない件数を表す。ログ集計部250は、第1の実施形態におけるログ集計部150と同様の処理を行い、集計ID及び該集計IDに対応する構成要素ごとにログ件数(以降、「処理件数」とも記載)を算出する。ログ集計部250は、同一集合IDにおける構成要素順の各ログ件数の差分から、該各構成要素が処理を実行していないことを表す未処理ログ件数(以降、「未処理件数」とも記載)を算出する。ログ集計部250は、ログ件数及び未処理ログ件数を含む集計結果を情報出力部260に送る。
情報出力部260は、接続情報20に基づき、ログ集計部150から送られた集計結果と該集計結果に対応する接続情報20を出力する。なお、本実施形態において、情報出力部260は、集計結果と該集計結果に対応する接続情報を出力する場合を例として説明しているが、接続情報を出力せずに集計結果を出力してもよい。
情報出力部260が出力する出力結果を、図13を用いて説明する。図13は、第2の実施形態における集計結果及び接続情報の表示画面の例を示す図である。図13が示す画面Bには、ログ集計部250から送られた集計結果B1と該集計結果B1に対応する接続情報を示す構成表示B2が表示される。
図13が示す集計結果B1は、例えば、「集合ID」、「構成要素」、「処理件数」及び「未処理件数」が対応付けられた表が表示される。該集計結果B1が表示する集計結果の一例は、「集合ID」が「1」、「構成要素」が「SV001」、「処理件数」が「50」、及び、「未処理件数」が「0」、である。
図13が示す構成表示B2は、例えば、接続情報取得部140により取得された接続情報20に基づいて、各構成要素及びそれらの間の関係を示す図である。具体的には、構成表示B2は、各構成要素を示す記号(ここでは丸)と、構成要素間を接続する線とで示され、「Server001」と「Server002」が接続されていること示す。構成要素を示す記号の近傍には、該構成要素を示す文字列(構成要素名)が表示される。また、構成表示B2上には、同一の集合IDにおける処理件数と未処理件数とが棒グラフで示されている。図13が示す構成表示B2における該棒グラフは、斜線箇所が未処理件数を表している。これにより、ユーザはシステムから出力されたログに基づき複数のサーバにまたがる一連の処理の進行状況を容易に知ることができる。
未処理件数の多い構成要素等の滞留箇所を強調するために、滞留箇所を示す記号又は文字列の種類、色、大きさ等を変化させてもよい。あるいは、滞留箇所を点滅させてもよい。集計結果B1と構成表示B2との関係を明示にするために、集計結果B1中の集合IDにおける構成要素や未処理件数の文字列及び数値の色と、構成表示B2中の滞留箇所の文字列の色とを同一にしてもよい。
本実施形態に係るログ分析システム200は、分析対象ログ10中の各ログを形式ごとに判定し、該形式ごとの各ログを集合記憶部272に記録されている複数の形式の順序を含む集合ごとに判定し、該形式ごとかつ集合ごとに判定された各ログの出力元であるシステムの接続情報を取得する。ログ分析システム200は、該形式ごとかつ集合ごとの各ログを集計し、接続情報20に基づいて集計結果及び該集計結果に対応する接続情報を出力する。
ログ分析システム200は、分析対象ログ10を分析することにより、該分析対象ログ10を出力するシステムの各構成要素間における一連の処理の結果を表示できる。これにより、システムから出力されたログに基づき複数のサーバにまたがる一連の処理の進行状況をユーザに提示できる。また、ログ分析システム200は、棒グラフを含む構成情報を出力することにより、システムから出力されたログに基づき複数のサーバにまたがる一連の処理の進行状況をユーザに提示できる。
<第2の実施形態の変形例>
次に、第2の実施形態に係るログ分析システム200の変形例について説明する。以下の変形例の説明では、第2の実施形態のログ分析システム200と同様の構成については説明を省略し、相違する点について詳しく説明する。
ログ分析システム200の変形例は、分析対象ログ10、及び、接続情報20の他に、外部の監視システムからエラー情報を取得し、該エラー情報を、取得された集計結果と該集計結果に対応する接続情報20とともに出力する。エラー情報は、例えば、異常な構成要素と該構成要素に対するメッセージ(以降、「エラーメッセージ」とも記載)を含む。エラー情報の一例は、「構成要素」が「SV004」、「エラーメッセージ」が「Diskエラーが発生しました」である。
外部の監視システムは、分析対象ログ10の出力元である各構成要素により構成されるシステムを監視対象として監視し、該監視対象の異常を検出した場合、本変形例のログ分析システム200にエラー情報を送る。本変形例の入力部110は、エラー情報を取得し、取得したエラー情報をログ集計部250に送る。
本変形例のログ集計部250は、集合判定部130により判定された順序を含む集合ごとの各ログと、接続情報取得部140により取得された接続情報20と、エラー情報を用いて、集合及びエラー情報ごとのログを集計する。具体的には、ログ集計部250は、集合IDと該集合IDに対応する構成要素ごとに、集合ごとのログ件数及び未処理のログ件数を算出する。ログ集計部250は、集合IDに対応する各構成要素内に、エラー情報に含まれる構成要素がある場合、該構成要素とエラー情報に含まれるエラーメッセージを対応付け、ログ集計部250が算出した結果(算出結果と示す場合もある)および該エラーメッセージを情報出力部260に送る。
本変形例の情報出力部260は、接続情報20に基づき、算出結果と該集計結果に対応する接続情報20と対応付けられたエラーメッセージとを出力する。ここで、図13が示す集計結果B1を用いて本変形例の情報出力部260が出力する出力結果を説明する。本変形例における出力結果は、例えば、「集合ID」、「構成要素」、「処理件数」、「未処理件数」、及び、「エラーメッセージ」が対応付けられた表を表示する。例えば、本変形例における集計結果の一例は、「集合ID」が「1」、「構成要素」が「SV004」、「処理件数」が「10」、「未処理件数」が「40」、及び、「エラーメッセージ」が「Diskエラーが発生しました」である。
本変形例のログ分析システム200は、分析対象ログ10中の各ログを形式ごとに判定し、該形式ごとの各ログを集合記憶部272に記録されている複数の形式の順序を含む集合ごとに判定し、該形式ごとかつ集合ごとに判定された各ログの出力元であるシステムの接続情報を取得する。本変形例のログ分析システム200は、外部の監視システムにより得られたエラー情報を取得する。本変形例のログ分析システム200は、該形式ごとかつ集合ごとの各ログを集計し、集合に対応する各構成要素とエラー情報とに基づいてエラーメッセージを対応付け、接続情報20に基づいて集計結果、エラーメッセージ及び該集計結果に対応する接続情報20を出力する。
本変形例のログ分析システム200は、分析対象ログ10を分析することにより、該分析対象ログ10を出力するシステムの各構成要素間における一連の処理の結果を表示できる。これにより、システムから出力されたログに基づき複数のサーバにまたがる一連の処理の進行状況をユーザに提示できる。また、本変形例のログ分析システム200は、取得されたエラー情報に含まれるエラーメッセージを構成要素に対応付けて出力することにより、複数のサーバにまたがる一連の処理の進行状況で滞留などの問題が発生している場合、該問題の原因に関する情報をユーザに提示できる。
なお、本変形例のログ集計部250は、エラー情報に対応する構成要素の未処理件数が所定の閾値を超過した場合、エラーメッセージを情報出力部260に入力してもよい。
なお、本変形例において、ログ分析システム200は入力部110がエラー情報を取得する場合を例として説明しているが、接続情報取得部140がエラー情報を取得してもよい。さらに、本変形例の入力部110は、例えば、一定の間隔など所定のルールに従い、外部の監視システムからエラー情報を含む監視情報を取得してもよい。また、本変形例の入力部110は、外部の監視システムから本システムに対して適宜アラートが送信された場合、監視情報を取得してもよい。
なお、本変形例の情報出力部260は、エラーメッセージを接続情報20と対応付けて出力してもよい。例えば、図13が示す構成表示B2上の構成要素に対して、ポップアップなどの表示形式でエラーメッセージが表示されてもよい。これにより、ユーザは複数のサーバにまたがる一連の処理の進行状況で滞留などの問題が発生している場合、該問題の具体的な異常内容を容易に知ることができる。
<第3の実施形態>
以下、第3の実施形態について、図面を参照して詳細に説明する。
本実施形態では各構成要素の処理における負荷の分散を指示する情報を示す推薦情報を生成するための推薦情報推薦部と、構成要素の類似性を示す情報(以降、「構成要素分類情報」とも記載)が予め記録されている構成分類記憶部373とを備える。
図14は、本実施形態に係るログ分析システム300のブロック図である。本実施形態におけるログ分析システム300は、処理部として、入力部110、形式判定部120、集合判定部130、接続情報取得部140、ログ集計部150、推薦情報生成部380及び情報出力部260を備える。また、ログ分析システム300は、記憶部として、形式記憶部171、集合記憶部172及び構成分類記憶部373を備える。本実施形態に係るログ分析システム300は、図1の構成に加えて、推薦情報生成部380と構成分類記憶部373とを備える。
推薦情報生成部380は、構成分類記憶部373が記憶する構成要素分類情報、接続情報取得部140により入力される接続情報、及び、ログ集計部150により入力される集計結果に基づき、推薦情報を生成する。具体的には、推薦情報生成部380は、接続情報と集計結果により処理が滞留している構成要素を示す滞留構成要素を選定し、該滞留構成要素と構成要素分類情報とにより類似の構成要素を示す代替構成要素を抽出する。推薦情報生成部380は、抽出した代替構成要素と滞留構成要素の一つ前の処理を行う前段構成要素とが接続されているかを、接続情報に基づき判断する。推薦情報生成部380は、代替構成要素と前段構成要素が接続関係である場合、当該代替構成要素を滞留構成要素の負荷分散先として示す推薦情報を生成し、該推薦情報を情報出力部260に入力する。
構成要素分類情報は、例えば、複数の構成要素での処理や構成などが類似していることを表す。例えば、構成要素分類情報の一例は、構成要素SV004の処理(例えば、処理A)と構成要素SV005の処理(処理B)が類似しているため、「構成要素SV004」における代替構成要素が「構成要素SV005」である。また、構成要素分類情報は、構成要素に類似する代替構成要素が複数含まれていてもよい。
図15は、第3の実施形態における推薦情報及び接続情報20の表示画面の例を示す図である。図15が示す画面Cは、推薦情報生成部380により生成された推薦情報C1と、ログ集計部150から入力された集計結果に対応する接続情報を示す構成表示C2を表示する。
図15が示す推薦情報C1は、例えば、滞留構成要素SV005から代替構成要素SV004へ処理を分散させるように、前段構成要素SV003からSV004へ指示するための図形(矢印)である。図15が示す推薦情報C1は、矢印で表わされているが、これに限られず、任意の文字列、数値、図形で表されてよい。
図15が示す構成表示C2は、例えば、接続情報取得部140により取得された接続情報20に基づいて、各構成要素及びそれらの間の関係を示す図である。具体的には、構成表示C2は、各構成要素を示す記号(ここでは丸)と、構成要素間を接続する線とで示され、例えば、「Server001」と「Server002」が接続されていることを表している。構成要素を示す記号の近傍には、該構成要素を示す文字列(構成要素名)が表示される。また、構成表示C2上には、滞留構成要素を示す滞留箇所C3が二重丸で強調される。これにより、ユーザは滞留のある構成要素を容易に知ることができる。
また、推薦情報C1を強調するために、推薦情報C1を示す記号又は文字列の種類、色、大きさ等を変化させてもよい。あるいは、推薦情報C1を点滅させてもよい。推薦情報C1と構成表示C2中の滞留箇所C3との関係を明示にするために、推薦情報C1の記号又は文字列の種類、色と、構成表示C2中の滞留箇所C3の記号又は文字列の種類、色を同一にしてもよい。これにより、ユーザは複数種類ある滞留と該滞留を解消するための推薦情報との中で、滞留とその推薦情報が対応付けられていることを容易に知ることができる。
本実施形態に係るログ分析システム300は、分析対象ログ10中の各ログを形式ごとに判定し、該形式ごとの各ログを形式記憶部171に記録されている複数の形式を含む集合ごとに判定し、該形式ごとかつ集合ごとに判定された各ログの出力元であるシステムの接続情報を取得する。ログ分析システム300は、該形式ごとかつ集合ごとの各ログ集合ログを集計し、該集計結果と構成分類記憶部373に記録されている構成要素分類情報に基づいて推薦情報を生成し、該推薦情報と該推薦情報に対応する接続情報を出力する。
ログ分析システム300は、分析対象ログ10を分析することにより、該分析対象ログ10を出力するシステムの各構成要素間における一連の処理の結果を表示できる。これにより、システムから出力されたログに基づき複数のサーバにまたがる一連の処理の進行状況をユーザに提示できる。また、ログ分析システム300は、推薦情報と接続情報を出力することにより、システムから出力されたログに基づき複数のサーバにまたがる一連の処理で発生する処理の滞留に対して、他の構成要素へ処理を変更するようにユーザへ提示できる。
なお、推薦情報生成部380は、人やシステムによる外部からの入力、又は、分析対象ログ10を監視する監視システムからのアラート等による異常の通知を受けつけた場合に、推薦情報を生成してもよい。これにより、ログ分析システム300は、常に推薦情報生成部380が処理を実行しなくてよく、当該システムの負荷が軽減できる。
なお、推薦情報生成部380は、構成要素の稼働中のシステムの処理状態である稼働状態に基づき、推薦情報を生成してもよい。稼働状態は、例えば、CPU使用率、物理メモリ使用率、プロセス情報、パケット数又は死活監視の情報である。この場合、推薦情報生成部380は、滞留構成要素及び複数の代替構成要素の稼働状態を比較し、稼働状態の良い(処理負荷が低い)代替構成要素を選定し、該代替構成要素に対する推薦情報を生成する。これにより、推薦情報生成部380は、稼働状態の良い代替構成要素への推薦情報を生成できる。なお、稼働状態は、構成分類記憶部373に予め記憶されていてもよいし、接続情報20に含まれていてもよい。
なお、推薦情報生成部380は、接続情報と集計結果に基づき、構成要素分類情報を生成してもよい。この場合、推薦情報生成部380は、接続情報と集計結果と用いて、構成要素の類似性を判定し、該判定結果から構成要素分類情報を生成する。
<第4の実施形態>
以下、第4の実施形態について、図面を参照して詳細に説明する。
本実施形態では形式、モデル及び状態を学習するための学習部を備える。図16は、第4の実施形態に係るログ分析システム400のブロック図である。ログ分析システム400は、図1の構成に加えて、形式学習部491及び集合学習部492を備える。
形式学習部491は、形式判定部120が形式の判定を行う際、判定対象のログが形式記憶部171に記録されているいずれの形式にも適合しない場合に、新たな形式を作成して形式記憶部171に記録する。
形式学習部491が形式を学習するための第1の方法として、形式学習部491は、形式が未知である複数のログを蓄積し、それらに対して統計的に変化する変数部分と変化しない定数部分を分離することによって、新たな形式として定義することができる。形式学習部491が形式を学習するための第2の方法として、形式学習部491は、既知の変数値のリストを読み込み、形式が未知であるログの中で既知の変数値と一致する又は類似する部分を変数部分と判定し、それ以外の部分を定数部分と判定することによって、新たな形式を定義することができる。既知の変数値として、値そのものを用いてよく、あるいは正規表現のようなパターンを用いてよい。形式の学習方法はこれらに限られず、入力されたログに対して新たな形式を定義することが可能な任意の学習アルゴリズムを用いてよい。
集合学習部492は、集合判定部130が集合の判定を行う際、判定対象のログが集合記憶部172に記録されているいずれの集合にも適合しない場合に、新たな集合を作成して集合記憶部172に記録する。
通常、集合判定部130は集合記憶部172に予め記録されているいずれの集合にも適合しないログを対象外ログと判定するが、集合が未知であるログであっても対象ログである場合がある。この場合に、ユーザは入力装置を介して集合記憶部172の集合に適合しないログが対象ログであるという指示を入力すると、集合学習部492は当該ログの形式及び接続情報に基づいて新たな集合を作成し、集合記憶部172に記録する。集合の学習方法はこれに限られず、入力されたログから新たに集合を定義することが可能な任意の学習アルゴリズムを用いてよい。
本実施形態に係るログ分析システム400は、形式及び集合を学習するための学習部を備えるため、未知の形式又は集合のログから新たに形式又は集合を生成し、記録することができる。
<その他の実施形態>
図17は、上述の第1−第4の実施形態に係るログ分析システム概略構成を示すブロック図である。図17には、ログ分析システム500が分析対象ログ10を出力した各構成要素にまたがる一連の処理の進行状況に関する情報の出力を行う装置として機能するための構成例が示されている。ログ分析システム500は、予め定められる複数の形式のうち、システムの構成要素から出力される複数のログがいずれの形式であるかを判定する形式判定部120と、複数の形式の集合のうち、判定された形式ごとの複数のログがいずれの集合であるかを判定する集合判定部130と、判定された集合ごとの複数のログを出力した構成要素の関係性を示す接続情報を取得する接続情報取得部140と、集合ごとの複数のログを構成要素ごとに集計するログ集計部550と、接続情報に基づき、構成要素ごとに集計結果を出力する情報出力部560、を備える。なお、ログ集計部550は、ログ集計部150又はログ集計部250の機能と同様であり、情報出力部560は、情報出力部160又は情報出力部260の機能と同様である。
本発明は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲において適宜変更可能である。
上述の実施形態の機能を実現するように該実施形態の構成を動作させるプログラム(より具体的には、図3に示す処理をコンピュータに実行させるプログラム)を記録媒体に記録させ、該記録媒体に記録されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も各実施形態の範疇に含まれる。すなわち、コンピュータ読取可能な記録媒体も各実施形態の範囲に含まれる。また、上述のプログラムが記録された記録媒体はもちろん、そのプログラム自体も各実施形態に含まれる。
該記録媒体としては例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。また該記録媒体に記録されたプログラム単体で処理を実行しているものに限らず、他のソフトウェア、拡張ボードの機能と共同して、OS(operating system)上で動作して処理を実行するものも各実施形態の範疇に含まれる。
この出願は、2015年12月25日に出願された日本出願特願2015−254541を基礎とする優先権を主張し、その開示の全てをここに取り込む。