(57)【要約】【課題】障害原因に近いデータ項目の判定精度を向上させる。【解決手段】処理部１２は、ログ１３のデータ項目１３ａの値およびログ１４のデータ項目１４ａの値に基づいて相関関係１７を算出し、時刻項目１３ｂの値と時刻項目１４ｂの値との比較に基づいて影響方向１８を判定する。処理部１２は、ログ１３より後に生成されたログ１５とログ１４より後に生成されたログ１６とを取得する。処理部１２は、ログ１５のデータ項目１３ａの値とログ１６のデータ項目１４ａの値とが相関関係１７を満たすか判定し、相関関係１７が満たされない場合、影響方向１８に基づいてデータ項目１３ａ，１４ａのうち異常の影響元である原因データ項目を示す異常情報１９を出力する。【選択図】図１
2018165857.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理イベントに関連する値を示す第１のデータ項目と前記第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、第２の処理イベントに関連する値を示す第２のデータ項目と前記第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログと、を記憶する記憶部と、
前記第１のログの前記第１のデータ項目の値および前記第２のログの前記第２のデータ項目の値に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記第１の時刻項目の値と前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定し、
前記第１のデータ項目を含み前記第１のログより後に生成された第３のログと、前記第２のデータ項目を含み前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの前記第１のデータ項目の値と前記第４のログの前記第２のデータ項目の値とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する処理部と、
を有する分析装置。
【請求項２】
前記処理部は更に、前記第２のデータ項目と第３のデータ項目の間の他の相関関係を算出し、前記第２のデータ項目と前記第３のデータ項目の間の他の影響方向を判定し、
前記異常情報の出力では、前記処理部は、前記相関関係が満たされずかつ前記他の相関関係が満たされない場合、前記影響方向および前記他の影響方向に基づいて、前記第１のデータ項目、前記第２のデータ項目および前記第３のデータ項目のうち異常の最初の影響元を前記原因データ項目として判定する、
請求項１記載の分析装置。
【請求項３】
前記第１のログまたは前記第２のログは第３のデータ項目を含み、
前記相関関係の算出では、前記処理部は、前記第１のデータ項目の値と前記第２のデータ項目の値と前記第３のデータ項目の値との対応に基づいて、前記第３のデータ項目の値が特定条件を満たす場合に前記第１のデータ項目と前記第２のデータ項目の間に成立する条件付き相関関係を前記相関関係として検出する、
請求項１記載の分析装置。
【請求項４】
第１の処理イベントに関連する値を示す第１のデータ項目と前記第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、第２の処理イベントに関連する値を示す第２のデータ項目と前記第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得し、
前記第１のログの前記第１のデータ項目の値および前記第２のログの前記第２のデータ項目の値に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記第１の時刻項目の値と前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定する第１の処理装置と、
前記第１のデータ項目を含み前記第１のログより後に生成された第３のログと、前記第２のデータ項目を含み前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの前記第１のデータ項目の値と前記第４のログの前記第２のデータ項目の値とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する第２の処理装置と、
を有する分析システム。
【請求項５】
コンピュータが実行する分析方法であって、
第１の処理イベントに関連する値を示す第１のデータ項目と前記第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、第２の処理イベントに関連する値を示す第２のデータ項目と前記第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得し、
前記第１のログの前記第１のデータ項目の値および前記第２のログの前記第２のデータ項目の値に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記第１の時刻項目の値と前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定し、
前記第１のデータ項目を含み前記第１のログより後に生成された第３のログと、前記第２のデータ項目を含み前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの前記第１のデータ項目の値と前記第４のログの前記第２のデータ項目の値とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する、
分析方法。
【請求項６】
コンピュータに、
第１の処理イベントに関連する値を示す第１のデータ項目と前記第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、第２の処理イベントに関連する値を示す第２のデータ項目と前記第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得し、
前記第１のログの前記第１のデータ項目の値および前記第２のログの前記第２のデータ項目の値に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記第１の時刻項目の値と前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定し、
前記第１のデータ項目を含み前記第１のログより後に生成された第３のログと、前記第２のデータ項目を含み前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの前記第１のデータ項目の値と前記第４のログの前記第２のデータ項目の値とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する、
処理を実行させる分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分析装置、分析システム、分析方法および分析プログラムに関する。
【背景技術】
【０００２】
情報処理システムに含まれる各種機器から稼働状況を示すログを収集し、収集したログを分析して情報処理システムの障害を自動的に検出することが行われている。障害を検出する方法として、障害を示すログの条件を人手で定義しておく代わりに、正常時のログを分析して正常時のログの特徴を抽出し、その特徴と異なる傾向のログが採取されたときに障害が発生したと推定するアノマリー分析がある。アノマリー分析の１つとして、収集するログに含まれる複数のデータ項目の間の相関関係を正常時に判定し、判定した相関関係に反するログが採取されたときに障害が発生したと推定する方法が考えられる。
【０００３】
例えば、情報処理システムの障害を検出する運用管理装置が提案されている。提案の運用管理装置は、正常時においてプロセッサ使用率・メモリ使用量・ディスク使用量などの複数の性能指標の性能値を測定し、異なる２つの性能指標の組毎に性能値の相関関係を示す相関モデルを生成しておく。運用管理装置は、各性能指標の最新の性能値を監視し、相関モデルが示す相関関係と最新の性能値とを照合して相関関係に反する性能値が測定されたこと（相関関係の崩れ）を検出する。運用管理装置は、何れの性能指標の組について相関関係の崩れが検出されたかに基づいて障害原因を判定する。
【０００４】
複数の相関関係の崩れが同時に検出された場合、提案の運用管理装置は、各性能指標について複数の相関関係の崩れのうち当該性能指標が関与している相関関係の崩れの個数をカウントする。運用管理装置は、カウントした個数に基づいて複数の相関関係の崩れの中心に位置する性能指標を特定し、中心の性能指標に基づいて障害原因を絞り込む。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１２／０８６８２４号
【特許文献２】国際公開第２０１３／１１１５６０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
障害発生時には１つの障害原因に起因して、ログに含まれる複数のデータ項目の値が連鎖的に異常な変動を示すことがある。例えば、障害によって前段サーバの稼働状態または情報処理プロセスが変化し、その影響によって連鎖的に後段サーバの稼働状態または情報処理プロセスが変化することがある。これにより複数の相関関係の崩れが同時に検出されることがある。しかし、従来のアノマリー分析では複数のデータ項目の間で相関関係が崩れたことが検出されるだけであるため、このような場合に障害原因に最も近いデータ項目を判定することが難しいという問題がある。このため、障害原因を適切に絞り込むことが容易でなく、障害原因の調査の負担が大きくなるおそれがある。
【０００７】
なお、上記の特許文献２では複数の相関関係の崩れの中心に位置するデータ項目を特定して障害原因を推定している。しかし、複数の相関関係の崩れが連鎖的に起こる可能性がある場合、その中心に位置するデータ項目が障害原因に最も近いとは限らない。
【０００８】
１つの側面では、本発明は、障害原因に近いデータ項目の判定精度が向上する分析装置、分析システム、分析方法および分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、記憶部と処理部とを有する分析装置が提供される。記憶部は、第１の処理イベントに関連する値を示す第１のデータ項目と第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログを記憶する。また、記憶部は、第２の処理イベントに関連する値を示す第２のデータ項目と第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログを記憶する。処理部は、第１のログの第１のデータ項目の値および第２のログの第２のデータ項目の値に基づいて、第１のデータ項目と第２のデータ項目の間の相関関係を算出し、第１の時刻項目の値と第２の時刻項目の値との比較に基づいて、第１のデータ項目と第２のデータ項目の間の影響方向を判定する。処理部は、第１のデータ項目を含み第１のログより後に生成された第３のログと、第２のデータ項目を含み第２のログより後に生成された第４のログとを取得する。処理部は、第３のログの第１のデータ項目の値と第４のログの第２のデータ項目の値とが相関関係を満たすか判定し、相関関係が満たされない場合、影響方向に基づいて、第１のデータ項目および第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する。
【００１０】
また、１つの態様では、第１の処理装置と第２の処理装置とを有する分析システムが提供される。また、１つの態様では、コンピュータが実行する分析方法が提供される。また、１つの態様では、コンピュータに実行させる分析プログラムが提供される。
【発明の効果】
【００１１】
１つの側面では、障害原因に近いデータ項目の判定精度が向上する。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の分析装置の例を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】分析サーバのハードウェア例を示すブロック図である。
【図４】分析サーバと監視サーバの機能例を示すブロック図である。
【図５】設定テーブルの例を示す図である。
【図６】収集されるログの例を示す図である。
【図７】第１の集約ログテーブルの例を示す図である。
【図８】第２の集約ログテーブルの例を示す図である。
【図９】相関テーブルと因果関係テーブルの例を示す図である。
【図１０】障害通知画面の例を示す図である。
【図１１】事前分析の手順例を示すフローチャートである。
【図１２】事前分析の手順例を示すフローチャート（続き１）である。
【図１３】事前分析の手順例を示すフローチャート（続き２）である。
【図１４】運用監視の手順例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１４】
図１は、第１の実施の形態の分析装置の例を示す図である。
第１の実施の形態の分析装置１０は、情報処理システム２０を監視して障害を検出し、障害原因の調査に役立つ情報を出力する。具体的には、分析装置１０は、情報処理システム２０からログを収集し、収集したログの異常をアノマリー分析によって検出して異常情報を出力する。分析装置１０はクライアント装置でもよいしサーバ装置でもよい。
【００１５】
分析装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性のストレージでもよい。処理部１２は、例えば、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。ただし、処理部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１でもよい）に記憶されたプログラムを実行する。プログラムには分析プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００１６】
分析装置１０は、情報処理システム２０からログ１３，１４を取得して記憶部１１に格納する。ログ１３，１４は、例えば、情報処理システム２０が有するサーバコンピュータによって生成される。ログ１３，１４は、異なる装置によって生成されたログでもよいし同じ装置によって生成されたログでもよい。ログ１３は、それぞれ第１の処理イベントに応じて生成された１以上のレコードを含む。ログ１３の各レコードは、第１の処理イベントに関連する値を示すデータ項目１３ａと、第１の処理イベントの発生時刻を示す時刻項目１３ｂとを含む。ログ１４は、それぞれ第２の処理イベントに応じて生成された１以上のレコードを含む。ログ１４の各レコードは、第２の処理イベントに関連する値を示すデータ項目１４ａと、第２の処理イベントの発生時刻を示す時刻項目１４ｂとを含む。
【００１７】
上記の第１の処理イベントおよび第２の処理イベントは、例えば、リクエストメッセージの受信、メソッドの呼び出し、データベースに対するクエリの発行など、情報処理システム２０の内部における所定の情報処理プロセスの実行を示す。データ項目１３ａ，１４ａは、例えば、リクエストメッセージに含まれるパラメータの値、メソッド呼び出し回数、アクセスしたデータベーステーブルの数、情報処理プロセスの実行時間、その時点のＣＰＵ使用率やＲＡＭ使用量など、情報処理の実行状況を示す。
【００１８】
また、分析装置１０は、ログ１３，１４を取得した後、情報処理システム２０から更にログ１５，１６を取得して記憶部１１に格納する。ログ１３，１４とログ１５，１６とは、異なる装置によって生成されてもよいし同じ装置によって生成されてもよい。ただし、ログ１５は、ログ１３と同一または類似する機能をもつ装置によってログ１３よりも後に生成される。ログ１６は、ログ１４と同一または類似する機能をもつ装置によってログ１４よりも後に生成される。例えば、ログ１３，１４は試験運用時に生成されたログであり、ログ１５，１６は本番運用時に生成されたログである。
【００１９】
ログ１５は、それぞれ第１の処理イベントに応じて生成された１以上のレコードを含む。ログ１５の各レコードは、ログ１３のレコードと同様にデータ項目１３ａを含む。ログ１５の各レコードは、更に時刻項目１３ｂを含んでもよく、ログ１３のレコードと同一のフォーマットであってもよい。ログ１６の各レコードは、ログ１４のレコードと同様にデータ項目１４ａを含む。ログ１６の各レコードは、更に時刻項目１４ｂを含んでもよく、ログ１４のレコードと同一のフォーマットであってもよい。
【００２０】
処理部１２は、情報処理システム２０からログ１３，１４が取得されると、データ項目１３ａとデータ項目１４ａの間の相関関係１７を算出する。相関関係１７は、ログ１３に含まれるレコードのデータ項目１３ａの値とログ１４に含まれるレコードのデータ項目１４ａの値とに基づいて算出される。相関関係１７は、データ項目１３ａの値とデータ項目１４ａの値の相関係数を含んでもよい。また、相関関係１７は、ログ１３，１４に含まれる他のデータ項目の値が特定条件を満たす場合のみデータ項目１３ａとデータ項目１４ａの間に強い相関が成立することを示す条件付き相関関係であってもよい。
【００２１】
また、処理部１２は、情報処理システム２０からログ１３，１４が取得されると、データ項目１３ａとデータ項目１４ａの間の影響方向１８を判定する。影響方向１８は、ログ１３に含まれるレコードの時刻項目１３ｂの値とログ１４に含まれるレコードの時刻項目１４ｂの値との比較に基づいて判定される。影響方向１８は、データ項目の値の変動が伝搬する方向を示しており、因果関係と言うこともできる。影響方向１８が判定されると、データ項目１３ａ，１４ａのうちの一方が「原因データ項目」になり他方が「結果データ項目」になる。例えば、ログ１３に含まれるレコードの時刻が、当該レコードに対応するログ１４に含まれるレコードの時刻よりも常に早い場合、処理部１２は、データ項目１３ａからデータ項目１４ａへの方向を影響方向１８として判定する。
【００２２】
その後、処理部１２は、情報処理システム２０から取得されたログ１５，１６と予め算出した相関関係１７とを照合して、情報処理システム２０の障害を検出する。処理部１２は、ログ１５に含まれるレコードのデータ項目１３ａの値とログ１６に含まれるレコードのデータ項目１４ａの値とが相関関係１７を満たすか判定し、相関関係１７が満たされない場合は情報処理システム２０に障害が発生したとみなす。障害が検出されると、処理部１２は、予め判定した影響方向１８に基づいて、データ項目１３ａ，１４ａのうち異常の影響元である原因データ項目を特定する。ここでは原因データ項目は、値の異常な変動が先に発生したデータ項目であり、障害原因に近いデータ項目と言うことができる。
【００２３】
例えば、処理部１２は、影響方向１８がデータ項目１３ａからデータ項目１４ａへの方向を示している場合、データ項目１３ａが今回の障害に対する原因データ項目であると特定する。なお、予め複数の相関関係が算出されており、それら複数の相関関係が満たされていないことが同時に検出された場合、処理部１２は、当該複数の相関関係それぞれについて影響方向を検索する。この場合、処理部１２は、複数の相関関係の影響方向を合成して、異常の最初の影響元である原因データ項目（主原因データ項目）を特定してもよい。
【００２４】
処理部１２は、特定した原因データ項目を示す異常情報１９を出力する。例えば、処理部１２は、分析装置１０に接続されたディスプレイまたは他の装置に接続されたディスプレイに異常情報１９を表示させる。なお、第１の実施の形態では、相関関係１７の算出および影響方向１８の判定とこれら情報を利用した異常情報１９の生成とを分析装置１０が実行したが、両者を異なる装置が実行してもよい。その場合、ある装置から別の装置に対して相関関係１７および影響方向１８が通知される。
【００２５】
第１の実施の形態の分析装置１０によれば、ログ１３，１４を分析してデータ項目１３ａ，１４ａの間の相関関係１７を算出する際に、併せてデータ項目１３ａ，１４ａの間の影響方向１８が判定される。その後に取得されたログ１５，１６が相関関係１７を満たさないことが検出されると、影響方向１８に基づいて原因データ項目が判定される。
【００２６】
影響方向１８が不明である場合、相関関係１７が満たされないというだけでは、相関関係１７を構成するデータ項目１３ａ，１４ａのうち何れのデータ項目の方が障害原因に強く関連しているのか不明である。これに対し、影響方向１８を用いることで障害原因に近いデータ項目を判定できる。特に、相関関係１７を含む複数の相関関係が満たされないことが同時に検出されたとき、障害原因に最も近いデータ項目を判定できる。よって、効率的に障害原因を絞り込むことが可能となり、障害原因の調査の負担が軽減される。
【００２７】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００２８】
第２の実施の形態の情報処理システムは、アノマリー分析によって障害を自動的に検出し、障害原因の調査に役立つ情報をシステム管理者に対して提供する。情報処理システムは、Ｗｅｂサーバ３１、アプリケーションサーバ（ＡＰサーバ）３２およびデータベースサーバ（ＤＢサーバ）３３などの複数の業務用サーバを有する。また、情報処理システムは、管理端末３４、分析サーバ１００および監視サーバ２００を有する。Ｗｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３、管理端末３４、分析サーバ１００および監視サーバ２００は、ネットワーク３０に接続されている。
【００２９】
Ｗｅｂサーバ３１は、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）やＨＴＴＰ（Hypertext Transfer Protocol）などのプロトコルを用いて、図示しないクライアントコンピュータと通信するサーバコンピュータである。Ｗｅｂサーバ３１は、クライアントコンピュータからリクエストメッセージを受信し、リクエストメッセージに応じたアプリケーション処理をＡＰサーバ３２に要求する。Ｗｅｂサーバ３１は、アプリケーション処理の結果である結果データをＡＰサーバ３２から受信し、結果データに応じたレスポンスメッセージをクライアントコンピュータに返信する。
【００３０】
ＡＰサーバ３２は、Ｗｅｂサーバ３１からの要求に応じて、アプリケーションプログラムに従ってアプリケーション処理を実行するサーバコンピュータである。アプリケーション処理は、１以上のメソッド（関数と言うこともできる）の呼び出しを含む場合がある。また、アプリケーション処理は、ＤＢサーバ３３へのデータベースアクセスの要求を含む場合がある。ＡＰサーバ３２は、ＤＢサーバ３３から受信したデータなどを用いてアプリケーション処理を完了させ、その結果である結果データをＷｅｂサーバ３１に返信する。
【００３１】
ＤＢサーバ３３は、不揮発性の記憶装置を用いてデータベースを保持し、ＡＰサーバ３２からの要求に応じてデータベースにアクセスするサーバコンピュータである。ＡＰサーバ３２からの要求は、例えば、データベースへのデータの追加、データベースに記憶されたデータの更新、データベースからのデータの削除、または、データベースに記憶されたデータの検索である。ＤＢサーバ３３は、データベース管理システム（ＤＢＭＳ）を用いてデータベースを管理する。ＤＢサーバ３３は、ＳＱＬなどのクエリ記述言語を用いて記述されたクエリを生成または取得し、クエリに従ってデータベースにアクセスする。ＤＢサーバ３３は、データベースから抽出したデータや追加・更新・削除の成否などのアクセス結果を結果データとしてＡＰサーバ３２に返信する。
【００３２】
Ｗｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３はそれぞれ、ハードウェアリソースの使用状況や情報処理プロセスの実行状況を示す各種のログを生成する。例えば、ＡＰサーバ３２は、Ｗｅｂサーバ３１からのアプリケーション処理要求の受信を示すＡＰアクセスログを生成する。また、例えば、ＡＰサーバ３２は、アプリケーション処理の中で行われたメソッド呼び出しを示すメソッドログを生成する。また、例えば、ＤＢサーバ３３は、クエリの発行を示すＳＱＬログを生成する。また、例えば、Ｗｅｂサーバ３１やＡＰサーバ３２は、ＣＰＵ使用率やＲＡＭ使用量を示すリソースログを生成する。
【００３３】
一部のログの内容は、Ｗｅｂサーバ３１がクライアントコンピュータから受信したリクエストメッセージと紐付けられる。例えば、ＡＰサーバ３２が生成するＡＰアクセスログの１つのレコードは、１つのリクエストメッセージに関連して発行されたアプリケーション処理要求を示している。また、例えば、ＡＰサーバ３２が生成するメソッドログの１つのレコードは、１つのリクエストメッセージに関連して実行されたメソッド呼び出しを示している。また、例えば、ＤＢサーバ３３が生成するＳＱＬログの１つのレコードは、１つのリクエストメッセージに関連して発行されたクエリを示している。
【００３４】
管理端末３４は、情報処理システムの管理者が使用するクライアントコンピュータである。管理端末３４は、監視サーバ２００によって情報処理システムの障害が検出されると、検出された障害を示す障害情報を監視サーバ２００から受信する。管理端末３４は、管理端末３４が有するディスプレイに障害情報を表示するなど、管理端末３４が有する出力装置に障害情報を出力する。管理端末３４は、管理者による障害原因の調査に使用されることもある。例えば、管理端末３４は、管理者の操作に応じてＷｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などのサーバコンピュータにアクセスし、各種のソースコードや設定情報や前述のログとは異なる詳細ログなどを取得する。
【００３５】
分析サーバ１００は、監視サーバ２００が障害の検出に使用する「モデル」を生成するサーバコンピュータである。モデルは、ログに含まれる複数のデータ項目（複数のフィールド）の間の正常時における相関関係を示している。また、モデルは、相関係数が高いデータ項目の組について更に因果関係を示している。因果関係は、値の異常な変動が何れの方向に伝搬するか、すなわち、２つのデータ項目のうち何れのデータ項目が「原因」であり何れのデータ項目が「結果」であるかを示している。
【００３６】
分析サーバ１００は、Ｗｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などの複数のサーバコンピュータからログを収集する。分析サーバ１００は、収集したログを分析してモデルを生成し、生成したモデルを監視サーバ２００に送信する。なお、第２の実施の形態ではサーバコンピュータである分析サーバ１００がモデルを生成しているが、クライアントコンピュータがモデルを生成してもよい。
【００３７】
監視サーバ２００は、分析サーバ１００が生成したモデルを用いて障害を検出し、障害原因の調査に役立つ障害情報を生成するサーバコンピュータである。監視サーバ２００は、Ｗｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などの複数のサーバコンピュータから最新のログを収集する。監視サーバ２００は、収集したログに含まれる複数のデータ項目の値が、分析サーバ１００から受信したモデルが示す相関関係を満たしているか判定する。最新のログが１以上の所定の相関関係を満たしていない場合、すなわち、１以上の「相関関係の崩れ」が発生している場合、監視サーバ２００は、情報処理システムに障害が発生したか少なくとも障害の兆候があると判定する。
【００３８】
障害が検出されると、監視サーバ２００は、モデルが示す因果関係に基づいて、相関関係の崩れに関与している複数のデータ項目のうち障害原因に最も近いデータ項目を主原因として判定する。主原因は、複数の相関関係を「結果」から「原因」に向かって辿る、すなわち、値の異常な変動の伝搬方向を逆方向に辿ることで特定できる。監視サーバ２００は、相関関係の崩れに関与している複数のデータ項目や主原因と推定されたデータ項目を示す障害情報を生成し、障害情報を管理端末３４に送信する。
【００３９】
分析サーバ１００によるモデル生成は、運用開始前の事前準備として行われる。例えば、Ｗｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などの複数のサーバコンピュータを運用開始前に試運転させる。分析サーバ１００は、試運転中に生成されたログを収集し、収集したログを用いて運用開始前にモデルを生成する。監視サーバ２００による障害検出は、運用開始後に行われる。例えば、分析サーバ１００は、本番運用中にＷｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などの複数のサーバコンピュータから継続的にログを収集する。分析サーバ１００は、最新のログとモデルを照合して障害を検出する。
【００４０】
なお、運用開始前と運用開始後とで異なるサーバコンピュータが使用されてもよい。例えば、本番環境であるＷｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３に相当する機能をもつサーバコンピュータが、試験環境として用意される。その場合、分析サーバ１００は試験環境のサーバコンピュータからログを収集してモデルを生成する。また、第２の実施の形態では分析サーバ１００がモデルを生成し監視サーバ２００が障害を検出しているが、同一コンピュータがモデル生成と障害検出の両方を行ってもよい。
【００４１】
また、運用開始後に分析サーバ１００が継続的にモデルを更新するようにしてもよい。例えば、分析サーバ１００は、監視サーバ２００と同様に本番運用中、Ｗｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３から継続的にログを収集する。または、分析サーバ１００は、監視サーバ２００が収集したログを監視サーバ２００から取得する。分析サーバ１００は、本番運用中に収集したログを分析してモデルを更新し、更新したモデルを監視サーバ２００に送信する。監視サーバ２００は、分析サーバ１００から最新のモデルを受信すると、前のモデルを破棄して最新のモデルを使用する。なお、モデルを更新する周期は、監視サーバ２００が障害の有無を判定する周期より十分長くてよい。
【００４２】
図３は、分析サーバのハードウェア例を示すブロック図である。
分析サーバ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。上記のユニットはバスに接続されている。Ｗｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３、管理端末３４および監視サーバ２００も、分析サーバ１００と同様のハードウェアを用いて実装することができる。
【００４３】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、分析サーバ１００は複数のプロセッサを備えてもよく、以下の処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００４４】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、分析サーバ１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００４５】
ＨＤＤ１０３は、ＯＳ（Operating System）やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、分析サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００４６】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、分析サーバ１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００４７】
入力信号処理部１０５は、分析サーバ１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、分析サーバ１００に複数の種類の入力デバイスが接続されていてもよい。
【００４８】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００４９】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００５０】
通信インタフェース１０７は、ネットワーク３０に接続され、ネットワーク３０を介して他の装置と通信を行うインタフェースである。通信インタフェース１０７は、例えば、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースである。ただし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００５１】
図４は、分析サーバと監視サーバの機能例を示すブロック図である。
分析サーバ１００は、ログ収集部１２１、ログ記憶部１２２、設定記憶部１２３、情報集約部１２４、モデル生成部１２５、因果関係判定部１２６、モデル記憶部１２７およびモデル送信部１２８を有する。ログ記憶部１２２、設定記憶部１２３およびモデル記憶部１２７は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域を用いて実装される。ログ収集部１２１、情報集約部１２４、モデル生成部１２５、因果関係判定部１２６およびモデル送信部１２８は、例えば、プログラムモジュールを用いて実装される。
【００５２】
ログ収集部１２１は、Ｗｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３のログを収集する。例えば、ログ収集部１２１は、運用開始前の事前分析フェーズにおいてＷｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３のログを収集する。ログ収集部１２１は、収集したログをログ記憶部１２２に格納する。ログ記憶部１２２は、収集されたＷｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３のログを記憶する。
【００５３】
設定記憶部１２３は、収集されたログを集約する際の設定を示す設定情報を記憶する。設定情報は、収集されるログの特徴に基づいて管理者によって予め作成される。設定情報は、例えば、ログ毎に当該ログにレコードが追加される契機を示す情報や、ログを分析する際に起点とするログ（基軸ログ）を示す情報を含む。
【００５４】
情報集約部１２４は、設定記憶部１２３に記憶された設定情報に基づいて、ログ記憶部１２２に記憶された複数のログを集約して集約ログを生成する。集約ログの生成では、情報集約部１２４は、基軸ログに含まれる各レコードに対して、基軸ログ以外の他のログから関連するレコードを抽出して結合する。これにより、異なるログ（例えば、異なるサーバコンピュータが生成したログ）に含まれる異なるデータ項目の値が相互に関連付けられる。情報処理プロセスの実行状況を示すログについては、情報集約部１２４は、基軸ログのレコードと同じリクエストメッセージに関するレコードを抽出して結合すればよい。リソースの使用状況を示すログについては、情報集約部１２４は、基軸ログのレコードと最も時刻が近いレコードを抽出して結合すればよい。
【００５５】
モデル生成部１２５は、情報集約部１２４が生成した集約ログを用いて、複数のデータ項目の間の相関関係を示すモデルを生成してモデル記憶部１２７に格納する。モデル生成部１２５が生成するモデルは、集約ログに含まれる２つのデータ項目の組（データ項目ペア）のうち相関係数が高いデータ項目ペアを示す。あるデータ項目ペアの相関関係を判定するにあたり、モデル生成部１２５は、他のデータ項目が特定の値になる場合のみ、すなわち、特定の文脈（コンテキスト）の場合のみ相関係数が高くなる可能性を考慮する。文脈は、２つのデータ項目の間に相関関係が成立する条件を表している。データ項目ペアと文脈の組み合わせに対して相関係数が定義される。なお、あるデータ項目ペアの相関係数が他のデータ項目の値に関係なく十分高い場合、文脈を空としてもよい。
【００５６】
因果関係判定部１２６は、情報集約部１２４が生成した集約ログを用いて、モデル記憶部１２７に記憶されたモデルに対して因果関係の情報を追加する。因果関係判定部１２６は、相関係数が高いデータ項目ペアについて、一方のデータ項目の値がログに出力された時刻と他方のデータ項目の値がログに出力された時刻との間の関係を集約ログから分析する。一方のデータ項目の値が他方のデータ項目の値よりも常に早く出力されるという関係が成立する場合、因果関係判定部１２６は、当該一方のデータ項目を「原因」とし当該他方のデータ項目を「結果」とする因果関係が存在すると推定する。ただし、相関係数が高いデータ項目ペアの全てに対して因果関係が推定されるとは限らない。２つのデータ項目の間の時刻に法則性が無い場合には因果関係は推定されない。
【００５７】
モデル記憶部１２７は、障害検出に用いられるモデルを記憶する。モデル記憶部１２７が記憶するモデルは、データ項目ペアの相関関係および因果関係を示す。モデル送信部１２８は、モデル生成部１２５および因果関係判定部１２６によって生成されてモデル記憶部１２７に格納されたモデルを、監視サーバ２００に送信する。
【００５８】
監視サーバ２００は、ログ収集部２２１、ログ記憶部２２２、設定記憶部２２３、情報集約部２２４、モデル照合部２２５、因果関係検索部２２６、モデル記憶部２２７および障害通知部２２８を有する。ログ記憶部２２２、設定記憶部２２３およびモデル記憶部２２７は、例えば、監視サーバ２００のＲＡＭまたはＨＤＤに確保した記憶領域を用いて実装される。ログ収集部２２１、情報集約部２２４、モデル照合部２２５、因果関係検索部２２６および障害通知部２２８は、例えば、プログラムモジュールを用いて実装される。
【００５９】
ログ収集部２２１は、Ｗｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３のログを継続的に収集する。例えば、ログ収集部２２１は、運用開始後の運用監視フェーズにおいてＷｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３のログを収集する。ログ収集部２２１は、収集したログをログ記憶部２２２に格納する。ログ記憶部２２２は、収集されたＷｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３のログを記憶する。
【００６０】
設定記憶部２２３は、収集されたログを集約する際の設定を示す設定情報を記憶する。設定情報は、収集されるログの特徴に基づいて管理者によって予め作成される。設定記憶部２２３に記憶される設定情報は、設定記憶部１２３に記憶される設定情報と同じでよい。情報集約部２２４は、設定記憶部２２３に記憶された設定情報に基づいて、ログ記憶部２２２に記憶された複数のログを集約して集約ログを生成する。情報集約部２２４による集約ログの生成方法は、情報集約部１２４の方法と同じでよい。ただし、情報集約部２２４は、比較的短い周期で集約ログの生成を繰り返す。
【００６１】
モデル照合部２２５は、情報集約部２２４が生成した集約ログとモデル記憶部２２７に記憶されたモデルとを照合して、モデルが示すデータ項目ペアのうち「相関関係の崩れ」が生じているデータ項目ペアがあるか判定する。１以上のデータ項目ペアについて相関関係の崩れが検出された場合、モデル照合部２２５は、情報処理システムに障害が発生したと判定する。相関関係の崩れを検出するにあたり、モデル照合部２２５は、情報集約部２２４が生成した集約ログを用いて、モデルが示すデータ項目ペアそれぞれの相関係数を算出する。データ項目ペアに空でない文脈が付加されている場合、モデル照合部２２５は、集約ログに含まれるレコードのうちその文脈に適合するレコードのみを用いて相関係数を算出する。モデル照合部２２５は、算出した相関係数がモデルの相関係数から大きく乖離しているデータ項目ペアに対して、相関関係の崩れが生じていると判定する。
【００６２】
因果関係検索部２２６は、「相関関係の崩れ」が検出されたデータ項目ペアそれぞれに対して、モデル記憶部２２７に記憶されたモデルから因果関係を検索する。相関関係が崩れたデータ項目ペアに対して「原因」のデータ項目と「結果」のデータ項目が特定される。ただし、相関関係が崩れた全てのデータ項目ペアについて因果関係がモデルに定義されているとは限らない。同じ文脈のもとで複数のデータ項目ペアについて相関関係の崩れが検出されかつ因果関係が特定された場合、因果関係検索部２２６は、複数のデータ項目ペアの因果関係を連結することで、障害原因に最も近い主原因のデータ項目を判定する。ある因果関係で「原因」に該当するデータ項目が他の因果関係で「結果」に該当する場合、推移律に従って当該２つの因果関係を連結することができる。複数の因果関係を連結した後に「原因」として残った先頭のデータ項目が主原因と判定される。
【００６３】
モデル記憶部２２７は、監視サーバ２００が分析サーバ１００から受信したモデルを記憶する。障害通知部２２８は、モデル照合部２２５が障害を検出すると、検出した障害を示す障害通知を生成して管理端末３４に送信する。これにより、障害通知画面が管理端末３４のディスプレイに表示される。ただし、障害通知部２２８は、監視サーバ２００に接続されたディスプレイに障害通知画面を表示させてもよい。障害通知には、相関関係の崩れに関与するデータ項目の項目名と、収集したログに含まれるそのデータ項目の値の傾向（例えば、そのデータ項目の値の平均や範囲など）が含まれる。また、因果関係検索部２２６によって因果関係が検索された場合、障害通知には、検索された因果関係の情報が含まれる。好ましくは、障害通知では障害の根本原因である「主原因」が特定される。
【００６４】
図５は、設定テーブルの例を示す図である。
設定テーブル１３１は、分析サーバ１００の設定記憶部１２３に記憶されている。同様のテーブルが監視サーバ２００の設定記憶部２２３にも記憶されている。設定テーブル１３１は、ログ名、サーバ名、イベントタイプおよび基軸フラグの項目を含む。
【００６５】
ログ名の項目には、分析サーバ１００および監視サーバ２００が収集すべきログの名称が登録される。サーバ名の項目には、分析サーバ１００および監視サーバ２００が収集すべきログを出力するサーバコンピュータの名称が登録される。
【００６６】
イベントタイプの項目には、サーバコンピュータにおいてログにレコードが追加される契機を示すログ種別が登録される。イベントタイプには、単独イベントと集団イベントと定期イベントがある。単独イベントは、１つのリクエストメッセージに対して特定の情報処理プロセスが１回実行され、当該１回の情報処理プロセスの実行に対して１つのレコードが追加されるログ種別である。集団イベントは、１つのリクエストメッセージに対して特定の情報処理プロセスが１回以上実行され、当該１回以上の情報処理プロセスの実行全体に対して１つのレコードが追加されるログ種別である。定期イベントは、リクエストメッセージに関係なく定期的にレコードが追加されるログ種別である。
【００６７】
基軸フラグの項目には、基軸ログであるか否かを示すフラグが登録される。基軸ログは、分析サーバ１００および監視サーバ２００が収集するログのうち集約ログを生成する際に起点として使用されるログである。基軸ログは通常は何れか１つのログである。
【００６８】
一例として、分析サーバ１００および監視サーバ２００は、ＡＰサーバ３２からＡＰアクセスログを取得し、ＡＰサーバ３２からメソッドログを取得し、ＤＢサーバ３３からＳＱＬログを取得する。また、分析サーバ１００および監視サーバ２００は、Ｗｅｂサーバ３１からリソースログ１を取得し、ＡＰサーバ３２からリソースログ２を取得する。ＡＰアクセスログは単独イベントのログであり基軸ログである。メソッドログは集団イベントのログである。ＳＱＬログは単独イベントのログである。リソースログ１は定期イベントのログである。リソースログ２は定期イベントのログである。
【００６９】
図６は、収集されるログの例を示す図である。
ＡＰアクセスログ１３２、メソッドログ１３３、ＳＱＬログ１３４およびリソースログ１３５，１３６は、事前分析フェーズにおいて分析サーバ１００のログ記憶部１２２に記憶される。これらのログは、分析サーバ１００がＷｅｂサーバ３１、ＡＰサーバ３２およびＤＢサーバ３３から収集したものである。運用監視フェーズにおいて、同様のログが監視サーバ２００のログ記憶部２２２に記憶される。
【００７０】
ＡＰアクセスログ１３２は、Ｗｅｂサーバ３１からＡＰサーバ３２へのアプリケーション処理要求に基づいて生成されるレコードを含む。ＡＰアクセスログ１３２は、時刻、処理時間、ＵＲＬ（Uniform Resource Locator）およびリクエストＩＤの項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、要求を受け付けた時刻、結果データを返信した時刻、レコードを生成した時刻などである。処理時間の項目には、ＡＰサーバ３２が要求を受け付けてから結果データを返信するまでに要した実行時間が登録される。ＵＲＬの項目には、アプリケーション処理要求の契機となったクライアントからのリクエストメッセージで指定されたＵＲＬが登録される。ＡＰアクセスログ１３２のＵＲＬには、ディレクトリ名やファイル名に加えて、アプリケーション処理で使用されるパラメータが含まれることがある。リクエストＩＤの項目には、クライアントからのリクエストメッセージに応じて付与される識別子が登録される。
【００７１】
メソッドログ１３３は、ＡＰサーバ３２のアプリケーション処理の中で行われた１以上のメソッド呼び出しに基づいて生成されるレコードを含む。メソッドログ１３３は、時刻、メソッド群およびリクエストＩＤの項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、最初のメソッド呼び出しの時刻、最後のメソッド呼び出しの時刻、レコードを生成した時刻などである。メソッド群の項目には、呼び出された１以上のメソッドそれぞれの名称と呼び出し回数とが登録される。ＡＰサーバ３２が要求を受け付けてから結果データを返信するまでに、異なる２以上のメソッドが呼び出されることがあり、また、同じメソッドが２回以上呼び出されることがある。リクエストＩＤの項目には、リクエストメッセージに応じて付与される識別子が登録される。
【００７２】
ＳＱＬログ１３４は、ＤＢサーバ３３で発行されたクエリに基づいて生成されるレコードを含む。ＳＱＬログ１３４は、時刻、クエリおよびリクエストＩＤの項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、ＤＢサーバ３３がＡＰサーバ３２からアクセスを受け付けた時刻、クエリを生成した時刻、クエリを実行した時刻、アクセス結果を返信した時刻、レコードを生成した時刻などである。クエリの項目には、ＳＱＬを用いて記述されたクエリが登録される。クエリは、例えば、データ検索を示すｓｅｌｅｃｔ文、データ追加を示すｉｎｓｅｒｔ文、データ更新を示すｕｐｄａｔｅ文またはデータ削除を示すｄｅｌｅｔｅ文を含む。リクエストＩＤの項目には、リクエストメッセージに応じて付与される識別子が登録される。
【００７３】
リソースログ１３５は、Ｗｅｂサーバ３１のハードウェアリソースの使用状況を示すレコードを含む。リソースログ１３５は、時刻、ＣＰＵ使用率およびＲＡＭ使用量の項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、ハードウェアリソースの使用状況が測定された時刻、レコードが生成された時刻などである。ＣＰＵ使用率の項目には、Ｗｅｂサーバ３１のＣＰＵ使用率が登録される。ＲＡＭ使用量の項目には、Ｗｅｂサーバ３１のＲＡＭ使用量が登録される。リソースログ１３５に含まれる複数のレコードは定期的に生成されたものである。
【００７４】
リソースログ１３６は、ＡＰサーバ３２のハードウェアリソースの使用状況を示すレコードを含む。リソースログ１３６は、時刻、ＣＰＵ使用率およびＲＡＭ使用量の項目を含む。時刻の項目には、レコードの内容に関する時刻が登録される。時刻は、例えば、ハードウェアリソースの使用状況が測定された時刻、レコードが生成された時刻などである。ＣＰＵ使用率の項目には、ＡＰサーバ３２のＣＰＵ使用率が登録される。ＲＡＭ使用量の項目には、ＡＰサーバ３２のＲＡＭ使用量が登録される。リソースログ１３６に含まれる複数のレコードは定期的に生成されたものである。
【００７５】
図７は、第１の集約ログテーブルの例を示す図である。
分析サーバ１００の情報集約部１２４は、ログ記憶部１２２に記憶された上記のログに基づいて集約ログテーブル１３７を生成する。監視サーバ２００の情報集約部２２４も、ログ記憶部２２２に記憶されたログに基づいて同様のテーブルを生成する。
【００７６】
集約ログテーブル１３７は、収集された複数のログを結合した結果であり、収集された複数のログに含まれるデータ項目の一部または全部を含む。集約ログテーブル１３７の１つのレコードは、基軸ログであるＡＰアクセスログ１３２の１つのレコードに対応する。一例として、集約ログテーブル１３７は、ｓ１ｃｐｕ、ｓ１ｒａｍ、ｓ２ｃｐｕ、ｓ２ｕｒｌ、ｓ２ｐａｒ、ｓ２ｒｅｓ、ｓ２ｍ１、ｓ２ｍ２およびｓ３ｓｑｌの項目を含む。
【００７７】
ｓ１ｃｐｕの項目には、リソースログ１３５に記載されたＣＰＵ使用率が登録される。ｓ１ｒａｍの項目には、リソースログ１３５に記載されたＲＡＭ使用量が登録される。ｓ２ｃｐｕの項目には、リソースログ１３６に記載されたＣＰＵ使用率が登録される。ｓ２ｕｒｌの項目には、ＡＰアクセスログ１３２に記載されたＵＲＬのうちパラメータを除く部分、すなわち、ディレクトリ名やファイル名が登録される。ｓ２ｐａｒの項目には、ＡＰアクセスログ１３２に記載されたＵＲＬのうちパラメータ部分が登録される。
【００７８】
ｓ２ｒｅｓの項目には、ＡＰアクセスログ１３２に記載された処理時間が登録される。ｓ２ｍ１の項目には、メソッドログ１３３に記載されたメソッド群の中のメソッドｓ２ｍ１の呼び出し回数が登録される。ｓ２ｍ２の項目には、メソッドログ１３３に記載されたメソッド群の中のメソッドｓ２ｍ２の呼び出し回数が登録される。ｓ３ｓｑｌの項目には、ＳＱＬログ１３４に記載されたクエリが登録される。
【００７９】
情報集約部１２４は、収集されたログから次のようにして集約ログテーブル１３７を生成する。情報集約部１２４は、基軸ログであるＡＰアクセスログ１３２のレコード（基軸ログレコード）を１つ選択する。情報集約部１２４は、基軸ログ以外の他のログを１つ選択し、選択した他のログのイベントタイプを設定テーブル１３１を参照して判定する。イベントタイプが単独イベントまたは集団イベントである場合、情報集約部１２４は、基軸ログレコードと同じリクエストＩＤを含む他のレコードを他のログから検索し、基軸ログレコードと結合する。イベントタイプが定期イベントである場合、情報集約部１２４は、時刻が基軸ログレコードの時刻に最も近い他のレコードを他のログから検索し、基軸ログレコードと結合する。情報集約部１２４は、以上をＡＰアクセスログ１３２の各レコードに対して実行する。これにより、収集された複数のログのレコードの中で互いに関連するレコードが集約されて集約ログテーブル１３７が生成される。
【００８０】
モデル生成部１２５は、上記の集約ログテーブル１３７を用いることでデータ項目の間の相関関係を判定することができる。一方、因果関係判定部１２６は、上記の集約ログテーブル１３７とは異なる集約ログテーブルを用いて因果関係を判定する。
【００８１】
図８は、第２の集約ログテーブルの例を示す図である。
分析サーバ１００の情報集約部１２４は、ログ記憶部１２２に記憶された上記のログに基づいて、集約ログテーブル１３７に加えて集約ログテーブル１３８を生成する。監視サーバ２００の情報集約部２２４は、集約ログテーブル１３８と同様のテーブルを生成しなくてもよい。集約ログテーブル１３８は、集約ログテーブル１３７の項目に加えて、時刻１、時刻２、時刻３、時刻４および時刻５の項目を含む。
【００８２】
時刻１の項目には、ｓ１ｃｐｕおよびｓ１ｒａｍの値に対応する時刻、すなわち、リソースログ１３５に記載された時刻が登録される。時刻２の項目には、ｓ２ｃｐｕの値に対応する時刻、すなわち、リソースログ１３６に記載された時刻が登録される。時刻３の項目には、ｓ２ｕｒｌ、ｓ２ｐａｒおよびｓ２ｒｅｓの値に対応する時刻、すなわち、ＡＰアクセスログ１３２に記載された時刻が登録される。時刻４の項目には、ｓ２ｍ１およびｓ２ｍ２の値に対応する時刻、すなわち、メソッドログ１３３に記載された時刻が登録される。時刻５の項目には、ｓ３ｓｑｌの値に対応する時刻、すなわち、ＳＱＬログ１３４に記載された時刻が登録される。このように、各データ項目の値に対応づけて当該データ項目の値の出力タイミングを示す時刻が集約ログテーブル１３８に挿入される。
【００８３】
ただし、後述するように、イベントタイプが定期イベントであるログに記載された時刻は因果関係の判定に使用されない。単独イベントや集団イベントのレコードの出力タイミングと定期イベントのレコードの出力タイミングとの間には、一般に関連性が無いためである。図５，６の例の場合、リソースログ１３５，１３６に記載された時刻は因果関係の判定に使用されない。そこで、集約ログテーブル１３８では、イベントタイプが定期イベントであるログの時刻を省略してもよい。例えば、リソースログ１３５の時刻を示す時刻１の値や、リソースログ１３６の時刻を示す時刻２の値は省略してもよい。
【００８４】
図９は、相関テーブルと因果関係テーブルの例を示す図である。
相関テーブル１４１は、モデル生成部１２５によって生成される。因果関係テーブル１４２は、因果関係判定部１２６によって生成される。生成された相関テーブル１４１および因果関係テーブル１４２は、分析サーバ１００のモデル記憶部１２７に記憶され、監視サーバ２００のモデル記憶部２２７にコピーされる。
【００８５】
相関テーブル１４１は、データ項目１、データ項目２、文脈、サンプルサイズ、相関係数および因果関係ＩＤの項目を含む。データ項目１の項目には、データ項目ペアを構成する一方のデータ項目の名称が登録される。データ項目２の項目には、データ項目ペアを構成する他方のデータ項目の名称が登録される。
【００８６】
文脈の項目には、相関係数の算出に用いる集約ログレコードを限定する条件が登録される。文脈は空であることもあるし空でないこともある。文脈が空であることは、他のデータ項目の値に関係なくデータ項目１とデータ項目２の間に高い相関が存在することを意味する。文脈が空でないことは、他のデータ項目の値が特定の条件を満たす場合のみデータ項目１とデータ項目２の間に高い相関が成立することを意味する。文脈の例として、データ項目ｓ２ｐａｒが「ｘ＝１」のように特定のパラメータ名とパラメータ値の組を含むこと、すなわち、ＵＲＬに特定のパラメータ名とパラメータ値の組が付加されていることが挙げられる。また、文脈の例として、パラメータ値は限定されないが、データ項目ｓ２ｐａｒが「ｘ」のように特定のパラメータ名を含むことが挙げられる。
【００８７】
サンプルサイズの項目には、相関係数の算出に用いた集約ログレコードの数が登録される。サンプルサイズは、集約ログテーブル１３７に含まれるレコードのうち文脈に該当するレコードの数である。例えば、文脈が「ｓ２ｐａｒ：ｘ＝１」である場合、サンプルサイズはデータ項目ｓ２ｐａｒの値が「ｘ＝１」であるレコードの数である。相関係数の項目には、データ項目１とデータ項目２の間の相関の強さを示す相関係数が登録される。相関係数が大きいほど正の相関が強いことを意味する。相関テーブル１４１には、相関係数が閾値以上（例えば、０．７以上）であるデータ項目ペアが登録される。因果関係ＩＤの項目には、因果関係テーブル１４２のレコードを識別するＩＤが登録される。
【００８８】
モデル生成部１２５は、以下のようにして集約ログテーブル１３７から相関テーブル１４１を生成する。モデル生成部１２５は、集約ログテーブル１３７に含まれる複数のデータ項目それぞれについて値の種類を列挙し、値の種類の数が閾値以下（例えば、２０種類以下）であるデータ項目を抽出する。値の種類の数は、データ項目に現れる異なる値の数でもよいし、データ項目に現れる異なる値をグループ化した場合のグループ数でもよい。グループは、０〜８０，８１〜１６０，１６１以上のような値域でもよいし、０〜５０パーセント，５１〜１００パーセントのような分布区間でもよい。また、グループは、先頭文字がａ〜ｍ，ｎ〜ｚのような文字列条件でもよい。
【００８９】
モデル生成部１２５は、抽出したデータ項目を用いて文脈候補の集合を生成する。１つのデータ項目の１つの値は１つの文脈候補になる。また、２以上のデータ項目の値の組も１つの文脈候補になる。また、空の文脈も１つの文脈候補になる。
【００９０】
例えば、ｓ１ｃｐｕ、ｓ１ｒａｍ、ｓ２ｃｐｕ、ｓ２ｒｅｓ、ｓ２ｍ１、ｓ２ｍ２およびｓ３ｓｑｌの値の種類の数が閾値を超えており、ｓ２ｕｒｌおよびｓ２ｐａｒの値の種類の数が閾値以下であるとする。その場合、集約ログテーブル１３７からｓ２ｕｒｌおよびｓ２ｐａｒが抽出される。集約ログテーブル１３７に現れるｓ２ｕｒｌの値が｛ｕ１，ｕ２｝の２種類であり、集約ログテーブル１３７に現れるｓ２ｐａｒの値が｛ｐ１，ｐ２，ｐ３｝の３種類であるとする。すると、文脈候補として｛  ｝，｛ｕ１｝，｛ｕ２｝，｛ｐ１｝，｛ｐ２｝，｛ｐ３｝，｛ｕ１，ｐ１｝，｛ｕ１，ｐ２｝，｛ｕ１，ｐ３｝，｛ｕ２，ｐ１｝，｛ｕ２，ｐ２｝，｛ｕ２，ｐ３｝の１２個が生成される。
【００９１】
モデル生成部１２５は、集約ログテーブル１３７に含まれる複数のデータ項目の中から２つのデータ項目を選択してデータ項目ペアを抽出する。モデル生成部１２５は、上記で生成した文脈候補の集合から１つの文脈候補を選択し、選択した文脈候補に該当するレコードを集約ログテーブル１３７から検索する。モデル生成部１２５は、検索されたレコードからデータ項目ペアを構成する２つのデータ項目の値を抽出し、抽出した値を用いて２つのデータ項目の間の相関係数を算出する。モデル生成部１２５は、算出した相関係数が閾値以上である場合、そのデータ項目ペア、文脈、サンプルサイズおよび相関係数を相関テーブル１４１に登録する。モデル生成部１２５は、以上を様々なデータ項目ペアと文脈候補の組み合わせに対して実行することにより相関関係を判定する。
【００９２】
上記の処理を効率化するために、モデル生成部１２５は、相関係数の算出に用いる集約ログテーブル１３７のレコードを段階的に増やすようにしてもよい。例えば、モデル生成部１２５は、文脈候補に該当するレコードの中から少数のサンプルレコード（例えば、３０個のサンプルレコード）をランダムに選択し、少数のサンプルレコードを用いて相関係数の概算値を算出する。相関係数の概算値が閾値未満である場合、モデル生成部１２５は、そのデータ項目ペアは相関が低いと判定し相関テーブル１４１に登録しない。一方、相関係数の概算値が閾値以上である場合、モデル生成部１２５は、文脈候補に該当する全てのレコードまたはサンプルレコードよりも多いレコードを用いて相関係数の精密値を算出する。概算値の閾値は、０．７など精密値の閾値と同じでもよいし、０．６など精密値の閾値より小さくてもよいし、０．８など精密値の閾値より大きくてもよい。
【００９３】
なお、集約ログテーブル１３８は集約ログテーブル１３７の内容を包含している。そのため、モデル生成部１２５は、集約ログテーブル１３７に代えて集約ログテーブル１３８を用いて相関テーブル１４１を生成してもよい。その場合、情報集約部１２４は、集約ログテーブル１３８のみを生成するようにしてもよい。
【００９４】
因果関係テーブル１４２は、因果関係ＩＤ、原因項目、結果項目および文脈の項目を含む。因果関係ＩＤは、因果関係テーブル１４２に登録された因果関係を識別する識別子である。原因項目は、相関テーブル１４１が示すデータ項目１およびデータ項目２のうち、「原因」となるデータ項目である。結果項目は、相関テーブル１４１が示すデータ項目１およびデータ項目２のうち、「結果」となるデータ項目である。障害に起因する値の異常な変動は、原因項目から結果項目へと伝搬する。すなわち、障害によって「原因」のデータ項目の値が先に変化し、その影響によって「結果」のデータ項目の値が変化する。文脈の項目には、因果関係が生じる文脈が登録される。
【００９５】
因果関係判定部１２６は、以下のようにして集約ログテーブル１３８と相関テーブル１４１から因果関係テーブル１４２を生成する。因果関係判定部１２６は、相関テーブル１４１に登録された相関関係を１つ選択する。因果関係判定部１２６は、選択した相関関係の文脈に該当するレコードを集約ログテーブル１３８から検索し、検索されたレコードからデータ項目１に関する時刻とデータ項目２に関する時刻を抽出する。例えば、データ項目１がｓ２ｍ２でありデータ項目２がｓ３ｓｑｌである場合、因果関係判定部１２６は、検索されたレコードから時刻４と時刻５を抽出する。
【００９６】
因果関係判定部１２６は、データ項目１の時刻とデータ項目２の時刻の大小の法則性を判定する。検索されたレコードの全てにおいてデータ項目１の時刻がデータ項目２の時刻より早い場合、因果関係判定部１２６は、データ項目１が原因項目でありデータ項目２が結果項目であると判定する。検索されたレコードの全てにおいてデータ項目１の時刻がデータ項目２の時刻より遅い場合、因果関係判定部１２６は、データ項目２が原因項目でありデータ項目１が結果項目であると判定する。上記の何れも成立しない場合、因果関係判定部１２６は、データ項目１とデータ項目２の間に因果関係は無いと判定する。
【００９７】
ただし、データ項目１とデータ項目２の少なくとも一方が、イベントタイプが定期イベントであるログに含まれるデータ項目である場合、因果関係判定部１２６は、時刻の大小に関係なくデータ項目１とデータ項目２の間に因果関係は無いと判定する。定期イベントのレコードが出力されるタイミングは、他のログのレコードが出力されるタイミングと連動しておらず、時刻から因果関係を推定することは困難であるためである。
【００９８】
なお、一部のデータ項目ペアについては、時刻以外の情報を用いて因果関係を推定できる場合がある。例えば、アプリケーションプログラムのソースコードを静的に解析することで、複数のメソッドの間の呼び出し関係を示すコールグラフを生成できる場合がある。その場合、データ項目ｓ２ｍ１，ｓ２ｍ２などメソッド呼び出しに関する２以上のデータ項目の因果関係は、コールグラフから判定することが可能である。
【００９９】
因果関係判定部１２６は、相関テーブル１４１の中の１つの相関関係について因果関係の判定に成功すると、その因果関係を因果関係テーブル１４２に登録する。また、因果関係判定部１２６は、因果関係テーブル１４２の因果関係と相関テーブル１４１の相関関係とが対応付けられるように、相関テーブル１４１に因果関係ＩＤを登録する。
【０１００】
図１０は、障害通知画面の例を示す図である。
監視サーバ２００のモデル照合部２２５は、分析サーバ１００からコピーされた相関テーブル１４１を用いてデータ項目の間の相関関係の崩れを検出する。相関関係の崩れが検出されると、監視サーバ２００の因果関係検索部２２６は、分析サーバ１００からコピーされた因果関係テーブル１４２を用いて、相関関係が崩れたデータ項目ペアの因果関係を検索する。監視サーバ２００の障害通知部２２８は、管理端末３４に障害通知を送信する。管理端末３４は、障害通知に基づいて障害通知画面２３１をディスプレイに表示する。
【０１０１】
障害通知画面２３１は、収集された最新のログに含まれるデータ項目について相関関係の崩れの発生状況を示している。一例として、障害通知画面２３１は、相関関係の崩れが検出されたデータ項目ペアを構成するデータ項目である異常項目の数を表示している。また、障害通知画面２３１は、異常項目の名称を表示している。また、障害通知画面２３１は、収集された最新のログに含まれる異常項目の値の統計情報を表示している。統計情報は、例えば、収集されたログに含まれる異常項目の値の平均または範囲である。また、障害通知画面２３１は、正常時に相関が高くなる条件である文脈を表示している。
【０１０２】
また、障害通知画面２３１は、複数の異常項目の間の因果関係を表示している。因果関係は、「原因」の異常項目と「結果」の異常項目を特定することで可視化される。同一条件（同一文脈）のもとで複数の因果関係が成立する場合、複数の因果関係の連鎖状況が可視化され、障害の影響を最初に受けた「主原因」の異常項目が強調表示される。例えば、ｓ２ｍ２が原因項目でありｓ３ｓｑｌが結果項目である因果関係と、ｓ３ｓｑｌが原因項目でありｓ２ｒｅｓが結果項目である因果関係とが可視化される。この場合、２つの因果関係を連結することが可能であり、ｓ２ｍ２が「主原因」として特定される。
【０１０３】
障害通知画面２３１を視認した管理者は、例えば、主原因のデータ項目を他のデータ項目よりも優先的に検証することで、ハードウェアの故障やソフトウェアの設定ミスなどの障害原因を迅速に発見することが可能となる。主原因のデータ項目の検証では、例えば、主原因に関連するソースコードの閲覧、主原因に関連する設定ファイルの閲覧、主原因に関連する詳細ログの収集などが管理者によって行われる。
【０１０４】
なお、相関関係の崩れが検出されたデータ項目ペアについて相関テーブル１４１に因果関係ＩＤが登録されていない場合、障害通知画面２３１には因果関係は表示されない。また、図１０の例では、複数の異常項目の間の因果関係を表形式で可視化しているが、グラフ形式で可視化してもよい。例えば、異常項目をノードとし因果関係をノード間の矢線として表現した有向グラフを障害通知画面２３１内に表示してもよい。
【０１０５】
ここで、監視サーバ２００は以下のようにして相関関係の崩れを検出する。監視サーバ２００の情報集約部２２４は、ログ記憶部２２２に記憶された最新のログから、分析サーバ１００の情報集約部１２４と同様の方法によって集約ログテーブル１３７と同様の集約ログテーブルを生成する。監視サーバ２００のモデル照合部２２５は、コピーされた相関テーブル１４１に登録されている相関関係を１つ選択する。モデル照合部２２５は、選択した相関関係の文脈に該当するレコードを、情報集約部２２４が生成した集約ログテーブルから検索し、検索されたレコードからデータ項目１の値とデータ項目２の値を抽出する。モデル照合部２２５は、抽出したデータ項目１の値とデータ項目２の値から、データ項目１とデータ項目２の間の相関係数を算出する。
【０１０６】
モデル照合部２２５は、算出した相関係数と相関テーブル１４１に登録されていた相関係数との間の解離度を算出し、解離度が閾値異常である場合に相関関係の崩れが発生したと判定する。以上を相関テーブル１４１に登録された各相関関係について実行することで、相関関係の崩れが発生した全てのデータ項目ペアを検出することができる。少なくとも１つのデータ項目ペアの相関関係が崩れた場合、障害が発生したと判定される。
【０１０７】
２つの相関係数の解離度は、例えば、統計学に基づいて以下のように算出することができる。相関テーブル１４１に登録された相関係数をｒ1、相関テーブル１４１に登録されたサンプルサイズをｎ1、最新のログから算出された相関係数をｒ2、相関係数ｒ2を算出した際のサンプルサイズをｎ2とする。モデル照合部２２５は、数式（１）に従って相関係数ｒ1，ｒ2からｚ1，ｚ2を算出し、数式（２）に従ってｚ1，ｚ2とサンプルサイズｎ1，ｎ2からｚを算出する。数式（２）のｚは解離度を示す指標である。
【０１０８】
【数１】
2018165857.tif 000003
【０１０９】
【数２】
2018165857.tif 000004
【０１１０】
モデル照合部２２５は、数式（３）のようにｚの絶対値が１．９６以上であるか判断する。数式（３）を満たす場合、サンプルサイズｎ1の母集合とサンプルサイズｎ2の母集合の間の母相関係数が、有意水準５％で異なると判断される。すなわち、数式（３）を満たす場合、モデル照合部２２５は、予め算出した相関係数ｒ1と最新の相関係数ｒ2とが十分に異なると判断し、相関関係の崩れが生じたと判断する。
【０１１１】
【数３】
2018165857.tif 000005
【０１１２】
なお、相関関係の崩れの例として、ＣＰＵ使用率は通常と同程度である一方、入出力回数が極端に多いかまたは処理時間が極端に長い場合が考えられる。この場合、入出力ハードウェアの故障などの入出力異常が疑われる。また、相関関係の崩れの例として、データベースのデータ量が通常より多い一方、メソッド呼び出しの繰り返し回数が極端に少ないかまたは極端に多い場合が考えられる。この場合、入出力ハードウェアの故障、データベースソフトウェアの不具合などの入出力異常が疑われる。
【０１１３】
次に、分析サーバ１００と監視サーバ２００の処理手順を説明する。
図１１は、事前分析の手順例を示すフローチャートである。
（Ｓ１０）ログ収集部１２１は、複数のサーバコンピュータからログを収集してログ記憶部１２２に格納する。例えば、ログ収集部１２１は、Ｗｅｂサーバ３１からリソースログ１３５を取得する。また、ログ収集部１２１は、ＡＰサーバ３２からＡＰアクセスログ１３２、メソッドログ１３３およびリソースログ１３６を取得する。また、ログ収集部１２１は、ＤＢサーバ３３からＳＱＬログ１３４を取得する。
【０１１４】
（Ｓ１１）情報集約部１２４は、設定テーブル１３１を参照して基軸ログを特定し、ログ記憶部１２２から基軸ログを読み出す。例えば、情報集約部１２４は、ＡＰアクセスログ１３２を基軸ログとして特定してログ記憶部１２２から読み出す。情報集約部１２４は、読み出した基軸ログからレコード（基軸ログレコード）を１つ選択する。
【０１１５】
（Ｓ１２）情報集約部１２４は、設定テーブル１３１を参照して基軸ログ以外の他ログを１つ選択し、選択した他ログをログ記憶部１２２から読み出す。
（Ｓ１３）情報集約部１２４は、設定テーブル１３１を参照して、選択した他ログのイベントタイプが単独イベントまたは集団イベントであるか判断する。イベントタイプが単独イベントまたは集団イベントである場合はステップＳ１４に処理が進み、イベントタイプが定期イベントである場合はステップＳ１５に処理が進む。
【０１１６】
（Ｓ１４）情報集約部１２４は、ステップＳ１２で選択した他ログから、ステップＳ１１で選択した基軸ログレコードと同じリクエストＩＤをもつレコードを検索する。
（Ｓ１５）情報集約部１２４は、ステップＳ１２で選択した他ログから、ステップＳ１１で選択した基軸ログレコードの時刻に最も近い時刻をもつレコードを検索する。
【０１１７】
（Ｓ１６）情報集約部１２４は、ステップＳ１２において、設定テーブル１３１に定義された全ての他ログを選択したか判断する。全ての他ログを選択した場合はステップＳ１７に処理が進み、未選択の他ログがある場合はステップＳ１２に処理が進む。
【０１１８】
（Ｓ１７）情報集約部１２４は、ステップＳ１１で選択した基軸ログレコードに対してステップＳ１４，Ｓ１５で検索された他ログのレコードを結合することで集約ログレコードを生成し、集約ログテーブル１３７，１３８に登録する。このとき、情報集約部１２４は、他ログに含まれるデータ項目のうち集約ログテーブル１３７，１３８に登録するデータ項目を限定してもよく、データ項目名を変更してもよい。集約ログテーブル１３７には時刻が含まれず、集約ログテーブル１３８には時刻が含まれる。
【０１１９】
（Ｓ１８）情報集約部１２４は、ステップＳ１１において基軸ログに含まれる全てのレコードを選択したか判断する。全てのレコードを選択した場合はステップＳ１９に処理が進み、未選択のレコードがある場合はステップＳ１１に処理が進む。
【０１２０】
（Ｓ１９）モデル生成部１２５は、集約ログテーブル１３７に含まれるデータ項目のうち値の個数が閾値（例えば、２０個）以下であるデータ項目を抽出する。
（Ｓ２０）モデル生成部１２５は、ステップＳ１９で抽出したデータ項目の値を用いて文脈候補の集合を生成する。文脈候補の集合には、空の文脈（何れのデータ項目の値も制限しない文脈）が含まれる。また、文脈候補の集合には、１つのデータ項目の値を特定の値に制限する文脈が含まれる。また、文脈候補の集合には、２以上のデータ項目の値をそれぞれ特定の値に制限する文脈が含まれる。
【０１２１】
図１２は、事前分析の手順例を示すフローチャート（続き１）である。
（Ｓ２１）モデル生成部１２５は、集約ログテーブル１３７に含まれる複数のデータ項目のうちの２つのデータ項目の組であるデータ項目ペアを選択する。
【０１２２】
（Ｓ２２）モデル生成部１２５は、ステップＳ２０で生成された文脈候補の集合の中から文脈候補を１つ選択する。
（Ｓ２３）モデル生成部１２５は、ステップＳ２２で選択した文脈候補に該当するレコードを集約ログテーブル１３７から検索する。
【０１２３】
（Ｓ２４）モデル生成部１２５は、ステップＳ２３で検索されたレコードの中から所定数（例えば、３０個）のサンプルレコードをランダムに抽出する。
（Ｓ２５）モデル生成部１２５は、ステップＳ２４で抽出したサンプルレコードを用いて、ステップＳ２１で選択したデータ項目ペアの相関係数の概算値を算出する。
【０１２４】
（Ｓ２６）モデル生成部１２５は、ステップＳ２５で算出した相関係数の概算値が閾値以上（例えば、０．６以上）であるか判断する。相関係数の概算値が閾値以上である場合、ステップＳ２７に処理が進む。相関係数の概算値が閾値未満である場合、相関テーブル１４１にデータ項目ペアを登録せずステップＳ３０に処理が進む。
【０１２５】
（Ｓ２７）モデル生成部１２５は、ステップＳ２３で検索されたレコードのうちステップＳ２４で抽出したサンプルレコードよりも多いレコードを用いて、データ項目ペアの相関係数の精密値を算出する。例えば、モデル生成部１２５は、ステップＳ２３で検索されたレコードの全てを用いて相関係数の精密値を算出する。
【０１２６】
（Ｓ２８）モデル生成部１２５は、ステップＳ２７で算出した相関係数の精密値が閾値以上（例えば、０．７以上）であるか判断する。相関係数の精密値が閾値以上である場合、ステップＳ２９に処理が進む。相関係数の精密値が閾値未満である場合、相関テーブル１４１にデータ項目ペアを登録せずステップＳ３０に処理が進む。
【０１２７】
（Ｓ２９）モデル生成部１２５は、ステップＳ２１で選択したデータ項目ペアの相関関係を相関テーブル１４１に登録する。このとき、モデル生成部１２５は、データ項目ペアを構成する２つのデータ項目の名称と、ステップＳ２２で選択した文脈候補と、ステップＳ２７で使用したレコードの数と、算出した相関係数の精密値とを登録する。
【０１２８】
（Ｓ３０）モデル生成部１２５は、ステップＳ２２において文脈候補の集合に含まれる全ての文脈候補を選択したか判断する。全ての文脈候補を選択した場合はステップＳ３１に処理が進み、未選択の文脈候補がある場合はステップＳ２２に処理が進む。
【０１２９】
（Ｓ３１）モデル生成部１２５は、ステップＳ２１において全てのデータ項目ペアを選択したか判断する。全てのデータ項目ペアを選択した場合はステップＳ３２に処理が進み、未選択のデータ項目ペアがある場合はステップＳ２１に処理が進む。
【０１３０】
図１３は、事前分析の手順例を示すフローチャート（続き２）である。
（Ｓ３２）因果関係判定部１２６は、モデル生成部１２５が生成した相関テーブル１４１から相関関係（相関テーブル１４１のレコード）を１つ選択する。
【０１３１】
（Ｓ３３）因果関係判定部１２６は、ステップＳ３２で選択した相関関係の文脈に該当するレコードを集約ログテーブル１３８から検索する。
（Ｓ３４）因果関係判定部１２６は、ステップＳ３３で検索されたレコードから、ステップＳ３２で選択した相関関係のデータ項目１に対応する時刻とデータ項目２に対応する時刻とを抽出する。因果関係判定部１２６は、データ項目１とデータ項目２の間で時刻を比較して時刻の大小の法則性を判定する。
【０１３２】
（Ｓ３５）因果関係判定部１２６は、データ項目ペアを構成する一方のデータ項目の時刻が他方のデータ項目の時刻より常に早いか判断する。この条件を満たす場合はステップＳ３６に処理が進み、この条件を満たさない場合はステップＳ３８に処理が進む。なお、２つのデータ項目の少なくとも一方が、イベントタイプが定期イベントであるログから抽出されたデータ項目である場合、上記の条件を満たさないと判断してよい。
【０１３３】
（Ｓ３６）因果関係判定部１２６は、２つのデータ項目のうち時刻が早い方のデータ項目を原因項目と判定し、時刻が遅い方のデータ項目を結果項目と判定する。
（Ｓ３７）因果関係判定部１２６は、ステップＳ３２で選択した相関関係のデータ項目ペアについて因果関係が成立すると判定し、因果関係を因果関係テーブル１４２に登録する。このとき、因果関係判定部１２６は、ステップＳ３６で判定した原因項目および結果項目の名称と、ステップＳ３２で選択した相関関係の文脈とを登録する。また、因果関係判定部１２６は、ステップＳ３２で選択した相関関係と因果関係テーブル１４２に登録した因果関係とが関連付けられるように、相関テーブル１４１に因果関係ＩＤを登録する。
【０１３４】
（Ｓ３８）因果関係判定部１２６は、ステップＳ３２において相関テーブル１４１から全ての相関関係を選択したか判断する。全ての相関関係を選択した場合はステップＳ３９に処理が進み、未選択の相関関係がある場合はステップＳ３２に処理が進む。
【０１３５】
（Ｓ３９）モデル送信部１２８は、相関テーブル１４１と因果関係テーブル１４２を監視サーバ２００に送信し、モデル記憶部２２７に記憶させる。
図１４は、運用監視の手順例を示すフローチャートである。
【０１３６】
（Ｓ４０）ログ収集部２２１は、前述のステップＳ１０と同様にして、複数のサーバコンピュータからログを収集してログ記憶部２２２に格納する。例えば、ログ収集部２２１は、Ｗｅｂサーバ３１からリソースログを取得する。また、ログ収集部２２１は、ＡＰサーバ３２からＡＰアクセスログ、メソッドログおよびリソースログを取得する。また、ログ収集部２２１は、ＤＢサーバ３３からＳＱＬログを取得する。
【０１３７】
（Ｓ４１）情報集約部２２４は、前述のステップＳ１１〜１８と同様にして集約ログテーブルを生成する。この集約ログテーブルは時刻を含まなくてよい。生成方法の詳細はステップＳ１１〜１８と同様であるため説明を省略する。
【０１３８】
（Ｓ４２）モデル照合部２２５は、監視サーバ２００にコピーされた相関テーブル１４１から相関関係（相関テーブル１４１のレコード）を１つ選択する。
（Ｓ４３）モデル照合部２２５は、ステップＳ４２で選択した相関関係の文脈に該当するレコードを、ステップＳ４１で生成された集約ログテーブルから検索する。
【０１３９】
（Ｓ４４）モデル照合部２２５は、ステップＳ４３で検索されたレコードから、ステップＳ４２で選択した相関関係のデータ項目１に対応する値とデータ項目２に対応する値を抽出する。モデル照合部２２５は、抽出した値を用いて、データ項目ペアを構成するデータ項目１とデータ項目２の間の現在の相関係数を算出する。
【０１４０】
（Ｓ４５）モデル照合部２２５は、ステップＳ４４で算出した現在の相関係数とステップＳ４２で選択した相関関係が示す過去の相関係数との間の解離度を算出する。例えば、モデル照合部２２５は、過去のサンプルサイズｎ1と過去の相関係数ｒ1と現在のサンプルサイズｎ2と現在の相関係数ｒ2から、前述の数式（１）および数式（２）に基づいてｚを算出する。この場合、ｚの絶対値が解離度の指標値となる。
【０１４１】
（Ｓ４６）モデル照合部２２５は、ステップＳ４５で算出した解離度が閾値以上であるか判断する。例えば、モデル照合部２２５は、前述の数式（３）に基づいてｚの絶対値が１．９６以上であるか判断する。解離度が閾値以上である場合はステップＳ４７に処理が進み、解離度が閾値未満である場合はステップＳ４８に処理が進む。
【０１４２】
（Ｓ４７）モデル照合部２２５は、ステップＳ４２で選択した相関関係が示すデータ項目ペアについて相関関係の崩れが発生していると判定する。
（Ｓ４８）モデル照合部２２５は、ステップＳ４２において相関テーブル１４１から全ての相関関係を選択したか判断する。全ての相関関係を選択した場合はステップＳ４９に処理が進み、未選択の相関関係がある場合はステップＳ４２に処理が進む。
【０１４３】
（Ｓ４９）因果関係検索部２２６は、因果関係テーブル１４２から、相関関係の崩れが検出されたデータ項目ペアそれぞれの因果関係を検索する。例えば、因果関係検索部２２６は、相関関係に対応付けられた因果関係ＩＤを相関テーブル１４１から取得し、その因果関係ＩＤによって識別される因果関係を因果関係テーブル１４２から選択する。相関関係に対応する因果関係ＩＤが相関テーブル１４１に登録されていない場合、因果関係検索部２２６は、そのデータ項目ペアについて因果関係が成立しないとみなす。
【０１４４】
（Ｓ５０）因果関係検索部２２６は、複数の相関関係の崩れが検出された場合、文脈が同じ相関関係が同じグループに属するように、文脈に基づいて複数の相関関係をグループ化する。因果関係検索部２２６は、グループ毎に、当該グループに属する相関関係に対応する因果関係を連結して障害の主原因を判定する。
【０１４５】
（Ｓ５１）障害通知部２２８は、障害通知を管理端末３４に送信する。障害通知は、相関関係の崩れが検出されたデータ項目ペアを構成するデータ項目の名称、最新のログにおける当該データ項目の統計値、および、相関関係の崩れの検出に用いた文脈を含む。障害通知は、複数のデータ項目のうち主原因のデータ項目を示す情報を含むことがある。管理端末３４は、受信した障害通知に基づいて障害通知画面２３１を表示する。
【０１４６】
第２の実施の形態の情報処理システムによれば、分析サーバ１００により、複数のサーバコンピュータによって出力される複数のログが集約されて互いに関連するログレコードが結合される。集約ログに現れるデータ項目ペアと文脈の組み合わせに対して相関係数が算出され、相関係数が高い相関関係が抽出される。また、相関係数が高い相関関係について、集約ログに含まれる時刻情報に基づいて２つのデータ項目の間の因果関係が推定される。そして、監視サーバ２００により、最新のログから相関関係の崩れが検出される。複数の相関関係の崩れが検出された場合、予め推定された因果関係に基づいて障害原因に最も近い主原因のデータ項目が判定され、主原因のデータ項目が表示される。
【０１４７】
これにより、障害を示すログの条件を人手で定義しておかなくても障害を検出することが可能となる。また、文脈を限定して相関係数を算出するため、特定の条件のもとでのみ２つのデータ項目の相関が高くなるような相関関係を抽出でき、障害検出の精度が向上する。また、複数のデータ項目の間の因果関係が事前に推定されるため、複数の相関関係の崩れが同時に検出された場合であっても、障害原因に近いデータ項目の判定精度が向上する。よって、障害原因に近いデータ項目を優先的に調査するなど管理者の障害対応を効率化することができ、障害対応に有用な情報を出力することができる。
【符号の説明】
【０１４８】
１０  分析装置
１１  記憶部
１２  処理部
１３，１４，１５，１６  ログ
１３ａ，１４ａ  データ項目
１３ｂ，１４ｂ  時刻項目
１７  相関関係
１８  影響方向
１９  異常情報
２０  情報処理システム
【図１】
2018165857.tif 000006
【図２】
2018165857.tif 000007
【図３】
2018165857.tif 000008
【図４】
2018165857.tif 000009
【図５】
2018165857.tif 000010
【図６】
2018165857.tif 000011
【図７】
2018165857.tif 000012
【図８】
2018165857.tif 000013
【図９】
2018165857.tif 000014
【図１０】
2018165857.tif 000015
【図１１】
2018165857.tif 000016
【図１２】
2018165857.tif 000017
【図１３】
2018165857.tif 000018
【図１４】
2018165857.tif 000019
【手続補正書】
【提出日】平成30年3月16日(2018.3.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
１つの態様では、コンピュータに以下の処理を実行させる分析プログラムが提供される。複数回の第１の処理イベントに対応する複数の第１のレコードを含んでおり、複数の第１のレコードそれぞれは１つの第１の処理イベントに関連する値を示す第１のデータ項目と１つの第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、複数回の第２の処理イベントに対応する複数の第２のレコードを含んでおり、複数の第２のレコードそれぞれは１つの第２の処理イベントに関連する値を示す第２のデータ項目と１つの第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得する。第１のログの中の２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる第１のデータ項目の値と第２のログの中の当該第１のレコードに対応する第２のレコードに含まれる第２のデータ項目の値との比較に基づいて、第１のデータ項目と第２のデータ項目の間の相関関係を算出し、２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる第１の時刻項目の値と当該第１のレコードに対応する第２のレコードに含まれる第２の時刻項目の値との比較に基づいて、第１のデータ項目と第２のデータ項目の間の影響方向を判定する。それぞれが第１のデータ項目を含む複数の第３のレコードを含んでおり、第１のログより後に生成された第３のログと、それぞれが第２のデータ項目を含む複数の第４のレコードを含んでおり、第２のログより後に生成された第４のログとを取得する。第３のログの中の２以上の第３のレコードそれぞれについて当該第３のレコードに含まれる第１のデータ項目の値と第４のログの中の当該第３のレコードに対応する第４のレコードに含まれる第２のデータ項目の値との比較に基づいて、第１のデータ項目と第２のデータ項目とが相関関係を満たすか判定し、相関関係が満たされない場合、影響方向に基づいて、第１のデータ項目および第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また、１つの態様では、記憶部と処理部とを有する分析装置が提供される。また、１つの態様では、第１の処理装置と第２の処理装置とを有する分析システムが提供される。また、１つの態様では、コンピュータが実行する分析方法が提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
分析サーバ１００によるモデル生成は、運用開始前の事前準備として行われる。例えば、Ｗｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などの複数のサーバコンピュータを運用開始前に試運転させる。分析サーバ１００は、試運転中に生成されたログを収集し、収集したログを用いて運用開始前にモデルを生成する。監視サーバ２００による障害検出は、運用開始後に行われる。例えば、監視サーバ２００は、本番運用中にＷｅｂサーバ３１、ＡＰサーバ３２、ＤＢサーバ３３などの複数のサーバコンピュータから継続的にログを収集する。監視サーバ２００は、最新のログとモデルを照合して障害を検出する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１０６
【補正方法】変更
【補正の内容】
【０１０６】
モデル照合部２２５は、算出した相関係数と相関テーブル１４１に登録されていた相関係数との間の解離度を算出し、解離度が閾値以上である場合に相関関係の崩れが発生したと判定する。以上を相関テーブル１４１に登録された各相関関係について実行することで、相関関係の崩れが発生した全てのデータ項目ペアを検出することができる。少なくとも１つのデータ項目ペアの相関関係が崩れた場合、障害が発生したと判定される。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータに、
複数回の第１の処理イベントに対応する複数の第１のレコードを含んでおり、前記複数の第１のレコードそれぞれは１つの第１の処理イベントに関連する値を示す第１のデータ項目と前記１つの第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、複数回の第２の処理イベントに対応する複数の第２のレコードを含んでおり、前記複数の第２のレコードそれぞれは１つの第２の処理イベントに関連する値を示す第２のデータ項目と前記１つの第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得し、
前記第１のログの中の２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１のデータ項目の値と前記第２のログの中の当該第１のレコードに対応する第２のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１の時刻項目の値と当該第１のレコードに対応する第２のレコードに含まれる前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定し、
それぞれが前記第１のデータ項目を含む複数の第３のレコードを含んでおり、前記第１のログより後に生成された第３のログと、それぞれが前記第２のデータ項目を含む複数の第４のレコードを含んでおり、前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの中の２以上の第３のレコードそれぞれについて当該第３のレコードに含まれる前記第１のデータ項目の値と前記第４のログの中の当該第３のレコードに対応する第４のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する、
処理を実行させる分析プログラム。
【請求項２】
前記コンピュータに更に、前記第２のデータ項目と第３のデータ項目の間の他の相関関係を算出し、前記第２のデータ項目と前記第３のデータ項目の間の他の影響方向を判定する処理を実行させ、
前記異常情報の出力では、前記相関関係が満たされずかつ前記他の相関関係が満たされない場合、前記影響方向および前記他の影響方向に基づいて、前記第１のデータ項目、前記第２のデータ項目および前記第３のデータ項目のうち異常の最初の影響元を前記原因データ項目として判定する、
請求項１記載の分析プログラム。
【請求項３】
前記複数の第１のレコードそれぞれまたは前記複数の第２のレコードそれぞれは第３のデータ項目を含み、
前記相関関係の算出では、前記第１のデータ項目の値と前記第２のデータ項目の値と前記第３のデータ項目の値との対応に基づいて、前記第３のデータ項目の値が特定条件を満たす場合に前記第１のデータ項目と前記第２のデータ項目の間に成立する条件付き相関関係を前記相関関係として検出する、
請求項１記載の分析プログラム。
【請求項４】
複数回の第１の処理イベントに対応する複数の第１のレコードを含んでおり、前記複数の第１のレコードそれぞれは１つの第１の処理イベントに関連する値を示す第１のデータ項目と前記１つの第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、複数回の第２の処理イベントに対応する複数の第２のレコードを含んでおり、前記複数の第２のレコードそれぞれは１つの第２の処理イベントに関連する値を示す第２のデータ項目と前記１つの第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログと、を記憶する記憶部と、
前記第１のログの中の２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１のデータ項目の値と前記第２のログの中の当該第１のレコードに対応する第２のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１の時刻項目の値と当該第１のレコードに対応する第２のレコードに含まれる前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定し、
それぞれが前記第１のデータ項目を含む複数の第３のレコードを含んでおり、前記第１のログより後に生成された第３のログと、それぞれが前記第２のデータ項目を含む複数の第４のレコードを含んでおり、前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの中の２以上の第３のレコードそれぞれについて当該第３のレコードに含まれる前記第１のデータ項目の値と前記第４のログの中の当該第３のレコードに対応する第４のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する処理部と、
を有する分析装置。
【請求項５】
複数回の第１の処理イベントに対応する複数の第１のレコードを含んでおり、前記複数の第１のレコードそれぞれは１つの第１の処理イベントに関連する値を示す第１のデータ項目と前記１つの第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、複数回の第２の処理イベントに対応する複数の第２のレコードを含んでおり、前記複数の第２のレコードそれぞれは１つの第２の処理イベントに関連する値を示す第２のデータ項目と前記１つの第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得し、
前記第１のログの中の２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１のデータ項目の値と前記第２のログの中の当該第１のレコードに対応する第２のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１の時刻項目の値と当該第１のレコードに対応する第２のレコードに含まれる前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定する第１の処理装置と、
それぞれが前記第１のデータ項目を含む複数の第３のレコードを含んでおり、前記第１のログより後に生成された第３のログと、それぞれが前記第２のデータ項目を含む複数の第４のレコードを含んでおり、前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの中の２以上の第３のレコードそれぞれについて当該第３のレコードに含まれる前記第１のデータ項目の値と前記第４のログの中の当該第３のレコードに対応する第４のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する第２の処理装置と、
を有する分析システム。
【請求項６】
コンピュータが実行する分析方法であって、
複数回の第１の処理イベントに対応する複数の第１のレコードを含んでおり、前記複数の第１のレコードそれぞれは１つの第１の処理イベントに関連する値を示す第１のデータ項目と前記１つの第１の処理イベントの発生時刻を示す第１の時刻項目とを含む第１のログと、複数回の第２の処理イベントに対応する複数の第２のレコードを含んでおり、前記複数の第２のレコードそれぞれは１つの第２の処理イベントに関連する値を示す第２のデータ項目と前記１つの第２の処理イベントの発生時刻を示す第２の時刻項目とを含む第２のログとを取得し、
前記第１のログの中の２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１のデータ項目の値と前記第２のログの中の当該第１のレコードに対応する第２のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の相関関係を算出し、前記２以上の第１のレコードそれぞれについて当該第１のレコードに含まれる前記第１の時刻項目の値と当該第１のレコードに対応する第２のレコードに含まれる前記第２の時刻項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目の間の影響方向を判定し、
それぞれが前記第１のデータ項目を含む複数の第３のレコードを含んでおり、前記第１のログより後に生成された第３のログと、それぞれが前記第２のデータ項目を含む複数の第４のレコードを含んでおり、前記第２のログより後に生成された第４のログとを取得し、
前記第３のログの中の２以上の第３のレコードそれぞれについて当該第３のレコードに含まれる前記第１のデータ項目の値と前記第４のログの中の当該第３のレコードに対応する第４のレコードに含まれる前記第２のデータ項目の値との比較に基づいて、前記第１のデータ項目と前記第２のデータ項目とが前記相関関係を満たすか判定し、前記相関関係が満たされない場合、前記影響方向に基づいて、前記第１のデータ項目および前記第２のデータ項目のうち異常の影響元である原因データ項目を示す異常情報を出力する、
分析方法。