JP6823265B2 - 分析装置、分析システム、分析方法および分析プログラム - Google Patents

分析装置、分析システム、分析方法および分析プログラム Download PDF

Info

Publication number
JP6823265B2
JP6823265B2 JP2017062208A JP2017062208A JP6823265B2 JP 6823265 B2 JP6823265 B2 JP 6823265B2 JP 2017062208 A JP2017062208 A JP 2017062208A JP 2017062208 A JP2017062208 A JP 2017062208A JP 6823265 B2 JP6823265 B2 JP 6823265B2
Authority
JP
Japan
Prior art keywords
data item
log
record
value
correlation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017062208A
Other languages
English (en)
Other versions
JP2018165857A (ja
Inventor
堀田 勇次
勇次 堀田
武 安家
武 安家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017062208A priority Critical patent/JP6823265B2/ja
Priority to US15/922,373 priority patent/US10592327B2/en
Publication of JP2018165857A publication Critical patent/JP2018165857A/ja
Application granted granted Critical
Publication of JP6823265B2 publication Critical patent/JP6823265B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は分析装置、分析システム、分析方法および分析プログラムに関する。
情報処理システムに含まれる各種機器から稼働状況を示すログを収集し、収集したログを分析して情報処理システムの障害を自動的に検出することが行われている。障害を検出する方法として、障害を示すログの条件を人手で定義しておく代わりに、正常時のログを分析して正常時のログの特徴を抽出し、その特徴と異なる傾向のログが採取されたときに障害が発生したと推定するアノマリー分析がある。アノマリー分析の1つとして、収集するログに含まれる複数のデータ項目の間の相関関係を正常時に判定し、判定した相関関係に反するログが採取されたときに障害が発生したと推定する方法が考えられる。
例えば、情報処理システムの障害を検出する運用管理装置が提案されている。提案の運用管理装置は、正常時においてプロセッサ使用率・メモリ使用量・ディスク使用量などの複数の性能指標の性能値を測定し、異なる2つの性能指標の組毎に性能値の相関関係を示す相関モデルを生成しておく。運用管理装置は、各性能指標の最新の性能値を監視し、相関モデルが示す相関関係と最新の性能値とを照合して相関関係に反する性能値が測定されたこと(相関関係の崩れ)を検出する。運用管理装置は、何れの性能指標の組について相関関係の崩れが検出されたかに基づいて障害原因を判定する。
複数の相関関係の崩れが同時に検出された場合、提案の運用管理装置は、各性能指標について複数の相関関係の崩れのうち当該性能指標が関与している相関関係の崩れの個数をカウントする。運用管理装置は、カウントした個数に基づいて複数の相関関係の崩れの中心に位置する性能指標を特定し、中心の性能指標に基づいて障害原因を絞り込む。
国際公開第2012/086824号 国際公開第2013/111560号
障害発生時には1つの障害原因に起因して、ログに含まれる複数のデータ項目の値が連鎖的に異常な変動を示すことがある。例えば、障害によって前段サーバの稼働状態または情報処理プロセスが変化し、その影響によって連鎖的に後段サーバの稼働状態または情報処理プロセスが変化することがある。これにより複数の相関関係の崩れが同時に検出されることがある。しかし、従来のアノマリー分析では複数のデータ項目の間で相関関係が崩れたことが検出されるだけであるため、このような場合に障害原因に最も近いデータ項目を判定することが難しいという問題がある。このため、障害原因を適切に絞り込むことが容易でなく、障害原因の調査の負担が大きくなるおそれがある。
なお、上記の特許文献2では複数の相関関係の崩れの中心に位置するデータ項目を特定して障害原因を推定している。しかし、複数の相関関係の崩れが連鎖的に起こる可能性がある場合、その中心に位置するデータ項目が障害原因に最も近いとは限らない。
1つの側面では、本発明は、障害原因に近いデータ項目の判定精度が向上する分析装置、分析システム、分析方法および分析プログラムを提供することを目的とする。
1つの態様では、コンピュータに以下の処理を実行させる分析プログラムが提供される。複数回の第1の処理イベントに対応する複数の第1のレコードを含んでおり、複数の第1のレコードそれぞれは1つの第1の処理イベントに関連する値を示す第1のデータ項目と1つの第1の処理イベントの発生時刻を示す第1の時刻項目とを含む第1のログと、複数回の第2の処理イベントに対応する複数の第2のレコードを含んでおり、複数の第2のレコードそれぞれは1つの第2の処理イベントに関連する値を示す第2のデータ項目と1つの第2の処理イベントの発生時刻を示す第2の時刻項目とを含む第2のログとを取得する。第1のログの中の2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる第1のデータ項目の値と第2のログの中の当該第1のレコードに対応する第2のレコードに含まれる第2のデータ項目の値との比較に基づいて、第1のデータ項目と第2のデータ項目の間の相関関係を算出し、2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる第1の時刻項目の値と当該第1のレコードに対応する第2のレコードに含まれる第2の時刻項目の値との比較に基づいて、第1のデータ項目と第2のデータ項目の間の影響方向を判定する。それぞれが第1のデータ項目を含む複数の第3のレコードを含んでおり、第1のログより後に生成された第3のログと、それぞれが第2のデータ項目を含む複数の第4のレコードを含んでおり、第2のログより後に生成された第4のログとを取得する。第3のログの中の2以上の第3のレコードそれぞれについて当該第3のレコードに含まれる第1のデータ項目の値と第4のログの中の当該第3のレコードに対応する第4のレコードに含まれる第2のデータ項目の値との比較に基づいて、第1のデータ項目と第2のデータ項目とが相関関係を満たすか判定し、相関関係が満たされない場合、影響方向に基づいて、第1のデータ項目および第2のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する。
また、1つの態様では、記憶部と処理部とを有する分析装置が提供される。また、1つの態様では、第1の処理装置と第2の処理装置とを有する分析システムが提供される。また、1つの態様では、コンピュータが実行する分析方法が提供される。
1つの側面では、障害原因に近いデータ項目の判定精度が向上する。
第1の実施の形態の分析装置の例を示す図である。 第2の実施の形態の情報処理システムの例を示す図である。 分析サーバのハードウェア例を示すブロック図である。 分析サーバと監視サーバの機能例を示すブロック図である。 設定テーブルの例を示す図である。 収集されるログの例を示す図である。 第1の集約ログテーブルの例を示す図である。 第2の集約ログテーブルの例を示す図である。 相関テーブルと因果関係テーブルの例を示す図である。 障害通知画面の例を示す図である。 事前分析の手順例を示すフローチャートである。 事前分析の手順例を示すフローチャート(続き1)である。 事前分析の手順例を示すフローチャート(続き2)である。 運用監視の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の分析装置の例を示す図である。
第1の実施の形態の分析装置10は、情報処理システム20を監視して障害を検出し、障害原因の調査に役立つ情報を出力する。具体的には、分析装置10は、情報処理システム20からログを収集し、収集したログの異常をアノマリー分析によって検出して異常情報を出力する。分析装置10はクライアント装置でもよいしサーバ装置でもよい。
分析装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性のストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プログラムには分析プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
分析装置10は、情報処理システム20からログ13,14を取得して記憶部11に格納する。ログ13,14は、例えば、情報処理システム20が有するサーバコンピュータによって生成される。ログ13,14は、異なる装置によって生成されたログでもよいし同じ装置によって生成されたログでもよい。ログ13は、それぞれ第1の処理イベントに応じて生成された1以上のレコードを含む。ログ13の各レコードは、第1の処理イベントに関連する値を示すデータ項目13aと、第1の処理イベントの発生時刻を示す時刻項目13bとを含む。ログ14は、それぞれ第2の処理イベントに応じて生成された1以上のレコードを含む。ログ14の各レコードは、第2の処理イベントに関連する値を示すデータ項目14aと、第2の処理イベントの発生時刻を示す時刻項目14bとを含む。
上記の第1の処理イベントおよび第2の処理イベントは、例えば、リクエストメッセージの受信、メソッドの呼び出し、データベースに対するクエリの発行など、情報処理システム20の内部における所定の情報処理プロセスの実行を示す。データ項目13a,14aは、例えば、リクエストメッセージに含まれるパラメータの値、メソッド呼び出し回数、アクセスしたデータベーステーブルの数、情報処理プロセスの実行時間、その時点のCPU使用率やRAM使用量など、情報処理の実行状況を示す。
また、分析装置10は、ログ13,14を取得した後、情報処理システム20から更にログ15,16を取得して記憶部11に格納する。ログ13,14とログ15,16とは、異なる装置によって生成されてもよいし同じ装置によって生成されてもよい。ただし、ログ15は、ログ13と同一または類似する機能をもつ装置によってログ13よりも後に生成される。ログ16は、ログ14と同一または類似する機能をもつ装置によってログ14よりも後に生成される。例えば、ログ13,14は試験運用時に生成されたログであり、ログ15,16は本番運用時に生成されたログである。
ログ15は、それぞれ第1の処理イベントに応じて生成された1以上のレコードを含む。ログ15の各レコードは、ログ13のレコードと同様にデータ項目13aを含む。ログ15の各レコードは、更に時刻項目13bを含んでもよく、ログ13のレコードと同一のフォーマットであってもよい。ログ16の各レコードは、ログ14のレコードと同様にデータ項目14aを含む。ログ16の各レコードは、更に時刻項目14bを含んでもよく、ログ14のレコードと同一のフォーマットであってもよい。
処理部12は、情報処理システム20からログ13,14が取得されると、データ項目13aとデータ項目14aの間の相関関係17を算出する。相関関係17は、ログ13に含まれるレコードのデータ項目13aの値とログ14に含まれるレコードのデータ項目14aの値とに基づいて算出される。相関関係17は、データ項目13aの値とデータ項目14aの値の相関係数を含んでもよい。また、相関関係17は、ログ13,14に含まれる他のデータ項目の値が特定条件を満たす場合のみデータ項目13aとデータ項目14aの間に強い相関が成立することを示す条件付き相関関係であってもよい。
また、処理部12は、情報処理システム20からログ13,14が取得されると、データ項目13aとデータ項目14aの間の影響方向18を判定する。影響方向18は、ログ13に含まれるレコードの時刻項目13bの値とログ14に含まれるレコードの時刻項目14bの値との比較に基づいて判定される。影響方向18は、データ項目の値の変動が伝搬する方向を示しており、因果関係と言うこともできる。影響方向18が判定されると、データ項目13a,14aのうちの一方が「原因データ項目」になり他方が「結果データ項目」になる。例えば、ログ13に含まれるレコードの時刻が、当該レコードに対応するログ14に含まれるレコードの時刻よりも常に早い場合、処理部12は、データ項目13aからデータ項目14aへの方向を影響方向18として判定する。
その後、処理部12は、情報処理システム20から取得されたログ15,16と予め算出した相関関係17とを照合して、情報処理システム20の障害を検出する。処理部12は、ログ15に含まれるレコードのデータ項目13aの値とログ16に含まれるレコードのデータ項目14aの値とが相関関係17を満たすか判定し、相関関係17が満たされない場合は情報処理システム20に障害が発生したとみなす。障害が検出されると、処理部12は、予め判定した影響方向18に基づいて、データ項目13a,14aのうち異常の影響元である原因データ項目を特定する。ここでは原因データ項目は、値の異常な変動が先に発生したデータ項目であり、障害原因に近いデータ項目と言うことができる。
例えば、処理部12は、影響方向18がデータ項目13aからデータ項目14aへの方向を示している場合、データ項目13aが今回の障害に対する原因データ項目であると特定する。なお、予め複数の相関関係が算出されており、それら複数の相関関係が満たされていないことが同時に検出された場合、処理部12は、当該複数の相関関係それぞれについて影響方向を検索する。この場合、処理部12は、複数の相関関係の影響方向を合成して、異常の最初の影響元である原因データ項目(主原因データ項目)を特定してもよい。
処理部12は、特定した原因データ項目を示す異常情報19を出力する。例えば、処理部12は、分析装置10に接続されたディスプレイまたは他の装置に接続されたディスプレイに異常情報19を表示させる。なお、第1の実施の形態では、相関関係17の算出および影響方向18の判定とこれら情報を利用した異常情報19の生成とを分析装置10が実行したが、両者を異なる装置が実行してもよい。その場合、ある装置から別の装置に対して相関関係17および影響方向18が通知される。
第1の実施の形態の分析装置10によれば、ログ13,14を分析してデータ項目13a,14aの間の相関関係17を算出する際に、併せてデータ項目13a,14aの間の影響方向18が判定される。その後に取得されたログ15,16が相関関係17を満たさないことが検出されると、影響方向18に基づいて原因データ項目が判定される。
影響方向18が不明である場合、相関関係17が満たされないというだけでは、相関関係17を構成するデータ項目13a,14aのうち何れのデータ項目の方が障害原因に強く関連しているのか不明である。これに対し、影響方向18を用いることで障害原因に近いデータ項目を判定できる。特に、相関関係17を含む複数の相関関係が満たされないことが同時に検出されたとき、障害原因に最も近いデータ項目を判定できる。よって、効率的に障害原因を絞り込むことが可能となり、障害原因の調査の負担が軽減される。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、アノマリー分析によって障害を自動的に検出し、障害原因の調査に役立つ情報をシステム管理者に対して提供する。情報処理システムは、Webサーバ31、アプリケーションサーバ(APサーバ)32およびデータベースサーバ(DBサーバ)33などの複数の業務用サーバを有する。また、情報処理システムは、管理端末34、分析サーバ100および監視サーバ200を有する。Webサーバ31、APサーバ32、DBサーバ33、管理端末34、分析サーバ100および監視サーバ200は、ネットワーク30に接続されている。
Webサーバ31は、TCP(Transmission Control Protocol)/IP(Internet Protocol)やHTTP(Hypertext Transfer Protocol)などのプロトコルを用いて、図示しないクライアントコンピュータと通信するサーバコンピュータである。Webサーバ31は、クライアントコンピュータからリクエストメッセージを受信し、リクエストメッセージに応じたアプリケーション処理をAPサーバ32に要求する。Webサーバ31は、アプリケーション処理の結果である結果データをAPサーバ32から受信し、結果データに応じたレスポンスメッセージをクライアントコンピュータに返信する。
APサーバ32は、Webサーバ31からの要求に応じて、アプリケーションプログラムに従ってアプリケーション処理を実行するサーバコンピュータである。アプリケーション処理は、1以上のメソッド(関数と言うこともできる)の呼び出しを含む場合がある。また、アプリケーション処理は、DBサーバ33へのデータベースアクセスの要求を含む場合がある。APサーバ32は、DBサーバ33から受信したデータなどを用いてアプリケーション処理を完了させ、その結果である結果データをWebサーバ31に返信する。
DBサーバ33は、不揮発性の記憶装置を用いてデータベースを保持し、APサーバ32からの要求に応じてデータベースにアクセスするサーバコンピュータである。APサーバ32からの要求は、例えば、データベースへのデータの追加、データベースに記憶されたデータの更新、データベースからのデータの削除、または、データベースに記憶されたデータの検索である。DBサーバ33は、データベース管理システム(DBMS)を用いてデータベースを管理する。DBサーバ33は、SQLなどのクエリ記述言語を用いて記述されたクエリを生成または取得し、クエリに従ってデータベースにアクセスする。DBサーバ33は、データベースから抽出したデータや追加・更新・削除の成否などのアクセス結果を結果データとしてAPサーバ32に返信する。
Webサーバ31、APサーバ32およびDBサーバ33はそれぞれ、ハードウェアリソースの使用状況や情報処理プロセスの実行状況を示す各種のログを生成する。例えば、APサーバ32は、Webサーバ31からのアプリケーション処理要求の受信を示すAPアクセスログを生成する。また、例えば、APサーバ32は、アプリケーション処理の中で行われたメソッド呼び出しを示すメソッドログを生成する。また、例えば、DBサーバ33は、クエリの発行を示すSQLログを生成する。また、例えば、Webサーバ31やAPサーバ32は、CPU使用率やRAM使用量を示すリソースログを生成する。
一部のログの内容は、Webサーバ31がクライアントコンピュータから受信したリクエストメッセージと紐付けられる。例えば、APサーバ32が生成するAPアクセスログの1つのレコードは、1つのリクエストメッセージに関連して発行されたアプリケーション処理要求を示している。また、例えば、APサーバ32が生成するメソッドログの1つのレコードは、1つのリクエストメッセージに関連して実行されたメソッド呼び出しを示している。また、例えば、DBサーバ33が生成するSQLログの1つのレコードは、1つのリクエストメッセージに関連して発行されたクエリを示している。
管理端末34は、情報処理システムの管理者が使用するクライアントコンピュータである。管理端末34は、監視サーバ200によって情報処理システムの障害が検出されると、検出された障害を示す障害情報を監視サーバ200から受信する。管理端末34は、管理端末34が有するディスプレイに障害情報を表示するなど、管理端末34が有する出力装置に障害情報を出力する。管理端末34は、管理者による障害原因の調査に使用されることもある。例えば、管理端末34は、管理者の操作に応じてWebサーバ31、APサーバ32、DBサーバ33などのサーバコンピュータにアクセスし、各種のソースコードや設定情報や前述のログとは異なる詳細ログなどを取得する。
分析サーバ100は、監視サーバ200が障害の検出に使用する「モデル」を生成するサーバコンピュータである。モデルは、ログに含まれる複数のデータ項目(複数のフィールド)の間の正常時における相関関係を示している。また、モデルは、相関係数が高いデータ項目の組について更に因果関係を示している。因果関係は、値の異常な変動が何れの方向に伝搬するか、すなわち、2つのデータ項目のうち何れのデータ項目が「原因」であり何れのデータ項目が「結果」であるかを示している。
分析サーバ100は、Webサーバ31、APサーバ32、DBサーバ33などの複数のサーバコンピュータからログを収集する。分析サーバ100は、収集したログを分析してモデルを生成し、生成したモデルを監視サーバ200に送信する。なお、第2の実施の形態ではサーバコンピュータである分析サーバ100がモデルを生成しているが、クライアントコンピュータがモデルを生成してもよい。
監視サーバ200は、分析サーバ100が生成したモデルを用いて障害を検出し、障害原因の調査に役立つ障害情報を生成するサーバコンピュータである。監視サーバ200は、Webサーバ31、APサーバ32、DBサーバ33などの複数のサーバコンピュータから最新のログを収集する。監視サーバ200は、収集したログに含まれる複数のデータ項目の値が、分析サーバ100から受信したモデルが示す相関関係を満たしているか判定する。最新のログが1以上の所定の相関関係を満たしていない場合、すなわち、1以上の「相関関係の崩れ」が発生している場合、監視サーバ200は、情報処理システムに障害が発生したか少なくとも障害の兆候があると判定する。
障害が検出されると、監視サーバ200は、モデルが示す因果関係に基づいて、相関関係の崩れに関与している複数のデータ項目のうち障害原因に最も近いデータ項目を主原因として判定する。主原因は、複数の相関関係を「結果」から「原因」に向かって辿る、すなわち、値の異常な変動の伝搬方向を逆方向に辿ることで特定できる。監視サーバ200は、相関関係の崩れに関与している複数のデータ項目や主原因と推定されたデータ項目を示す障害情報を生成し、障害情報を管理端末34に送信する。
分析サーバ100によるモデル生成は、運用開始前の事前準備として行われる。例えば、Webサーバ31、APサーバ32、DBサーバ33などの複数のサーバコンピュータを運用開始前に試運転させる。分析サーバ100は、試運転中に生成されたログを収集し、収集したログを用いて運用開始前にモデルを生成する。監視サーバ200による障害検出は、運用開始後に行われる。例えば、監視サーバ200は、本番運用中にWebサーバ31、APサーバ32、DBサーバ33などの複数のサーバコンピュータから継続的にログを収集する。監視サーバ200は、最新のログとモデルを照合して障害を検出する。
なお、運用開始前と運用開始後とで異なるサーバコンピュータが使用されてもよい。例えば、本番環境であるWebサーバ31、APサーバ32およびDBサーバ33に相当する機能をもつサーバコンピュータが、試験環境として用意される。その場合、分析サーバ100は試験環境のサーバコンピュータからログを収集してモデルを生成する。また、第2の実施の形態では分析サーバ100がモデルを生成し監視サーバ200が障害を検出しているが、同一コンピュータがモデル生成と障害検出の両方を行ってもよい。
また、運用開始後に分析サーバ100が継続的にモデルを更新するようにしてもよい。例えば、分析サーバ100は、監視サーバ200と同様に本番運用中、Webサーバ31、APサーバ32およびDBサーバ33から継続的にログを収集する。または、分析サーバ100は、監視サーバ200が収集したログを監視サーバ200から取得する。分析サーバ100は、本番運用中に収集したログを分析してモデルを更新し、更新したモデルを監視サーバ200に送信する。監視サーバ200は、分析サーバ100から最新のモデルを受信すると、前のモデルを破棄して最新のモデルを使用する。なお、モデルを更新する周期は、監視サーバ200が障害の有無を判定する周期より十分長くてよい。
図3は、分析サーバのハードウェア例を示すブロック図である。
分析サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。上記のユニットはバスに接続されている。Webサーバ31、APサーバ32、DBサーバ33、管理端末34および監視サーバ200も、分析サーバ100と同様のハードウェアを用いて実装することができる。
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、分析サーバ100は複数のプロセッサを備えてもよく、以下の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、分析サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、分析サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、分析サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、分析サーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、分析サーバ100に複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
通信インタフェース107は、ネットワーク30に接続され、ネットワーク30を介して他の装置と通信を行うインタフェースである。通信インタフェース107は、例えば、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースである。ただし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
図4は、分析サーバと監視サーバの機能例を示すブロック図である。
分析サーバ100は、ログ収集部121、ログ記憶部122、設定記憶部123、情報集約部124、モデル生成部125、因果関係判定部126、モデル記憶部127およびモデル送信部128を有する。ログ記憶部122、設定記憶部123およびモデル記憶部127は、例えば、RAM102またはHDD103に確保した記憶領域を用いて実装される。ログ収集部121、情報集約部124、モデル生成部125、因果関係判定部126およびモデル送信部128は、例えば、プログラムモジュールを用いて実装される。
ログ収集部121は、Webサーバ31、APサーバ32およびDBサーバ33のログを収集する。例えば、ログ収集部121は、運用開始前の事前分析フェーズにおいてWebサーバ31、APサーバ32およびDBサーバ33のログを収集する。ログ収集部121は、収集したログをログ記憶部122に格納する。ログ記憶部122は、収集されたWebサーバ31、APサーバ32およびDBサーバ33のログを記憶する。
設定記憶部123は、収集されたログを集約する際の設定を示す設定情報を記憶する。設定情報は、収集されるログの特徴に基づいて管理者によって予め作成される。設定情報は、例えば、ログ毎に当該ログにレコードが追加される契機を示す情報や、ログを分析する際に起点とするログ(基軸ログ)を示す情報を含む。
情報集約部124は、設定記憶部123に記憶された設定情報に基づいて、ログ記憶部122に記憶された複数のログを集約して集約ログを生成する。集約ログの生成では、情報集約部124は、基軸ログに含まれる各レコードに対して、基軸ログ以外の他のログから関連するレコードを抽出して結合する。これにより、異なるログ(例えば、異なるサーバコンピュータが生成したログ)に含まれる異なるデータ項目の値が相互に関連付けられる。情報処理プロセスの実行状況を示すログについては、情報集約部124は、基軸ログのレコードと同じリクエストメッセージに関するレコードを抽出して結合すればよい。リソースの使用状況を示すログについては、情報集約部124は、基軸ログのレコードと最も時刻が近いレコードを抽出して結合すればよい。
モデル生成部125は、情報集約部124が生成した集約ログを用いて、複数のデータ項目の間の相関関係を示すモデルを生成してモデル記憶部127に格納する。モデル生成部125が生成するモデルは、集約ログに含まれる2つのデータ項目の組(データ項目ペア)のうち相関係数が高いデータ項目ペアを示す。あるデータ項目ペアの相関関係を判定するにあたり、モデル生成部125は、他のデータ項目が特定の値になる場合のみ、すなわち、特定の文脈(コンテキスト)の場合のみ相関係数が高くなる可能性を考慮する。文脈は、2つのデータ項目の間に相関関係が成立する条件を表している。データ項目ペアと文脈の組み合わせに対して相関係数が定義される。なお、あるデータ項目ペアの相関係数が他のデータ項目の値に関係なく十分高い場合、文脈を空としてもよい。
因果関係判定部126は、情報集約部124が生成した集約ログを用いて、モデル記憶部127に記憶されたモデルに対して因果関係の情報を追加する。因果関係判定部126は、相関係数が高いデータ項目ペアについて、一方のデータ項目の値がログに出力された時刻と他方のデータ項目の値がログに出力された時刻との間の関係を集約ログから分析する。一方のデータ項目の値が他方のデータ項目の値よりも常に早く出力されるという関係が成立する場合、因果関係判定部126は、当該一方のデータ項目を「原因」とし当該他方のデータ項目を「結果」とする因果関係が存在すると推定する。ただし、相関係数が高いデータ項目ペアの全てに対して因果関係が推定されるとは限らない。2つのデータ項目の間の時刻に法則性が無い場合には因果関係は推定されない。
モデル記憶部127は、障害検出に用いられるモデルを記憶する。モデル記憶部127が記憶するモデルは、データ項目ペアの相関関係および因果関係を示す。モデル送信部128は、モデル生成部125および因果関係判定部126によって生成されてモデル記憶部127に格納されたモデルを、監視サーバ200に送信する。
監視サーバ200は、ログ収集部221、ログ記憶部222、設定記憶部223、情報集約部224、モデル照合部225、因果関係検索部226、モデル記憶部227および障害通知部228を有する。ログ記憶部222、設定記憶部223およびモデル記憶部227は、例えば、監視サーバ200のRAMまたはHDDに確保した記憶領域を用いて実装される。ログ収集部221、情報集約部224、モデル照合部225、因果関係検索部226および障害通知部228は、例えば、プログラムモジュールを用いて実装される。
ログ収集部221は、Webサーバ31、APサーバ32およびDBサーバ33のログを継続的に収集する。例えば、ログ収集部221は、運用開始後の運用監視フェーズにおいてWebサーバ31、APサーバ32およびDBサーバ33のログを収集する。ログ収集部221は、収集したログをログ記憶部222に格納する。ログ記憶部222は、収集されたWebサーバ31、APサーバ32およびDBサーバ33のログを記憶する。
設定記憶部223は、収集されたログを集約する際の設定を示す設定情報を記憶する。設定情報は、収集されるログの特徴に基づいて管理者によって予め作成される。設定記憶部223に記憶される設定情報は、設定記憶部123に記憶される設定情報と同じでよい。情報集約部224は、設定記憶部223に記憶された設定情報に基づいて、ログ記憶部222に記憶された複数のログを集約して集約ログを生成する。情報集約部224による集約ログの生成方法は、情報集約部124の方法と同じでよい。ただし、情報集約部224は、比較的短い周期で集約ログの生成を繰り返す。
モデル照合部225は、情報集約部224が生成した集約ログとモデル記憶部227に記憶されたモデルとを照合して、モデルが示すデータ項目ペアのうち「相関関係の崩れ」が生じているデータ項目ペアがあるか判定する。1以上のデータ項目ペアについて相関関係の崩れが検出された場合、モデル照合部225は、情報処理システムに障害が発生したと判定する。相関関係の崩れを検出するにあたり、モデル照合部225は、情報集約部224が生成した集約ログを用いて、モデルが示すデータ項目ペアそれぞれの相関係数を算出する。データ項目ペアに空でない文脈が付加されている場合、モデル照合部225は、集約ログに含まれるレコードのうちその文脈に適合するレコードのみを用いて相関係数を算出する。モデル照合部225は、算出した相関係数がモデルの相関係数から大きく乖離しているデータ項目ペアに対して、相関関係の崩れが生じていると判定する。
因果関係検索部226は、「相関関係の崩れ」が検出されたデータ項目ペアそれぞれに対して、モデル記憶部227に記憶されたモデルから因果関係を検索する。相関関係が崩れたデータ項目ペアに対して「原因」のデータ項目と「結果」のデータ項目が特定される。ただし、相関関係が崩れた全てのデータ項目ペアについて因果関係がモデルに定義されているとは限らない。同じ文脈のもとで複数のデータ項目ペアについて相関関係の崩れが検出されかつ因果関係が特定された場合、因果関係検索部226は、複数のデータ項目ペアの因果関係を連結することで、障害原因に最も近い主原因のデータ項目を判定する。ある因果関係で「原因」に該当するデータ項目が他の因果関係で「結果」に該当する場合、推移律に従って当該2つの因果関係を連結することができる。複数の因果関係を連結した後に「原因」として残った先頭のデータ項目が主原因と判定される。
モデル記憶部227は、監視サーバ200が分析サーバ100から受信したモデルを記憶する。障害通知部228は、モデル照合部225が障害を検出すると、検出した障害を示す障害通知を生成して管理端末34に送信する。これにより、障害通知画面が管理端末34のディスプレイに表示される。ただし、障害通知部228は、監視サーバ200に接続されたディスプレイに障害通知画面を表示させてもよい。障害通知には、相関関係の崩れに関与するデータ項目の項目名と、収集したログに含まれるそのデータ項目の値の傾向(例えば、そのデータ項目の値の平均や範囲など)が含まれる。また、因果関係検索部226によって因果関係が検索された場合、障害通知には、検索された因果関係の情報が含まれる。好ましくは、障害通知では障害の根本原因である「主原因」が特定される。
図5は、設定テーブルの例を示す図である。
設定テーブル131は、分析サーバ100の設定記憶部123に記憶されている。同様のテーブルが監視サーバ200の設定記憶部223にも記憶されている。設定テーブル131は、ログ名、サーバ名、イベントタイプおよび基軸フラグの項目を含む。
ログ名の項目には、分析サーバ100および監視サーバ200が収集すべきログの名称が登録される。サーバ名の項目には、分析サーバ100および監視サーバ200が収集すべきログを出力するサーバコンピュータの名称が登録される。
イベントタイプの項目には、サーバコンピュータにおいてログにレコードが追加される契機を示すログ種別が登録される。イベントタイプには、単独イベントと集団イベントと定期イベントがある。単独イベントは、1つのリクエストメッセージに対して特定の情報処理プロセスが1回実行され、当該1回の情報処理プロセスの実行に対して1つのレコードが追加されるログ種別である。集団イベントは、1つのリクエストメッセージに対して特定の情報処理プロセスが1回以上実行され、当該1回以上の情報処理プロセスの実行全体に対して1つのレコードが追加されるログ種別である。定期イベントは、リクエストメッセージに関係なく定期的にレコードが追加されるログ種別である。
基軸フラグの項目には、基軸ログであるか否かを示すフラグが登録される。基軸ログは、分析サーバ100および監視サーバ200が収集するログのうち集約ログを生成する際に起点として使用されるログである。基軸ログは通常は何れか1つのログである。
一例として、分析サーバ100および監視サーバ200は、APサーバ32からAPアクセスログを取得し、APサーバ32からメソッドログを取得し、DBサーバ33からSQLログを取得する。また、分析サーバ100および監視サーバ200は、Webサーバ31からリソースログ1を取得し、APサーバ32からリソースログ2を取得する。APアクセスログは単独イベントのログであり基軸ログである。メソッドログは集団イベントのログである。SQLログは単独イベントのログである。リソースログ1は定期イベントのログである。リソースログ2は定期イベントのログである。
図6は、収集されるログの例を示す図である。
APアクセスログ132、メソッドログ133、SQLログ134およびリソースログ135,136は、事前分析フェーズにおいて分析サーバ100のログ記憶部122に記憶される。これらのログは、分析サーバ100がWebサーバ31、APサーバ32およびDBサーバ33から収集したものである。運用監視フェーズにおいて、同様のログが監視サーバ200のログ記憶部222に記憶される。
APアクセスログ132は、Webサーバ31からAPサーバ32へのアプリケーション処理要求に基づいて生成されるレコードを含む。APアクセスログ132は、時刻、処理時間、URL(Uniform Resource Locator)およびリクエストIDの項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、要求を受け付けた時刻、結果データを返信した時刻、レコードを生成した時刻などである。処理時間の項目には、APサーバ32が要求を受け付けてから結果データを返信するまでに要した実行時間が登録される。URLの項目には、アプリケーション処理要求の契機となったクライアントからのリクエストメッセージで指定されたURLが登録される。APアクセスログ132のURLには、ディレクトリ名やファイル名に加えて、アプリケーション処理で使用されるパラメータが含まれることがある。リクエストIDの項目には、クライアントからのリクエストメッセージに応じて付与される識別子が登録される。
メソッドログ133は、APサーバ32のアプリケーション処理の中で行われた1以上のメソッド呼び出しに基づいて生成されるレコードを含む。メソッドログ133は、時刻、メソッド群およびリクエストIDの項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、最初のメソッド呼び出しの時刻、最後のメソッド呼び出しの時刻、レコードを生成した時刻などである。メソッド群の項目には、呼び出された1以上のメソッドそれぞれの名称と呼び出し回数とが登録される。APサーバ32が要求を受け付けてから結果データを返信するまでに、異なる2以上のメソッドが呼び出されることがあり、また、同じメソッドが2回以上呼び出されることがある。リクエストIDの項目には、リクエストメッセージに応じて付与される識別子が登録される。
SQLログ134は、DBサーバ33で発行されたクエリに基づいて生成されるレコードを含む。SQLログ134は、時刻、クエリおよびリクエストIDの項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、DBサーバ33がAPサーバ32からアクセスを受け付けた時刻、クエリを生成した時刻、クエリを実行した時刻、アクセス結果を返信した時刻、レコードを生成した時刻などである。クエリの項目には、SQLを用いて記述されたクエリが登録される。クエリは、例えば、データ検索を示すselect文、データ追加を示すinsert文、データ更新を示すupdate文またはデータ削除を示すdelete文を含む。リクエストIDの項目には、リクエストメッセージに応じて付与される識別子が登録される。
リソースログ135は、Webサーバ31のハードウェアリソースの使用状況を示すレコードを含む。リソースログ135は、時刻、CPU使用率およびRAM使用量の項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、ハードウェアリソースの使用状況が測定された時刻、レコードが生成された時刻などである。CPU使用率の項目には、Webサーバ31のCPU使用率が登録される。RAM使用量の項目には、Webサーバ31のRAM使用量が登録される。リソースログ135に含まれる複数のレコードは定期的に生成されたものである。
リソースログ136は、APサーバ32のハードウェアリソースの使用状況を示すレコードを含む。リソースログ136は、時刻、CPU使用率およびRAM使用量の項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、ハードウェアリソースの使用状況が測定された時刻、レコードが生成された時刻などである。CPU使用率の項目には、APサーバ32のCPU使用率が登録される。RAM使用量の項目には、APサーバ32のRAM使用量が登録される。リソースログ136に含まれる複数のレコードは定期的に生成されたものである。
図7は、第1の集約ログテーブルの例を示す図である。
分析サーバ100の情報集約部124は、ログ記憶部122に記憶された上記のログに基づいて集約ログテーブル137を生成する。監視サーバ200の情報集約部224も、ログ記憶部222に記憶されたログに基づいて同様のテーブルを生成する。
集約ログテーブル137は、収集された複数のログを結合した結果であり、収集された複数のログに含まれるデータ項目の一部または全部を含む。集約ログテーブル137の1つのレコードは、基軸ログであるAPアクセスログ132の1つのレコードに対応する。一例として、集約ログテーブル137は、s1cpu、s1ram、s2cpu、s2url、s2par、s2res、s2m1、s2m2およびs3sqlの項目を含む。
s1cpuの項目には、リソースログ135に記載されたCPU使用率が登録される。s1ramの項目には、リソースログ135に記載されたRAM使用量が登録される。s2cpuの項目には、リソースログ136に記載されたCPU使用率が登録される。s2urlの項目には、APアクセスログ132に記載されたURLのうちパラメータを除く部分、すなわち、ディレクトリ名やファイル名が登録される。s2parの項目には、APアクセスログ132に記載されたURLのうちパラメータ部分が登録される。
s2resの項目には、APアクセスログ132に記載された処理時間が登録される。s2m1の項目には、メソッドログ133に記載されたメソッド群の中のメソッドs2m1の呼び出し回数が登録される。s2m2の項目には、メソッドログ133に記載されたメソッド群の中のメソッドs2m2の呼び出し回数が登録される。s3sqlの項目には、SQLログ134に記載されたクエリが登録される。
情報集約部124は、収集されたログから次のようにして集約ログテーブル137を生成する。情報集約部124は、基軸ログであるAPアクセスログ132のレコード(基軸ログレコード)を1つ選択する。情報集約部124は、基軸ログ以外の他のログを1つ選択し、選択した他のログのイベントタイプを設定テーブル131を参照して判定する。イベントタイプが単独イベントまたは集団イベントである場合、情報集約部124は、基軸ログレコードと同じリクエストIDを含む他のレコードを他のログから検索し、基軸ログレコードと結合する。イベントタイプが定期イベントである場合、情報集約部124は、時刻が基軸ログレコードの時刻に最も近い他のレコードを他のログから検索し、基軸ログレコードと結合する。情報集約部124は、以上をAPアクセスログ132の各レコードに対して実行する。これにより、収集された複数のログのレコードの中で互いに関連するレコードが集約されて集約ログテーブル137が生成される。
モデル生成部125は、上記の集約ログテーブル137を用いることでデータ項目の間の相関関係を判定することができる。一方、因果関係判定部126は、上記の集約ログテーブル137とは異なる集約ログテーブルを用いて因果関係を判定する。
図8は、第2の集約ログテーブルの例を示す図である。
分析サーバ100の情報集約部124は、ログ記憶部122に記憶された上記のログに基づいて、集約ログテーブル137に加えて集約ログテーブル138を生成する。監視サーバ200の情報集約部224は、集約ログテーブル138と同様のテーブルを生成しなくてもよい。集約ログテーブル138は、集約ログテーブル137の項目に加えて、時刻1、時刻2、時刻3、時刻4および時刻5の項目を含む。
時刻1の項目には、s1cpuおよびs1ramの値に対応する時刻、すなわち、リソースログ135に記載された時刻が登録される。時刻2の項目には、s2cpuの値に対応する時刻、すなわち、リソースログ136に記載された時刻が登録される。時刻3の項目には、s2url、s2parおよびs2resの値に対応する時刻、すなわち、APアクセスログ132に記載された時刻が登録される。時刻4の項目には、s2m1およびs2m2の値に対応する時刻、すなわち、メソッドログ133に記載された時刻が登録される。時刻5の項目には、s3sqlの値に対応する時刻、すなわち、SQLログ134に記載された時刻が登録される。このように、各データ項目の値に対応づけて当該データ項目の値の出力タイミングを示す時刻が集約ログテーブル138に挿入される。
ただし、後述するように、イベントタイプが定期イベントであるログに記載された時刻は因果関係の判定に使用されない。単独イベントや集団イベントのレコードの出力タイミングと定期イベントのレコードの出力タイミングとの間には、一般に関連性が無いためである。図5,6の例の場合、リソースログ135,136に記載された時刻は因果関係の判定に使用されない。そこで、集約ログテーブル138では、イベントタイプが定期イベントであるログの時刻を省略してもよい。例えば、リソースログ135の時刻を示す時刻1の値や、リソースログ136の時刻を示す時刻2の値は省略してもよい。
図9は、相関テーブルと因果関係テーブルの例を示す図である。
相関テーブル141は、モデル生成部125によって生成される。因果関係テーブル142は、因果関係判定部126によって生成される。生成された相関テーブル141および因果関係テーブル142は、分析サーバ100のモデル記憶部127に記憶され、監視サーバ200のモデル記憶部227にコピーされる。
相関テーブル141は、データ項目1、データ項目2、文脈、サンプルサイズ、相関係数および因果関係IDの項目を含む。データ項目1の項目には、データ項目ペアを構成する一方のデータ項目の名称が登録される。データ項目2の項目には、データ項目ペアを構成する他方のデータ項目の名称が登録される。
文脈の項目には、相関係数の算出に用いる集約ログレコードを限定する条件が登録される。文脈は空であることもあるし空でないこともある。文脈が空であることは、他のデータ項目の値に関係なくデータ項目1とデータ項目2の間に高い相関が存在することを意味する。文脈が空でないことは、他のデータ項目の値が特定の条件を満たす場合のみデータ項目1とデータ項目2の間に高い相関が成立することを意味する。文脈の例として、データ項目s2parが「x=1」のように特定のパラメータ名とパラメータ値の組を含むこと、すなわち、URLに特定のパラメータ名とパラメータ値の組が付加されていることが挙げられる。また、文脈の例として、パラメータ値は限定されないが、データ項目s2parが「x」のように特定のパラメータ名を含むことが挙げられる。
サンプルサイズの項目には、相関係数の算出に用いた集約ログレコードの数が登録される。サンプルサイズは、集約ログテーブル137に含まれるレコードのうち文脈に該当するレコードの数である。例えば、文脈が「s2par:x=1」である場合、サンプルサイズはデータ項目s2parの値が「x=1」であるレコードの数である。相関係数の項目には、データ項目1とデータ項目2の間の相関の強さを示す相関係数が登録される。相関係数が大きいほど正の相関が強いことを意味する。相関テーブル141には、相関係数が閾値以上(例えば、0.7以上)であるデータ項目ペアが登録される。因果関係IDの項目には、因果関係テーブル142のレコードを識別するIDが登録される。
モデル生成部125は、以下のようにして集約ログテーブル137から相関テーブル141を生成する。モデル生成部125は、集約ログテーブル137に含まれる複数のデータ項目それぞれについて値の種類を列挙し、値の種類の数が閾値以下(例えば、20種類以下)であるデータ項目を抽出する。値の種類の数は、データ項目に現れる異なる値の数でもよいし、データ項目に現れる異なる値をグループ化した場合のグループ数でもよい。グループは、0〜80,81〜160,161以上のような値域でもよいし、0〜50パーセント,51〜100パーセントのような分布区間でもよい。また、グループは、先頭文字がa〜m,n〜zのような文字列条件でもよい。
モデル生成部125は、抽出したデータ項目を用いて文脈候補の集合を生成する。1つのデータ項目の1つの値は1つの文脈候補になる。また、2以上のデータ項目の値の組も1つの文脈候補になる。また、空の文脈も1つの文脈候補になる。
例えば、s1cpu、s1ram、s2cpu、s2res、s2m1、s2m2およびs3sqlの値の種類の数が閾値を超えており、s2urlおよびs2parの値の種類の数が閾値以下であるとする。その場合、集約ログテーブル137からs2urlおよびs2parが抽出される。集約ログテーブル137に現れるs2urlの値が{u1,u2}の2種類であり、集約ログテーブル137に現れるs2parの値が{p1,p2,p3}の3種類であるとする。すると、文脈候補として{ },{u1},{u2},{p1},{p2},{p3},{u1,p1},{u1,p2},{u1,p3},{u2,p1},{u2,p2},{u2,p3}の12個が生成される。
モデル生成部125は、集約ログテーブル137に含まれる複数のデータ項目の中から2つのデータ項目を選択してデータ項目ペアを抽出する。モデル生成部125は、上記で生成した文脈候補の集合から1つの文脈候補を選択し、選択した文脈候補に該当するレコードを集約ログテーブル137から検索する。モデル生成部125は、検索されたレコードからデータ項目ペアを構成する2つのデータ項目の値を抽出し、抽出した値を用いて2つのデータ項目の間の相関係数を算出する。モデル生成部125は、算出した相関係数が閾値以上である場合、そのデータ項目ペア、文脈、サンプルサイズおよび相関係数を相関テーブル141に登録する。モデル生成部125は、以上を様々なデータ項目ペアと文脈候補の組み合わせに対して実行することにより相関関係を判定する。
上記の処理を効率化するために、モデル生成部125は、相関係数の算出に用いる集約ログテーブル137のレコードを段階的に増やすようにしてもよい。例えば、モデル生成部125は、文脈候補に該当するレコードの中から少数のサンプルレコード(例えば、30個のサンプルレコード)をランダムに選択し、少数のサンプルレコードを用いて相関係数の概算値を算出する。相関係数の概算値が閾値未満である場合、モデル生成部125は、そのデータ項目ペアは相関が低いと判定し相関テーブル141に登録しない。一方、相関係数の概算値が閾値以上である場合、モデル生成部125は、文脈候補に該当する全てのレコードまたはサンプルレコードよりも多いレコードを用いて相関係数の精密値を算出する。概算値の閾値は、0.7など精密値の閾値と同じでもよいし、0.6など精密値の閾値より小さくてもよいし、0.8など精密値の閾値より大きくてもよい。
なお、集約ログテーブル138は集約ログテーブル137の内容を包含している。そのため、モデル生成部125は、集約ログテーブル137に代えて集約ログテーブル138を用いて相関テーブル141を生成してもよい。その場合、情報集約部124は、集約ログテーブル138のみを生成するようにしてもよい。
因果関係テーブル142は、因果関係ID、原因項目、結果項目および文脈の項目を含む。因果関係IDは、因果関係テーブル142に登録された因果関係を識別する識別子である。原因項目は、相関テーブル141が示すデータ項目1およびデータ項目2のうち、「原因」となるデータ項目である。結果項目は、相関テーブル141が示すデータ項目1およびデータ項目2のうち、「結果」となるデータ項目である。障害に起因する値の異常な変動は、原因項目から結果項目へと伝搬する。すなわち、障害によって「原因」のデータ項目の値が先に変化し、その影響によって「結果」のデータ項目の値が変化する。文脈の項目には、因果関係が生じる文脈が登録される。
因果関係判定部126は、以下のようにして集約ログテーブル138と相関テーブル141から因果関係テーブル142を生成する。因果関係判定部126は、相関テーブル141に登録された相関関係を1つ選択する。因果関係判定部126は、選択した相関関係の文脈に該当するレコードを集約ログテーブル138から検索し、検索されたレコードからデータ項目1に関する時刻とデータ項目2に関する時刻を抽出する。例えば、データ項目1がs2m2でありデータ項目2がs3sqlである場合、因果関係判定部126は、検索されたレコードから時刻4と時刻5を抽出する。
因果関係判定部126は、データ項目1の時刻とデータ項目2の時刻の大小の法則性を判定する。検索されたレコードの全てにおいてデータ項目1の時刻がデータ項目2の時刻より早い場合、因果関係判定部126は、データ項目1が原因項目でありデータ項目2が結果項目であると判定する。検索されたレコードの全てにおいてデータ項目1の時刻がデータ項目2の時刻より遅い場合、因果関係判定部126は、データ項目2が原因項目でありデータ項目1が結果項目であると判定する。上記の何れも成立しない場合、因果関係判定部126は、データ項目1とデータ項目2の間に因果関係は無いと判定する。
ただし、データ項目1とデータ項目2の少なくとも一方が、イベントタイプが定期イベントであるログに含まれるデータ項目である場合、因果関係判定部126は、時刻の大小に関係なくデータ項目1とデータ項目2の間に因果関係は無いと判定する。定期イベントのレコードが出力されるタイミングは、他のログのレコードが出力されるタイミングと連動しておらず、時刻から因果関係を推定することは困難であるためである。
なお、一部のデータ項目ペアについては、時刻以外の情報を用いて因果関係を推定できる場合がある。例えば、アプリケーションプログラムのソースコードを静的に解析することで、複数のメソッドの間の呼び出し関係を示すコールグラフを生成できる場合がある。その場合、データ項目s2m1,s2m2などメソッド呼び出しに関する2以上のデータ項目の因果関係は、コールグラフから判定することが可能である。
因果関係判定部126は、相関テーブル141の中の1つの相関関係について因果関係の判定に成功すると、その因果関係を因果関係テーブル142に登録する。また、因果関係判定部126は、因果関係テーブル142の因果関係と相関テーブル141の相関関係とが対応付けられるように、相関テーブル141に因果関係IDを登録する。
図10は、障害通知画面の例を示す図である。
監視サーバ200のモデル照合部225は、分析サーバ100からコピーされた相関テーブル141を用いてデータ項目の間の相関関係の崩れを検出する。相関関係の崩れが検出されると、監視サーバ200の因果関係検索部226は、分析サーバ100からコピーされた因果関係テーブル142を用いて、相関関係が崩れたデータ項目ペアの因果関係を検索する。監視サーバ200の障害通知部228は、管理端末34に障害通知を送信する。管理端末34は、障害通知に基づいて障害通知画面231をディスプレイに表示する。
障害通知画面231は、収集された最新のログに含まれるデータ項目について相関関係の崩れの発生状況を示している。一例として、障害通知画面231は、相関関係の崩れが検出されたデータ項目ペアを構成するデータ項目である異常項目の数を表示している。また、障害通知画面231は、異常項目の名称を表示している。また、障害通知画面231は、収集された最新のログに含まれる異常項目の値の統計情報を表示している。統計情報は、例えば、収集されたログに含まれる異常項目の値の平均または範囲である。また、障害通知画面231は、正常時に相関が高くなる条件である文脈を表示している。
また、障害通知画面231は、複数の異常項目の間の因果関係を表示している。因果関係は、「原因」の異常項目と「結果」の異常項目を特定することで可視化される。同一条件(同一文脈)のもとで複数の因果関係が成立する場合、複数の因果関係の連鎖状況が可視化され、障害の影響を最初に受けた「主原因」の異常項目が強調表示される。例えば、s2m2が原因項目でありs3sqlが結果項目である因果関係と、s3sqlが原因項目でありs2resが結果項目である因果関係とが可視化される。この場合、2つの因果関係を連結することが可能であり、s2m2が「主原因」として特定される。
障害通知画面231を視認した管理者は、例えば、主原因のデータ項目を他のデータ項目よりも優先的に検証することで、ハードウェアの故障やソフトウェアの設定ミスなどの障害原因を迅速に発見することが可能となる。主原因のデータ項目の検証では、例えば、主原因に関連するソースコードの閲覧、主原因に関連する設定ファイルの閲覧、主原因に関連する詳細ログの収集などが管理者によって行われる。
なお、相関関係の崩れが検出されたデータ項目ペアについて相関テーブル141に因果関係IDが登録されていない場合、障害通知画面231には因果関係は表示されない。また、図10の例では、複数の異常項目の間の因果関係を表形式で可視化しているが、グラフ形式で可視化してもよい。例えば、異常項目をノードとし因果関係をノード間の矢線として表現した有向グラフを障害通知画面231内に表示してもよい。
ここで、監視サーバ200は以下のようにして相関関係の崩れを検出する。監視サーバ200の情報集約部224は、ログ記憶部222に記憶された最新のログから、分析サーバ100の情報集約部124と同様の方法によって集約ログテーブル137と同様の集約ログテーブルを生成する。監視サーバ200のモデル照合部225は、コピーされた相関テーブル141に登録されている相関関係を1つ選択する。モデル照合部225は、選択した相関関係の文脈に該当するレコードを、情報集約部224が生成した集約ログテーブルから検索し、検索されたレコードからデータ項目1の値とデータ項目2の値を抽出する。モデル照合部225は、抽出したデータ項目1の値とデータ項目2の値から、データ項目1とデータ項目2の間の相関係数を算出する。
モデル照合部225は、算出した相関係数と相関テーブル141に登録されていた相関係数との間の解離度を算出し、解離度が閾値以上である場合に相関関係の崩れが発生したと判定する。以上を相関テーブル141に登録された各相関関係について実行することで、相関関係の崩れが発生した全てのデータ項目ペアを検出することができる。少なくとも1つのデータ項目ペアの相関関係が崩れた場合、障害が発生したと判定される。
2つの相関係数の解離度は、例えば、統計学に基づいて以下のように算出することができる。相関テーブル141に登録された相関係数をr1、相関テーブル141に登録されたサンプルサイズをn1、最新のログから算出された相関係数をr2、相関係数r2を算出した際のサンプルサイズをn2とする。モデル照合部225は、数式(1)に従って相関係数r1,r2からz1,z2を算出し、数式(2)に従ってz1,z2とサンプルサイズn1,n2からzを算出する。数式(2)のzは解離度を示す指標である。
Figure 0006823265
Figure 0006823265
モデル照合部225は、数式(3)のようにzの絶対値が1.96以上であるか判断する。数式(3)を満たす場合、サンプルサイズn1の母集合とサンプルサイズn2の母集合の間の母相関係数が、有意水準5%で異なると判断される。すなわち、数式(3)を満たす場合、モデル照合部225は、予め算出した相関係数r1と最新の相関係数r2とが十分に異なると判断し、相関関係の崩れが生じたと判断する。
Figure 0006823265
なお、相関関係の崩れの例として、CPU使用率は通常と同程度である一方、入出力回数が極端に多いかまたは処理時間が極端に長い場合が考えられる。この場合、入出力ハードウェアの故障などの入出力異常が疑われる。また、相関関係の崩れの例として、データベースのデータ量が通常より多い一方、メソッド呼び出しの繰り返し回数が極端に少ないかまたは極端に多い場合が考えられる。この場合、入出力ハードウェアの故障、データベースソフトウェアの不具合などの入出力異常が疑われる。
次に、分析サーバ100と監視サーバ200の処理手順を説明する。
図11は、事前分析の手順例を示すフローチャートである。
(S10)ログ収集部121は、複数のサーバコンピュータからログを収集してログ記憶部122に格納する。例えば、ログ収集部121は、Webサーバ31からリソースログ135を取得する。また、ログ収集部121は、APサーバ32からAPアクセスログ132、メソッドログ133およびリソースログ136を取得する。また、ログ収集部121は、DBサーバ33からSQLログ134を取得する。
(S11)情報集約部124は、設定テーブル131を参照して基軸ログを特定し、ログ記憶部122から基軸ログを読み出す。例えば、情報集約部124は、APアクセスログ132を基軸ログとして特定してログ記憶部122から読み出す。情報集約部124は、読み出した基軸ログからレコード(基軸ログレコード)を1つ選択する。
(S12)情報集約部124は、設定テーブル131を参照して基軸ログ以外の他ログを1つ選択し、選択した他ログをログ記憶部122から読み出す。
(S13)情報集約部124は、設定テーブル131を参照して、選択した他ログのイベントタイプが単独イベントまたは集団イベントであるか判断する。イベントタイプが単独イベントまたは集団イベントである場合はステップS14に処理が進み、イベントタイプが定期イベントである場合はステップS15に処理が進む。
(S14)情報集約部124は、ステップS12で選択した他ログから、ステップS11で選択した基軸ログレコードと同じリクエストIDをもつレコードを検索する。
(S15)情報集約部124は、ステップS12で選択した他ログから、ステップS11で選択した基軸ログレコードの時刻に最も近い時刻をもつレコードを検索する。
(S16)情報集約部124は、ステップS12において、設定テーブル131に定義された全ての他ログを選択したか判断する。全ての他ログを選択した場合はステップS17に処理が進み、未選択の他ログがある場合はステップS12に処理が進む。
(S17)情報集約部124は、ステップS11で選択した基軸ログレコードに対してステップS14,S15で検索された他ログのレコードを結合することで集約ログレコードを生成し、集約ログテーブル137,138に登録する。このとき、情報集約部124は、他ログに含まれるデータ項目のうち集約ログテーブル137,138に登録するデータ項目を限定してもよく、データ項目名を変更してもよい。集約ログテーブル137には時刻が含まれず、集約ログテーブル138には時刻が含まれる。
(S18)情報集約部124は、ステップS11において基軸ログに含まれる全てのレコードを選択したか判断する。全てのレコードを選択した場合はステップS19に処理が進み、未選択のレコードがある場合はステップS11に処理が進む。
(S19)モデル生成部125は、集約ログテーブル137に含まれるデータ項目のうち値の個数が閾値(例えば、20個)以下であるデータ項目を抽出する。
(S20)モデル生成部125は、ステップS19で抽出したデータ項目の値を用いて文脈候補の集合を生成する。文脈候補の集合には、空の文脈(何れのデータ項目の値も制限しない文脈)が含まれる。また、文脈候補の集合には、1つのデータ項目の値を特定の値に制限する文脈が含まれる。また、文脈候補の集合には、2以上のデータ項目の値をそれぞれ特定の値に制限する文脈が含まれる。
図12は、事前分析の手順例を示すフローチャート(続き1)である。
(S21)モデル生成部125は、集約ログテーブル137に含まれる複数のデータ項目のうちの2つのデータ項目の組であるデータ項目ペアを選択する。
(S22)モデル生成部125は、ステップS20で生成された文脈候補の集合の中から文脈候補を1つ選択する。
(S23)モデル生成部125は、ステップS22で選択した文脈候補に該当するレコードを集約ログテーブル137から検索する。
(S24)モデル生成部125は、ステップS23で検索されたレコードの中から所定数(例えば、30個)のサンプルレコードをランダムに抽出する。
(S25)モデル生成部125は、ステップS24で抽出したサンプルレコードを用いて、ステップS21で選択したデータ項目ペアの相関係数の概算値を算出する。
(S26)モデル生成部125は、ステップS25で算出した相関係数の概算値が閾値以上(例えば、0.6以上)であるか判断する。相関係数の概算値が閾値以上である場合、ステップS27に処理が進む。相関係数の概算値が閾値未満である場合、相関テーブル141にデータ項目ペアを登録せずステップS30に処理が進む。
(S27)モデル生成部125は、ステップS23で検索されたレコードのうちステップS24で抽出したサンプルレコードよりも多いレコードを用いて、データ項目ペアの相関係数の精密値を算出する。例えば、モデル生成部125は、ステップS23で検索されたレコードの全てを用いて相関係数の精密値を算出する。
(S28)モデル生成部125は、ステップS27で算出した相関係数の精密値が閾値以上(例えば、0.7以上)であるか判断する。相関係数の精密値が閾値以上である場合、ステップS29に処理が進む。相関係数の精密値が閾値未満である場合、相関テーブル141にデータ項目ペアを登録せずステップS30に処理が進む。
(S29)モデル生成部125は、ステップS21で選択したデータ項目ペアの相関関係を相関テーブル141に登録する。このとき、モデル生成部125は、データ項目ペアを構成する2つのデータ項目の名称と、ステップS22で選択した文脈候補と、ステップS27で使用したレコードの数と、算出した相関係数の精密値とを登録する。
(S30)モデル生成部125は、ステップS22において文脈候補の集合に含まれる全ての文脈候補を選択したか判断する。全ての文脈候補を選択した場合はステップS31に処理が進み、未選択の文脈候補がある場合はステップS22に処理が進む。
(S31)モデル生成部125は、ステップS21において全てのデータ項目ペアを選択したか判断する。全てのデータ項目ペアを選択した場合はステップS32に処理が進み、未選択のデータ項目ペアがある場合はステップS21に処理が進む。
図13は、事前分析の手順例を示すフローチャート(続き2)である。
(S32)因果関係判定部126は、モデル生成部125が生成した相関テーブル141から相関関係(相関テーブル141のレコード)を1つ選択する。
(S33)因果関係判定部126は、ステップS32で選択した相関関係の文脈に該当するレコードを集約ログテーブル138から検索する。
(S34)因果関係判定部126は、ステップS33で検索されたレコードから、ステップS32で選択した相関関係のデータ項目1に対応する時刻とデータ項目2に対応する時刻とを抽出する。因果関係判定部126は、データ項目1とデータ項目2の間で時刻を比較して時刻の大小の法則性を判定する。
(S35)因果関係判定部126は、データ項目ペアを構成する一方のデータ項目の時刻が他方のデータ項目の時刻より常に早いか判断する。この条件を満たす場合はステップS36に処理が進み、この条件を満たさない場合はステップS38に処理が進む。なお、2つのデータ項目の少なくとも一方が、イベントタイプが定期イベントであるログから抽出されたデータ項目である場合、上記の条件を満たさないと判断してよい。
(S36)因果関係判定部126は、2つのデータ項目のうち時刻が早い方のデータ項目を原因項目と判定し、時刻が遅い方のデータ項目を結果項目と判定する。
(S37)因果関係判定部126は、ステップS32で選択した相関関係のデータ項目ペアについて因果関係が成立すると判定し、因果関係を因果関係テーブル142に登録する。このとき、因果関係判定部126は、ステップS36で判定した原因項目および結果項目の名称と、ステップS32で選択した相関関係の文脈とを登録する。また、因果関係判定部126は、ステップS32で選択した相関関係と因果関係テーブル142に登録した因果関係とが関連付けられるように、相関テーブル141に因果関係IDを登録する。
(S38)因果関係判定部126は、ステップS32において相関テーブル141から全ての相関関係を選択したか判断する。全ての相関関係を選択した場合はステップS39に処理が進み、未選択の相関関係がある場合はステップS32に処理が進む。
(S39)モデル送信部128は、相関テーブル141と因果関係テーブル142を監視サーバ200に送信し、モデル記憶部227に記憶させる。
図14は、運用監視の手順例を示すフローチャートである。
(S40)ログ収集部221は、前述のステップS10と同様にして、複数のサーバコンピュータからログを収集してログ記憶部222に格納する。例えば、ログ収集部221は、Webサーバ31からリソースログを取得する。また、ログ収集部221は、APサーバ32からAPアクセスログ、メソッドログおよびリソースログを取得する。また、ログ収集部221は、DBサーバ33からSQLログを取得する。
(S41)情報集約部224は、前述のステップS11〜18と同様にして集約ログテーブルを生成する。この集約ログテーブルは時刻を含まなくてよい。生成方法の詳細はステップS11〜18と同様であるため説明を省略する。
(S42)モデル照合部225は、監視サーバ200にコピーされた相関テーブル141から相関関係(相関テーブル141のレコード)を1つ選択する。
(S43)モデル照合部225は、ステップS42で選択した相関関係の文脈に該当するレコードを、ステップS41で生成された集約ログテーブルから検索する。
(S44)モデル照合部225は、ステップS43で検索されたレコードから、ステップS42で選択した相関関係のデータ項目1に対応する値とデータ項目2に対応する値を抽出する。モデル照合部225は、抽出した値を用いて、データ項目ペアを構成するデータ項目1とデータ項目2の間の現在の相関係数を算出する。
(S45)モデル照合部225は、ステップS44で算出した現在の相関係数とステップS42で選択した相関関係が示す過去の相関係数との間の解離度を算出する。例えば、モデル照合部225は、過去のサンプルサイズn1と過去の相関係数r1と現在のサンプルサイズn2と現在の相関係数r2から、前述の数式(1)および数式(2)に基づいてzを算出する。この場合、zの絶対値が解離度の指標値となる。
(S46)モデル照合部225は、ステップS45で算出した解離度が閾値以上であるか判断する。例えば、モデル照合部225は、前述の数式(3)に基づいてzの絶対値が1.96以上であるか判断する。解離度が閾値以上である場合はステップS47に処理が進み、解離度が閾値未満である場合はステップS48に処理が進む。
(S47)モデル照合部225は、ステップS42で選択した相関関係が示すデータ項目ペアについて相関関係の崩れが発生していると判定する。
(S48)モデル照合部225は、ステップS42において相関テーブル141から全ての相関関係を選択したか判断する。全ての相関関係を選択した場合はステップS49に処理が進み、未選択の相関関係がある場合はステップS42に処理が進む。
(S49)因果関係検索部226は、因果関係テーブル142から、相関関係の崩れが検出されたデータ項目ペアそれぞれの因果関係を検索する。例えば、因果関係検索部226は、相関関係に対応付けられた因果関係IDを相関テーブル141から取得し、その因果関係IDによって識別される因果関係を因果関係テーブル142から選択する。相関関係に対応する因果関係IDが相関テーブル141に登録されていない場合、因果関係検索部226は、そのデータ項目ペアについて因果関係が成立しないとみなす。
(S50)因果関係検索部226は、複数の相関関係の崩れが検出された場合、文脈が同じ相関関係が同じグループに属するように、文脈に基づいて複数の相関関係をグループ化する。因果関係検索部226は、グループ毎に、当該グループに属する相関関係に対応する因果関係を連結して障害の主原因を判定する。
(S51)障害通知部228は、障害通知を管理端末34に送信する。障害通知は、相関関係の崩れが検出されたデータ項目ペアを構成するデータ項目の名称、最新のログにおける当該データ項目の統計値、および、相関関係の崩れの検出に用いた文脈を含む。障害通知は、複数のデータ項目のうち主原因のデータ項目を示す情報を含むことがある。管理端末34は、受信した障害通知に基づいて障害通知画面231を表示する。
第2の実施の形態の情報処理システムによれば、分析サーバ100により、複数のサーバコンピュータによって出力される複数のログが集約されて互いに関連するログレコードが結合される。集約ログに現れるデータ項目ペアと文脈の組み合わせに対して相関係数が算出され、相関係数が高い相関関係が抽出される。また、相関係数が高い相関関係について、集約ログに含まれる時刻情報に基づいて2つのデータ項目の間の因果関係が推定される。そして、監視サーバ200により、最新のログから相関関係の崩れが検出される。複数の相関関係の崩れが検出された場合、予め推定された因果関係に基づいて障害原因に最も近い主原因のデータ項目が判定され、主原因のデータ項目が表示される。
これにより、障害を示すログの条件を人手で定義しておかなくても障害を検出することが可能となる。また、文脈を限定して相関係数を算出するため、特定の条件のもとでのみ2つのデータ項目の相関が高くなるような相関関係を抽出でき、障害検出の精度が向上する。また、複数のデータ項目の間の因果関係が事前に推定されるため、複数の相関関係の崩れが同時に検出された場合であっても、障害原因に近いデータ項目の判定精度が向上する。よって、障害原因に近いデータ項目を優先的に調査するなど管理者の障害対応を効率化することができ、障害対応に有用な情報を出力することができる。
10 分析装置
11 記憶部
12 処理部
13,14,15,16 ログ
13a,14a データ項目
13b,14b 時刻項目
17 相関関係
18 影響方向
19 異常情報
20 情報処理システム

Claims (6)

  1. コンピュータに、
    複数回の第1の処理イベントに対応する複数の第1のレコードを含んでおり、前記複数の第1のレコードそれぞれは1つの第1の処理イベントに関連する値を示す第1のデータ項目と前記1つの第1の処理イベントの発生時刻を示す第1の時刻項目とを含む第1のログと、複数回の第2の処理イベントに対応する複数の第2のレコードを含んでおり、前記複数の第2のレコードそれぞれは1つの第2の処理イベントに関連する値を示す第2のデータ項目と前記1つの第2の処理イベントの発生時刻を示す第2の時刻項目とを含む第2のログとを取得し、
    前記第1のログの中の2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1のデータ項目の値前記第2のログの中の当該第1のレコードに対応する第2のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の相関関係を算出し、前記2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1の時刻項目の値と当該第1のレコードに対応する第2のレコードに含まれる前記第2の時刻項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の影響方向を判定し、
    それぞれが前記第1のデータ項目を含む複数の第3のレコードをんでおり、前記第1のログより後に生成された第3のログと、それぞれが前記第2のデータ項目を含む複数の第4のレコードをんでおり、前記第2のログより後に生成された第4のログとを取得し、
    前記第3のログの中の2以上の第3のレコードそれぞれについて当該第3のレコードに含まれる前記第1のデータ項目の値と前記第4のログの中の当該第3のレコードに対応する第4のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第1のデータ項目および前記第2のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する、
    処理を実行させる分析プログラム。
  2. 前記コンピュータに更に、前記第2のデータ項目と第3のデータ項目の間の他の相関関係を算出し、前記第2のデータ項目と前記第3のデータ項目の間の他の影響方向を判定する処理を実行させ
    前記異常情報の出力では、前記相関関係が満たされずかつ前記他の相関関係が満たされない場合、前記影響方向および前記他の影響方向に基づいて、前記第1のデータ項目、前記第2のデータ項目および前記第3のデータ項目のうち異常の最初の影響元を前記原因データ項目として判定する、
    請求項1記載の分析プログラム
  3. 前記複数の第1のレコードそれぞれまたは前記複数の第2のレコードそれぞれは第3のデータ項目を含み、
    前記相関関係の算出では、前記第1のデータ項目の値と前記第2のデータ項目の値と前記第3のデータ項目の値との対応に基づいて、前記第3のデータ項目の値が特定条件を満たす場合に前記第1のデータ項目と前記第2のデータ項目の間に成立する条件付き相関関係を前記相関関係として検出する、
    請求項1記載の分析プログラム
  4. 複数回の第1の処理イベントに対応する複数の第1のレコードを含んでおり、前記複数の第1のレコードそれぞれは1つの第1の処理イベントに関連する値を示す第1のデータ項目と前記1つの第1の処理イベントの発生時刻を示す第1の時刻項目とを含む第1のログと、複数回の第2の処理イベントに対応する複数の第2のレコードを含んでおり、前記複数の第2のレコードそれぞれは1つの第2の処理イベントに関連する値を示す第2のデータ項目と前記1つの第2の処理イベントの発生時刻を示す第2の時刻項目とを含む第2のログと、を記憶する記憶部と、
    前記第1のログの中の2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1のデータ項目の値前記第2のログの中の当該第1のレコードに対応する第2のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の相関関係を算出し、前記2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1の時刻項目の値と当該第1のレコードに対応する第2のレコードに含まれる前記第2の時刻項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の影響方向を判定し、
    それぞれが前記第1のデータ項目を含む複数の第3のレコードをんでおり、前記第1のログより後に生成された第3のログと、それぞれが前記第2のデータ項目を含む複数の第4のレコードをんでおり、前記第2のログより後に生成された第4のログとを取得し、
    前記第3のログの中の2以上の第3のレコードそれぞれについて当該第3のレコードに含まれる前記第1のデータ項目の値と前記第4のログの中の当該第3のレコードに対応する第4のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第1のデータ項目および前記第2のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する処理部と、
    を有する分析装置。
  5. 複数回の第1の処理イベントに対応する複数の第1のレコードを含んでおり、前記複数の第1のレコードそれぞれは1つの第1の処理イベントに関連する値を示す第1のデータ項目と前記1つの第1の処理イベントの発生時刻を示す第1の時刻項目とを含む第1のログと、複数回の第2の処理イベントに対応する複数の第2のレコードを含んでおり、前記複数の第2のレコードそれぞれは1つの第2の処理イベントに関連する値を示す第2のデータ項目と前記1つの第2の処理イベントの発生時刻を示す第2の時刻項目とを含む第2のログとを取得し、
    前記第1のログの中の2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1のデータ項目の値前記第2のログの中の当該第1のレコードに対応する第2のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の相関関係を算出し、前記2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1の時刻項目の値と当該第1のレコードに対応する第2のレコードに含まれる前記第2の時刻項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の影響方向を判定する第1の処理装置と、
    それぞれが前記第1のデータ項目を含む複数の第3のレコードをんでおり、前記第1のログより後に生成された第3のログと、それぞれが前記第2のデータ項目を含む複数の第4のレコードをんでおり、前記第2のログより後に生成された第4のログとを取得し、
    前記第3のログの中の2以上の第3のレコードそれぞれについて当該第3のレコードに含まれる前記第1のデータ項目の値と前記第4のログの中の当該第3のレコードに対応する第4のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第1のデータ項目および前記第2のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する第2の処理装置と、
    を有する分析システム。
  6. コンピュータが実行する分析方法であって、
    複数回の第1の処理イベントに対応する複数の第1のレコードを含んでおり、前記複数の第1のレコードそれぞれは1つの第1の処理イベントに関連する値を示す第1のデータ項目と前記1つの第1の処理イベントの発生時刻を示す第1の時刻項目とを含む第1のログと、複数回の第2の処理イベントに対応する複数の第2のレコードを含んでおり、前記複数の第2のレコードそれぞれは1つの第2の処理イベントに関連する値を示す第2のデータ項目と前記1つの第2の処理イベントの発生時刻を示す第2の時刻項目とを含む第2のログとを取得し、
    前記第1のログの中の2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1のデータ項目の値前記第2のログの中の当該第1のレコードに対応する第2のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の相関関係を算出し、前記2以上の第1のレコードそれぞれについて当該第1のレコードに含まれる前記第1の時刻項目の値と当該第1のレコードに対応する第2のレコードに含まれる前記第2の時刻項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目の間の影響方向を判定し、
    それぞれが前記第1のデータ項目を含む複数の第3のレコードをんでおり、前記第1のログより後に生成された第3のログと、それぞれが前記第2のデータ項目を含む複数の第4のレコードをんでおり、前記第2のログより後に生成された第4のログとを取得し、
    前記第3のログの中の2以上の第3のレコードそれぞれについて当該第3のレコードに含まれる前記第1のデータ項目の値と前記第4のログの中の当該第3のレコードに対応する第4のレコードに含まれる前記第2のデータ項目の値との比較に基づいて、前記第1のデータ項目と前記第2のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第1のデータ項目および前記第2のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する、
    分析方法。
JP2017062208A 2017-03-28 2017-03-28 分析装置、分析システム、分析方法および分析プログラム Active JP6823265B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017062208A JP6823265B2 (ja) 2017-03-28 2017-03-28 分析装置、分析システム、分析方法および分析プログラム
US15/922,373 US10592327B2 (en) 2017-03-28 2018-03-15 Apparatus, system, and method for analyzing logs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017062208A JP6823265B2 (ja) 2017-03-28 2017-03-28 分析装置、分析システム、分析方法および分析プログラム

Publications (2)

Publication Number Publication Date
JP2018165857A JP2018165857A (ja) 2018-10-25
JP6823265B2 true JP6823265B2 (ja) 2021-02-03

Family

ID=63670496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017062208A Active JP6823265B2 (ja) 2017-03-28 2017-03-28 分析装置、分析システム、分析方法および分析プログラム

Country Status (2)

Country Link
US (1) US10592327B2 (ja)
JP (1) JP6823265B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6720788B2 (ja) * 2016-09-07 2020-07-08 富士通株式会社 ログ管理装置及びログ管理プログラム
CN111279331B (zh) * 2017-11-06 2023-11-10 株式会社力森诺科 因果句解析装置、因果句解析系统、程序以及因果句解析方法
JP7110063B2 (ja) * 2018-10-31 2022-08-01 株式会社日立ソリューションズ ログ分析支援システムおよびログ分析支援方法
US11132280B2 (en) * 2019-02-08 2021-09-28 Microsoft Technology Licensing, Llc Automatically identifying and highlighting differences between historic traces
CN110362473B (zh) * 2019-05-31 2023-07-11 口口相传(北京)网络技术有限公司 测试环境的优化方法及装置、存储介质、终端
US11113131B2 (en) * 2019-07-29 2021-09-07 EMC IP Holding Company LLC Method for collecting performance data in a computer system
US10915648B1 (en) 2020-04-03 2021-02-09 Imperva, Inc. Enrichment of database logs
EP3958124B1 (en) * 2020-07-30 2023-08-30 GE Aviation Systems LLC Flight management system and method for reporting an intermitted error

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4980581B2 (ja) * 2004-04-16 2012-07-18 新日鉄ソリューションズ株式会社 性能監視装置、性能監視方法及びプログラム
JP2006146668A (ja) * 2004-11-22 2006-06-08 Ntt Data Corp 運用管理支援装置及び運用管理支援プログラム
JP4148524B2 (ja) * 2005-10-13 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 相関性を評価するシステム、および、その方法
US20110314148A1 (en) * 2005-11-12 2011-12-22 LogRhythm Inc. Log collection, structuring and processing
JP4872944B2 (ja) * 2008-02-25 2012-02-08 日本電気株式会社 運用管理装置、運用管理システム、情報処理方法、及び運用管理プログラム
US9384112B2 (en) * 2010-07-01 2016-07-05 Logrhythm, Inc. Log collection, structuring and processing
US8874963B2 (en) 2010-12-20 2014-10-28 Nec Corporation Operations management apparatus, operations management method and program thereof
CN104137078B (zh) 2012-01-23 2017-03-22 日本电气株式会社 操作管理设备、操作管理方法和程序
US9697100B2 (en) * 2014-03-10 2017-07-04 Accenture Global Services Limited Event correlation
JP6196196B2 (ja) * 2014-08-20 2017-09-13 日本電信電話株式会社 ログ間因果推定装置、システム異常検知装置、ログ分析システム、及びログ分析方法

Also Published As

Publication number Publication date
JP2018165857A (ja) 2018-10-25
US10592327B2 (en) 2020-03-17
US20180285184A1 (en) 2018-10-04

Similar Documents

Publication Publication Date Title
JP6823265B2 (ja) 分析装置、分析システム、分析方法および分析プログラム
US11379475B2 (en) Analyzing tags associated with high-latency and error spans for instrumented software
US7673291B2 (en) Automatic database diagnostic monitor architecture
US10664837B2 (en) Method and system for real-time, load-driven multidimensional and hierarchical classification of monitored transaction executions for visualization and analysis tasks like statistical anomaly detection
US11775501B2 (en) Trace and span sampling and analysis for instrumented software
US10467084B2 (en) Knowledge-based system for diagnosing errors in the execution of an operation
US7376682B2 (en) Time model
US7184935B1 (en) Determining and annotating a signature of a computer resource
CN105868256A (zh) 处理用户行为数据的方法和系统
US20100017486A1 (en) System analyzing program, system analyzing apparatus, and system analyzing method
WO2015114753A1 (ja) 分析装置および分析方法
US8639560B2 (en) Brand analysis using interactions with search result items
Lee et al. Eadro: An end-to-end troubleshooting framework for microservices on multi-source data
US11036701B2 (en) Data sampling in a storage system
JP6565628B2 (ja) 検索プログラム、検索装置および検索方法
US10997171B2 (en) Database performance analysis based on a random archive
US8732323B2 (en) Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method
US8326977B2 (en) Recording medium storing system analyzing program, system analyzing apparatus, and system analyzing method
CN115580528A (zh) 故障根因定位方法、装置、设备及可读存储介质
JP4810113B2 (ja) データベースチューニング装置及びデータベースチューニング方法並びにプログラム
TW202222056A (zh) 用於實時分析虛擬伺服器記錄的電腦實施系統以及方法
CN113656247A (zh) 一种服务监控方法、装置、电子设备及可读存储介质
JP2009134535A (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラム
WO2021217119A1 (en) Analyzing tags associated with high-latency and error spans for instrumented software

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201221

R150 Certificate of patent or registration of utility model

Ref document number: 6823265

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150