説明

根本原因分析を実行する方法および装置

【課題】巨大且つ複雑なITシステムにおける問題発生に対する根本原因分析を実行する方法を提供する。
【解決手段】根本原因分析エンジンが、イベントの持続期間およびイベントの段階的な削除を用いて分析精度を向上させると共に必要な計算回数を減らす。イベントの通知を受信する都度、関連するルールのマッチング率が再計算される。計算結果は分析エンジン内のルールメモリに保存される。各イベントは有効期間を有し、持続期間が満了した場合、当該イベントがルールメモリから削除される。ルールメモリに保存されたイベントは、ルールメモリに保存された他のイベントに影響を及ぼすことなく削除できる。分析エンジンは次いで、削除されたイベントに関係して影響を受けたルールに関してのみ再計算を実行することにより、各ルールのマッチング率を再計算することができる。

【発明の詳細な説明】
【技術分野】
【0001】
最近の傾向として、企業の情報技術(IT)システムは益々巨大且つ複雑になっている。例えば、いくつかの企業において、ITシステムはもはや単なる企業インフラではなく、当該企業と共同で企業の価値および競争力を高めるべく動作することが必要である。更に、ITシステムの急激な成長は大企業に限らず、今や中規模の企業でも数百台のサーバを保有することができる。また、サーバの仮想化技術の急激な発展がこの傾向を加速させている。
【背景技術】
【0002】
データセンタおよびその他のITシステムの大規模な成長の最近の傾向にもかかわらず、IT組織の管理者は依然として、巨大且つ複雑なITシステムを適切に動作させ続けるために、これらを効率的に管理することが求められている。問題が生じた場合、管理者は問題があると認識して、問題を分析し、次いで可能な限り早く問題を解決する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
通常、ITシステムの健全性の監視、および発生し得る問題の分析は、何らかの形式の可用性および性能管理ソフトウェアを用いて実行される。このソフトウェアは通常、ITシステム内の装置を発見し、それらの接続を識別して、時には問題が起きている場所を識別する能力も含んでいる。そのような管理ソフトウェアの使用を通じて、管理者は、以前は手動で実行しなければならなかった多くの退屈なオペレーション作業から解放される。しかし、上述のように、ITシステム自体が急速に発展している一方で、IT予算は通常、より制約される傾向にある。この結果、各々の管理者がITシステムの非常に大きな領域を管理する責任を負うことになり、これらのシステムの規模では、発生する恐れのある問題の実際の場所および「根本原因」の特定が困難になる場合がある。例えば、いくつかのベンダーが根本原因分析用の製品を提供しているが、これらの製品は、分析エンジンに入力すべきイベントの時間範囲を決定するための何らの機構も提供できていない。これは、計算コストが非効率である上に分析の精度が不十分であることを意味する。従って、ITシステム環境における故障、欠陥その他の事象の根本原因を管理者が発見することを支援するソリューションに対するニーズが依然として存在する。
【0004】
根本原因分析は、情報システム環境におけるエラーの根本原因である情報システムのノードの位置を特定する技術である。例えば、サーバ、スイッチ、ストレージ等、多くの異なるノードからなるトポロジを有する情報システムにおいて、それらのノードの1つがシステムにおける故障、エラーその他の事象を引き起こした場合、故障はシステムトポロジ内の当該ノードに接続している他のあらゆるノードに影響を及ぼし、ITシステム内の異なる多くのノードからエラーイベントメッセージが管理者へ発行されることがある。従ってある場合には、システム内のどのノードがエラーの実際の根本原因であるかを管理者が判定することが極めて困難になり得る。
【0005】
根本原因分析エンジンは、複数のエラーイベントメッセージおよびそれらの相互関係を分析し、次いで分析の結果として計算根本原因を出力する。現在、広範に用いられている2種類の公知の根本原因分析技術がある。一つはスマーツコードブック相関技術として知られており、もう一方はルール推論エンジンとも呼ばれるエキスパートシステムによる分析を利用する技術であって、例えばReteアルゴリズムおよび日立社のES/カーネルが含まれる。
【0006】
スマーツコードブック相関技術(CCT)
CCTは、行動モデルおよびトポロジに基づいて自動的にコードブックを生成する。一群のイベントを兆候としてコードブックに入力することにより問題を容易に出力できる。しかし、CCTは、コードブックに入力されるイベントの時間範囲を決定する何らの機構も提供できない。従って、生成されたイベントの時系列上の正しい位置を判定する手段が無い。イベントの入力範囲が不正確な場合、得られた結果もまた不正確であり得る。例えば、一日前にエラーが発生し、次いで今日別のエラーが発生したならば、2つのエラーは無関係であると結論付けることが現実的である場合が多い。しかし、CCT分析は通常、イベントが発生する都度、先行イベントを含めて実行され、従って同一イベントを繰り返し処理する必要があるため、分析の精度に影響を及ぼすとともにイベントの根本原因を計算するコストが大幅に増大する。
【0007】
従来のエキスパートシステム
「Reteマッチングアルゴリズム」は、従来のエキスパートシステムの一例である。この種のエキスパートシステムは、ルールベースのマッチングアルゴリズムとして機能する。本明細書で以下に引用する「Reteマッチングアルゴリズム」においてB.Schneierが議論するように、Reteアルゴリズムはパターンマッチングにおける比較の速度を向上させるべく1970年代後半に開発された。Reteアルゴリズム以前は、旧来システムではパターンマッチングの実行に自身の時間の90%も費やしていたことが研究により示された。これらのシステムはパターンマッチング処理全体を反復し、各々のルールを順に採用して、データメモリを見渡して特定のルールの条件が満たされるか否かを判定してから次のルールへ進む。その後、効率を上げるべくデータ要素およびルール条件に索引付けを行なう方法が発見されていて、プログラムの実行速度を向上させるものの、依然として一連のルールおよびデータ要素全体に渡る反復を必要とする。Reteアルゴリズムは、この反復ステップの大部分を除外するため、競合するアルゴリズムに比べて大幅に改良されている。
【0008】
Reteマッチングアルゴリズムは、競合集合の現在の内容をメモリに保存して、データ要素がメモリに追加および削除されたときのみ競合集合から項目を追加および削除することによりデータ要素全体にわたる反復を回避する。例えば、従来の反復的なパターンマッチングシステムにおいて、2つのほぼ同一のルールを追加する場合、各々のルールに対して反復処理全体が実行される。しかし、Reteアルゴリズムでは、ほぼ同一のルールは、Reteの木構造ソーティングネットワークによって冗長であると扱うことができる。Reteパターンコンパイラは、個々の副条件のネットワークを構築する。これは最初に、プロダクションルールの各要素に個別に注目して、各属性を個別にテストするノードの連鎖を構築する。次いで、要素同士の比較に注目して、ノードの連鎖を新規ノードに接続する。最後に、ターミネータノードを追加して、プロダクションルールの全ての条件が満たされた旨の信号を送る。追加的なプロダクションルールは、同一ネットワークに接合される。それらに共通のテストが存在しない場合、相互に全く作用しない。
【0009】
関連技術にはMasui他による米国特許第4,727,487号明細書「Resource allocation method in a computer system」、Tano他による米国特許第4,761,746号明細書「Dynamic reconstruction method for discrimination network」、Masui他による米国特許第4,868,763号明細書「Knowledge−based system having plural processors」、Tano他による米国特許第5,146,537号明細書「Method for judging whether conditions are satisfied by using a network having a plurality of nodes representing the conditions」、Tano他による米国特許第5,353,385号明細書「Inference method and apparatus for use with knowledge base system and knowledge base system support method and apparatus using the inference method and apparatus」、Yemini他による米国特許第7,107,185号明細書「Apparatus and method for event correlation and problem reporting」、Ohsie他による米国特許第7,254,515号明細書「Method and apparatus for system management using codebook correlation with symptom exclusion」、Schneier,B.による「The Rete Matching Algorithm」(Dr. Dobb’s Journal,Dec.5,2002)、および、Forgy,C.L.による「Rete: A fast algorithm for the many pattern/many object pattern matching problem」(ARTIFICIAL INTELLIGENCE, Vol.19,no.1,1982,pp.17−37)が含まれ、これらの開示内容を全て本明細書に引用している。
【課題を解決するための手段】
【0010】
本発明の例示的な実施形態は、根本原因分析に伴う計算の精度を向上させコストを減らすソリューションを提供する。本発明の上記および他の特徴並びに効果は、以下の好適な実施形態の詳細な説明から当業者には明らかになろう。
【0011】
添付の図面は、上述した一般的な説明および以下の好適な実施形態の詳細な説明と合わせて、現在考察されている本発明の最良の形態の好適な実施形態の原理の例示および説明に有用である。
【図面の簡単な説明】
【0012】
【図1】本発明の方法および装置が適用できるハードウェアおよび論理構成の一例を示す。
【図2】情報システムにおける機能関係の一例を示す。
【図3】ルールリポジトリの一例を示す。
【図4】ルールメモリ関連付けの一例を示す。
【図5】イベントメッセージの例示的なデータ構造を示す。
【図6】イベントキューテーブルの例示的なデータ構造を示す。
【図7】イベント消去設定テーブルの例示的なデータ構造を示す。
【図8】イベント消去タスクテーブルの例示的なデータ構造を示す。
【図9】マッチング率監視設定テーブルの例示的なデータ構造を示す。
【図10】イベント消去に続く減衰の例のグラフ表現を示す。
【図11】ルール決定の例の概念図を示す。
【図12】ルールローダープログラムの処理例を示す。
【図13】イベント受信プログラムおよびイベント書込プログラムの処理例を示す。
【図14】マッチング率評価プログラムの処理例を示す。
【図15】マッチング率監視プログラムの処理例を示す。
【図16】イベント消去プログラムの処理例を示す。
【発明を実施するための形態】
【0013】
本発明の以下の詳細な説明において、開示の一部をなす添付図面を参照するが、これらは本発明を実施できる例示的な実施形態を示すものであって本発明を限定するものではない。これらの図面において、複数の図を通じて同一の符号は同一の構成要素を示している。更に、詳細な説明は各種の例示的な実施形態を提供するが、以下に記述および図示するように、本発明は本明細書に記述および図示する実施形態に限定されるものではなく、当業者には公知または将来公知となる他の実施形態に拡張できる点に注意されたい。本明細書において「一実施形態」または「本実施形態」に言及する場合、当該実施形態との関連で記述されている特定の特徴、構造または特性は、本発明の少なくとも1つの実施形態に含まれることを意味しており、本明細書の各所でこれらの語句が出現しても必ずしも全て同一の実施形態を指している訳ではない。また、以下の詳細な説明において、本発明を完全に理解されるよう多くの具体的な詳細事項を開示している。しかし、当業者には明らかなように、本発明を実施するためにこれらの具体的な詳細事項の全てが必要な訳ではない。他の状況において、本発明を無用に分かり難くしないよう、公知の構造、材料、回路、処理およびインタフェースについては詳細に記述せず、および/またはブロック図の形式で示す場合がある。
【0014】
更に、以下の詳細な説明のある部分は、コンピュータ内部の動作のアルゴリズムおよび記号的表現として示す。これらのアルゴリズム的記述および記号表現は、データ処理技術に精通した当業者が自身の発明の本質を他の当業者に最も効果的に伝達すべく用いる手段である。アルゴリズムとは、所望の最終状態または結果に達する一連の定義されたステップである。本発明において、実行されるステップは、有形の結果を実現するための有形の量を物理的に操作することを要求する。通常、但し必須ではないが、これらの量は、保存、転送、結合、比較、および他の操作が可能な電気または磁気信号の形式をなす。原理的に共通に利用できるとの理由で、これらの信号をビット、値、要素、記号、文字、項目、数、命令等と称することが往々にして便利であることがわかっている。しかし、これらの全ておよび同様の項目は、適切な物理量に関連付けられるべきものであり、これら物理量に付けられた便宜的なラベルに過ぎないことに留意すべきである。特に別途明言しない限り、以下の記述から明らかなように、本明細書の記述を通じて、「処理する」、「計算する」、「算出する」、「判定する」、「表示する」等の用語を用いた説明は、コンピュータシステムまたは当該コンピュータシステムのレジスタおよびメモリ内の物理的(電子的)な量として表現されたデータを操作して、当該コンピュータシステムのメモリまたはレジスタまたは他の情報記憶、伝送または表示装置内の物理量として同様に表現された他のデータに変換する他の情報処理装置の動作および処理を含んでいてよい。
【0015】
本発明はまた、本明細書における動作を実行する装置に関する。この装置は、必要な目的のために特別に構築されていても、または、1つ以上のコンピュータプログラムにより選択的に起動または再設定される1つ以上の汎用コンピュータを含んでいてもよい。そのようなコンピュータプログラムは、例えば、光ディスク、磁気ディスク、読出し専用メモリ、ランダムアクセスメモリ、固体装置およびドライブ等のコンピュータ可読記憶媒体、または電子情報の保存に適している他の任意の媒体に保存できるが、これらに限定されない。本明細書に示すアルゴリズムおよびディスプレイは、いかなる特定のコンピュータまたは他の装置にも本質的には関係していない。各種の汎用システムを、本明細書の教示によるプログラムおよびモジュールと共に用いてもよいが、所望の方法ステップを実行するためのより特化した装置を構築した方が便利なことが分かる場合がある。これら各種のシステムの構造は以下に開示する説明で明らかになる。本発明はまた、いかなる特定のプログラミング言語も前提としては記述していない。以下に記述するように、本発明の教示を実行するために各種のプログラミング言語を用いてもよいことが理解されよう。プログラム言語の命令は、1つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、またはコントローラにより実行できる。
【0016】
以下でより詳しく述べるように、本発明の例示的な実施形態は、より高い精度およびより高い計算費用対効果を有する、根本原因分析を実行する装置、方法、およびコンピュータプログラムを提供する。例示的な実施形態によれば、分析エンジンは各々のイベントを受け取った各時点でのルールのマッチング率を計算し、計算の結果が分析エンジンのルールメモリに保存される。マッチング率は、特定の根本原因分析の結果を判定するために、どのルールの結論が根本理由を正確に識別する可能性が最も高いかを判定するために用いる確率または計算された比率(すなわち、確度)である。これらの実施形態でルールメモリに保存される各イベントは、ルールメモリに保存される他のイベントに影響を及ぼすことなくルールメモリから削除することが可能である。更に、各イベントには当該イベントの生存時間である有効期間が与えられており、有効期間が満了すると、分析エンジンはルールメモリから当該イベントを削除する。従って、本発明の例示的な実施形態において、分析エンジンは、イベントが削除された際に影響を受けるルールのマッチング率を再計算するだけでマッチング率を再計算することが可能である。従って、本発明の例示的な実施形態において、分析エンジンが必要に応じて増加分または減少分のイベントを処理するため、根本原因分析を実行するための計算コストが減少する。更に、古いイベントを削除して根本原因分析計算に対するそれらの影響を排除できるため、精度を向上させながら同時に全体的な計算要件を減らすことができる。
【実施例】
【0017】
ハードウェアおよび論理構成
図1に、本発明の実施形態を実装可能な情報システムの例示的なハードウェアアーキテクチャおよび論理構成を示す。図1のシステムは、監視コンピュータ101、1つ以上のサーバまたは他のコンピュータ102、1つ以上のネットワークスイッチまたは他のネットワーク装置103、およびLAN(ローカルエリアネットワーク)105等のネットワークを介して通信すべく接続する1つ以上のストレージ104を含む。
【0018】
監視コンピュータ101は、CPU111、メモリ112、ハードディスクドライブ(HDD)113等の記憶媒体、ビデオインターフェース114、およびシステムバス116を介して接続するネットワークインターフェース115(I/F)を含む汎用コンピュータであってよい。監視コンピュータ101の論理モジュールおよびデータ構造は、ルールメモリ121、ルールローダープログラム122、イベント受信プログラム123、イベント書込プログラム124、マッチング率評価プログラム125、マッチング率監視プログラム126、イベント消去プログラム127、外部モジュール128、ルールリポジトリ131、イベントキューテーブル132、イベント消去設定テーブル133、イベント消去タスクテーブル134、およびマッチング率監視設定テーブル135を含む。ルールメモリ121は、イベントの状態および根本原因分析の結果として導かれたルールを表すオブジェクトモデルを保存する。ルールローダープログラム122、イベント受信プログラム123、イベント書込プログラム124、マッチング率評価プログラム125、マッチング率監視プログラム126、イベント消去プログラム127、および外部モジュール128は、メモリ112または他の計算機可読媒体に保存され、CPU111により実行される。以下に記述するルールリポジトリ131、イベントキューテーブル132、イベント消去設定テーブル133、イベント消去タスクテーブル134、マッチング率監視設定テーブルのデータ構造は、ディスク113または他の適当な計算機可読媒体に保存されていてよい。
【0019】
監視コンピュータ101は、LAN105と通信すべく接続されて、サーバ102、ネットワークスイッチ103、およびストレージ104等、監視対象である動作ノードからイベントメッセージを受信するために用いるネットワークインターフェース115を有する。ディスプレイ117はビデオインターフェース114に接続されていて、外部モジュール128からの根本原因分析の結果および他の情報を管理者に提示するために用いられる。
【0020】
各サーバ102は、当技術分野で公知のようにアプリケーション等を実行させている監視対象ノードであってよい。サーバ102は、CPU146、メモリ/ストレージ147、およびネットワークインターフェース142を含む汎用コンピュータであってよい。各サーバ102は、特定の状態変化が検出された場合にLAN105を介して監視コンピュータ101にイベントメッセージを送る監視エージェント141を含んでいてよい。例示する実施形態において、各サーバ102はまた、本発明の行動を説明する一例としてiSCSI(インターネット小型計算機システムインターフェース)イニシエータ143を有する。例えば、サーバ102はiSCSIディスク151を仮想的にローカルHDDのように利用できるが、これはiSCSIイニシエータ143およびストレージ104の記憶容量により実現される。更に、代替的な実施形態において、iSCSIの代わりにまたはこれに加えて、他の通信および記憶プロトコルを用いてもよい。
【0021】
各ストレージ104は、同様に当該技術分野で公知であるように、サーバ102上で動作するアプリケーション用の記憶容量を提供するための、または他の目的のための監視対象ノードであってよい。ストレージ104はストレージコントローラ161、ネットワークインターフェース163、および記憶媒体162を含み、記憶媒体162は本実施形態ではHDDであってよいが、固体記憶媒体、光記憶媒体等、他の種類の記憶媒体であってよい。これらの実施形態において、ストレージ104は、サーバ104に対しiSCSI論理ボリュームを記憶容量として提供すべく構成される。従って、例示する実施形態において、3台のサーバ102a〜cがネットワークスイッチ103を介してストレージ104に接続されていて、ストレージ104が各サーバ102a〜cに対してiSCSIボリュームを提供する。また、ストレージ104は、ストレージ104の状態を監視して監視コンピュータ101にイベントを報告できる監視エージェント166を含んでいてよい。あるいは、サーバ102の1台上の監視エージェント141が、ストレージ104およびネットワークスイッチ103の状態を監視することができる。更に、ある場合には、ネットワークスイッチ103は自身の監視エージェントを有していてよい。
【0022】
機能関係ブロック図
図2に、例示的な実施形態による情報システム内における例示的な機能関係を表すブロック図を示す。図2において、監視コンピュータ101のモジュールおよびデータ構造を含む監視システム201は、サーバ102、ネットワークスイッチ103、およびストレージ104等の複数の監視対象ノード202を監視すべく構成される。監視システム201において、ルールローダープログラム122は、ルールリポジトリ131からのルールを読み、それらをルールメモリ121にロードする。イベント受信プログラム123は、監視対象ノード202を含む情報システムの監視対象部分からイベントメッセージを受信して、これらのイベントメッセージをイベントキューテーブル132に保存すべく構成される。例えば、サーバ102、スイッチ103、およびストレージ104上の監視エージェントは、イベントが生起するとイベントメッセージをイベント受信プログラム123に送ることができる。イベント書込プログラム124は、イベントキューテーブル132からイベントメッセージを取得して、取得したイベントメッセージをルールメモリ121に書き込む。イベント書込プログラム124はまた、イベント消去設定テーブル133の設定に従い、イベント消去タスクテーブル134内にイベント消去タスクを生成する。イベント書込プログラム124は、自身のプロセス終了時にマッチング率評価プログラム125を起動する。マッチング率の値は新規イベントにより変化する可能性があるため、マッチング率評価プログラム125はイベントの入力に関連する各ルールについてのマッチング率を評価する。マッチング率評価プログラム125は、自身のプロセス終了時にマッチング率監視プログラム126を起動する。マッチング率監視プログラム126は、マッチング率監視設定テーブル135の条件に従いマッチング率の値を調べる。マッチング率が条件を満たす場合、マッチング率監視プログラム126は1つ以上の外部モジュール128を起動する。外部モジュール128の一例として、システム管理者に根本原因に関する通知を送るモジュールがある。イベント消去プログラム127はタイマーにより起動されて、イベント消去タスクテーブル134に基づいて周期的にタスクを実行する。イベント消去プログラム127は、以前に生起したイベントを当該イベントから経過した時間数に基づいて消去する。
【0023】
ルールリポジトリおよびルール
一般ルールは、システムトポロジから独立した形式で記述される条件およびアクションの組である。拡張ルールは、一般ルールおよび特定のトポロジから伝播されて生成されるルールである。各々の顧客に応じて監視対象環境が情報システム毎に大幅に変化し得るため、システムトポロジに基づいて一般ルールを拡張ルールに拡張する処理が最初に必要となる。
【0024】
図3に、ルールリポジトリ131に常駐し、図1に示す情報システムのために伝播される拡張ルールであるルール301〜305の例を示す。一般に、ルールは2つの部分、すなわち「IF」部311と呼ばれる第1の部分311および「THEN」部312と呼ばれる第2の部分312に分けることができる。IF部311は、1つ以上の条件要素を含んでいてよい。例えば、ルール301は、IF部311に4つの条件、すなわち「<ServerA iSCSI_Comm_Err(サーバAのiSCSI通信エラー)>」、「<ServerB iSCSI_Comm_Err(サーバBのiSCSI通信エラー)>」、「<ServerC iSCSI_Comm_Err(サーバCのiSCSI通信エラー)>」、および「<Storage1 Controller_Err(ストレージ1のコントローラエラー)>」を有する。従って、「iSCSI_Comm_Err」のようなエラーイベントが「サーバA」から受信された場合に、条件「<ServerA iSCSI_Comm_Err>」は真になる。IF部311の全ての条件が真ならば、特定のルールに従いTHEN部312の結論要素は真であると推定される。例えば、ルール311は結論要素「<Storage1 Controller_Err>」を有する。従って、ルール301によれば、サーバA、サーバB、およびサーバCは通信エラーを報告し、ストレージ1はコントローラエラーを報告し、ルール301は根本原因がストレージ1におけるコントローラエラーであることを示す。また、ルールが複数の結論を有する(すなわち、THEN部が複数のノードにおける事象を指摘する等)ケースが起こり得る。例えば、各々のIF部に同じ条件を有するが各々のTHEN部には異なる結論を有する複数のルールを定義することが好ましい場合にルールのTHEN部が複数の結論を有していてよい。例えば、「IF A B C THEN X(A B CならばX)」および「IF A B C THEN Y(A B CならばY)」のような2つのルールがある場合、これらのルールを結合して1つのルール「IF A B C THEN X Y(A B CならばXおよびY)」として定義できる。
【0025】
ルールメモリ
図4に、ルールメモリ121に保存されたオブジェクトモデルのルールメモリ関連付けの例示的な構成図を示す。図4において、3種類のオブジェクト、すなわち、条件オブジェクト401、演算子オブジェクト402および結論オブジェクト403)がある。これらのオブジェクトおよびその接続は、ルールローダープログラム122により生成される。条件オブジェクト401は、4種の属性、すなわちノードの名前である「ノード名」、イベントの種別である「イベント種別」、イベントが受信された日時である「受信日時」、および条件に割り当てられた重み値である「重み」を含む。演算子オブジェクト402は「Not」属性を有し、真または偽の値をとり得る。例えば、ルールに書かれた条件要素が「<NOT Storage1 Volume_Err(ストレージ1のボリュームエラーではない)>」等の指定された「NOT」単項演算子である場合、この属性の値は「真」に設定され、さもなければ値は「偽」に設定される。結論オブジェクト403は4種の属性、すなわち特定のルールの識別子を指定する「ルール名」、ルールが適用されるノードを指定する「ノード名」、エラーの原因を識別する「原因」、および正確さの確率を示す「マッチング率」(MR)を有し、換言すれば、MR値はこの結論がイベントの根本原因である確度を示す。このオブジェクトモデルは条件要素の重複なしに形成される。ルールローダープログラム122は、ルールに規定された条件要素に従い条件オブジェクト401を生成する際に重複を除外する。これにより、イベント書込プログラム124は、受信した1つのイベントに対してイベントを何回も書く必要が無い。ルールは、結論オブジェクト403と演算子オブジェクト402を接続することにより表される。例えば、結論オブジェクト403aは、演算子オブジェクト402a、402b、402c、402dとの4つの接続を有する。各演算子オブジェクト402は、ちょうど1つの条件オブジェクト401に接続している。従って、「ルール1」のIF部は4つの条件からなる。結論オブジェクト403bもまた、演算子オブジェクト402a、402b、402c、402dとの4つの接続を有する。演算子オブジェクト402aは、結論オブジェクト403a、403b、403cにより共有される。
【0026】
本発明の例示的な実施形態における「マッチング率」は、ルールの条件要素の総数を構成する要素のうちどの要素が真になるかに従う率で計算される確度である。マッチング率を計算する公式は以下のように表すことができる。
MR=真の条件要素数/条件要素の総数
【0027】
図4において、条件要素401a〜401dは真であり、ルール1の条件要素の総数は4である。従って、分析エンジンは4つ中の4つ(4/4)=1.0という率を計算する。ルール2に関して、条件要素の総数は4であり、真の条件要素の数は3つしかないため、ルール2のオブジェクト結論403bのマッチング率について結果的に得られる率は3/4=0.75である。従って、マッチング率を設定することにより、分析エンジンは、ノードのうちの1つに関するイベントメッセージが分析エンジンに送られない場合に生じ得るように、たとえ1つの条件要素が真で無い場合でも、最も確率が高い結論を決定できる。これは例えば、ノードが監視システム201にエラーイベントメッセージを送信せずに故障した状況で生じる場合がある。
【0028】
イベントメッセージ
図5に、イベント受信プログラム123が監視対象ノードの1つにある監視エージェント等から受信したイベントメッセージ505の例示的なデータ構造を示す。イベントメッセージ505は3種の情報、すなわち、「ノード種別」501、「ノード名」502、および「イベント種別」503を含む。ノード種別501は、サーバ、ネットワークスイッチまたはストレージ等、イベントメッセージが関係するノードの種別である。ノード名502は、情報システム環境において特定のITノードを識別できる一意な名前である。イベント種別503は生起したイベントの種別を示す。
【0029】
イベントキューテーブル
図6に、監視コンピュータ101に常駐するイベントキューテーブル132の例示的なデータ構造を示す。イベント受信プログラム123は、監視対象ノード202からイベントメッセージ505を受信したならば、イベント情報をこのテーブルに入れる。イベントキューテーブル132は、報告されたイベントのキューのリストを生成するため、イベントの入力−出力順序は先入れ先出し(FIFO)原則に従う。イベントキューテーブル132は、4つのカラム、すなわち、イベントを生成したノードの種別のリストを生成するノード種別601、対応するノードの内部名を示すノード名602、生起したイベントを示すイベント種別603、およびイベントメッセージが受信された日時を示す受信日時604を含む。ノード種別601、ノード名602、およびイベント種別603は、受信されたイベントメッセージ505から取得される。受信日時604は、イベント受信プログラム123がイベントメッセージを受信した日時である。イベントキューテーブル132は、イベント書込プログラム124のバッファとして機能する。イベント書込プログラム124は、イベントキューテーブル132からイベント情報を取得し、当該イベント情報をルールメモリ121に書き込む。
【0030】
イベント消去設定テーブル
図7に、監視コンピュータ101に常駐するイベント消去設定テーブル133の例示的なデータ構造を示す。イベント消去設定テーブル133は、有効期間(生存時間)および各種のイベントの減衰率を指定するイベント消去プログラム127の設定情報を含む。イベント消去設定テーブル133は、受信されたイベントの各々に対して指定する有効期間および減衰率を決定すべくイベント書込プログラム124により使用される。イベント消去設定テーブル133において、ノード種別701は、イベントメッセージが生成されたノードの種別、イベント種別702はイベントの種別、有効期間703はイベントが考慮対象であり続ける時間(すなわちイベントの有効期間)、および減衰率704はイベントの重要性が時間の経過につれて減少する量である。有効期間703および減衰率704は、ノードの種別とイベント種別の組合せの各々に対して定義される。有効期間703は、イベントメッセージを受信した時点から、ルールメモリ121からのイベントの減衰が始まる時点までの期間である。減衰率704は、条件オブジェクト401の重み値(重み値)が減少する1分当たりの率である。例えば、有効期間が10分で減衰率が毎分0.2ポイントである場合、イベントが受信された10分後に、対応する条件オブジェクト401内の重み値が減少し始める。例えば、減衰率が毎分0.2であるため、11分経過した時点で重み値は0.8になり、12分経過した時点で重み値は0.6になって、重みが0.0または負値になるまで重み値は毎分減少し続ける。
【0031】
イベント消去タスクテーブル
図8に、監視コンピュータ101に常駐するイベント消去タスクテーブル134の例示的なデータ構造を示す。イベント消去タスクテーブル134を用いて、各々の受信されたイベントの有効期間を管理する。イベント消去タスクテーブル134は、イベントが受信されるとイベント書込プログラム124により書き込まれて、イベントの消去を開始する時点を決定すべくイベント消去プログラム127により使用されるものであり、開始時刻801、ノード名802、イベント種別803、および減衰率804を含む。開始時刻801はイベント消去タスクを開始すべき日時である。開始時刻801は、公式「受信日時604+有効期間703」により計算される。ノード名802は内部ノード名、イベント種別803はイベントメッセージを生起させたイベントの種別である。イベント消去プログラム127は、これら2つの値(ノード名802およびイベント種別803)により対象とする条件オブジェクト401を識別する。従って、ノード名802およびイベント種別803はイベントキューテーブル132内のノード名602およびイベント種別603から転記される。減衰率804はイベント消去設定テーブル133から転記される。
【0032】
マッチング率監視設定テーブル
図9に、監視コンピュータ101に常駐するマッチング率監視設定テーブル135を示す。マッチング率監視設定テーブル135は、条件901およびアクション902を含む。条件901は、マッチング率監視プログラム126が調べる条件である。アクション902は、対応する条件が満たされた場合に外部モジュール128が実行すべきアクションである。例えば、エントリ911において条件MRが0.8未満である場合、管理者に電子メールを送る必要がある。
【0033】
重み値の減衰
図10に、イベント書込からイベント消去までの条件オブジェクト401の重みの変化を説明するため、イベント消去の時刻に達した後の減衰の例を表すグラフを示す。条件オブジェクト401の最大重み値は1.0である。図10に示すように、時刻1001において、イベント書込プログラム124は新規イベント情報をルールメモリ121に書き込む際に、対応する条件オブジェクト401の重みが1.0に設定される。開始時刻1001から第1の満了時刻1002までの有効期間中、特定の条件オブジェクトの重み値は1.0に保たれる。次いで、1003に示すように、有効期間が第1の満了時刻1002に達すると、最終満了時刻1004に至るまで当該条件オブジェクトに割り当てられた減衰率704に従いイベント消去プログラム127により重み値が1.0から0に減らされる。
【0034】
結論オブジェクトのマッチング率値変動
図11に、イベント書込からイベント削除に至る結論オブジェクト403のマッチング率(MR)値の変動を説明するグラフを示す。図11において、ルール1(1101)、ルール2(1102)、およびルール3(1103)を説明用のルールの例として示す。更に、太い矢印1121はイベントの初期書込のタイミングを示し、細い矢印1123はイベント消去(減衰)が開始されるタイミングを示し、各々の対応する太い矢印1121と細い矢印1123の間で伸びているリボン1122は、対応するイベントの有効期間を示す。
【0035】
イベント書込プログラム124が新規または更新されたイベント情報をルールメモリ121に書込んだ場合、各々のルールについてマッチング率(MR)値が再計算される。例えば、イベントA〜Gが追加または削除されるにつれて、破線1111は時間経過に伴うルール1(1101)のMR値の変化を示し、実線1112は時間経過に伴うルール2のMR値の変化を示し、点線1113は時間経過に伴うルール3のMR値の変化を示す。例えば、イベント書込プログラム124が1130のタイミングでイベントAを書込んだ場合、ルール1およびルール2の両方が自身のIF部311にイベントAを有するため、MR値はルール1に対して0.25(1/4)およびルール2に対して0.33(1/3)として計算される。
【0036】
次に、イベント書込プログラム124が1131のタイミングでイベントBを書込んだ場合、ルール1について4つのIF条件のうち2つが満たされるため、ルール1に対してMR値は0.5(2/4)として再計算される。ルール2およびルール3は共に自身のIF部にイベントBを有していないため、ルール2およびルール3のMR値は変化しない。同様に、タイミング1132でイベントCが追加された場合、ルール1のMR値は0.75(3/4)まで上がり、ルール2のMR値は0.66の(2/3)まで上がる。タイミング1133でイベントDが生起した場合、IF部内の全ての条件が満たされるためルール1のMR値は1(4/4)まで上がる。更に、Dがルール3のIF部の条件の1つであるためルール3のMR値は0.5(1/2)まで上がる。ルール2はイベントDの影響を受けない。
【0037】
イベントAの生存期間が1141のタイミングで終了した場合、MR値はルール1について0.75(3/4)、ルール2について0.33(2/3)として再計算される。従って、情報システムの管理者は、図11に示す例のような一連のMR値計算を通じて、たとえルールのMR値が1.0に等しい場合でも、イベントの最も可能性の高い根本原因を特定できる。
【0038】
ルールローディングの処理
図12に、監視コンピュータ101内でルールローダープログラム122により実行されるルールローディングの処理例のフローチャートを示す。ルールローダープログラム122は、監視コンピュータが起動されるとこの処理を開始すべく構成されていてよい。
【0039】
ステップ1200において、ルールローダープログラム122は、情報システムのシステムトポロジに基づいて一般ルールから拡張ルールを生成し、上述のように拡張ルールをルールリポジトリ131に保存する。
【0040】
ステップ1201において、ルールローダープログラム122は、ルールリポジトリ131からルールを取得し、取得したルールを構文解析する。
【0041】
ステップ1202において、ルールローダープログラム122は、ステップ1201で取得したルールのIF部311から条件要素を取得する。
【0042】
ステップ1203において、ルールローダープログラム122は、特定の条件要素に対応する条件オブジェクト401がルールメモリ121内に存在するか否かを調べる。
【0043】
ステップ1204において、ルールローダープログラム122が対応する条件オブジェクト401を見つけられなかった場合、処理はステップ1205へ進む。一方、条件オブジェクト401が見つかった場合、処理はステップ1206へ進む。
【0044】
条件オブジェクトが見つからなかった場合、ステップ1205において、ルールローダープログラム122は特定の条件要素のための条件オブジェクト401および演算子オブジェクト402をルールメモリ121内に生成し、次いで新たに生成された条件オブジェクト401と演算子オブジェクト402を互いに接続する。
【0045】
ステップ1206において、ルールローダープログラム122は、IF部311内の全ての条件要素が処理されたか否かを調べる。全て処理済みならば、処理はステップ1207へ進み、さもなければ処理はステップ1202に戻る。
【0046】
ステップ1207において、ルールローダープログラム122は、ステップ1201で選択されたルールのTHEN部312から結論要素を取得する。
【0047】
ステップ1208において、ルールローダープログラム122は、ルールメモリ121内に結論オブジェクト403を生成し、次いで生成された結論オブジェクト403と全ての関連する演算子オブジェクト402を接続する。
【0048】
更に、2つ以上の結論要素をステップ1207で取得した(すなわち、特定のルールが上述のように2つ以上の結論を有する)場合、ルールローダープログラム122は対応する結論オブジェクト403をルールメモリ121内に生成し、次いで各々の生成された結論オブジェクト403と全ての関連する演算子オブジェクト402をステップ1208で接続する。
【0049】
例えば、図4に示すように、ルール1の条件オブジェクト401は、401a、401b、401c、および401dである。これらの条件オブジェクト401a〜dは各々演算子オブジェクト402a〜402dに接続している。ルール1の結論オブジェクト403は403aである。従って、接続403a〜402a〜401a、403a〜402b〜401b、403a〜402c〜401c、および403a〜402d〜401dが、ルール1のために生成されなければならない。同様に、ルール2の条件オブジェクト401は、401a、401b、401c、および401eである。従って、条件オブジェクト401a、401b、および401cは、ルール1のものと重なっている。この場合、結論オブジェクト403aと結論オブジェクト403bは、対応する演算子オブジェクト402a〜cおよび条件オブジェクト401a〜cを共有する。
【0050】
ステップ1209において、ルールローダープログラム122は、ルールリポジトリ131内の全てのルールファイルが処理されたか否かを調べる。全て処理済みならば処理を終了し、さもなければ処理はステップ1201に戻ってルールリポジトリ131内の次のルールを処理する。
【0051】
イベント受信およびイベント書込の処理
図13に、監視コンピュータ101内でイベント受信プログラム123およびイベント書込プログラム124により実行されるイベント受信およびイベント書込の処理例のフローチャートを示す。イベント受信プログラム123は、監視対象ノード202の1つからイベントメッセージを受信することにより処理を開始する。
【0052】
ステップ1301において、イベント受信プログラム123は、監視対象ノード202からイベントメッセージ505を受信する。
【0053】
ステップ1302において、イベント受信プログラム123は、このイベントメッセージ501を、ノード種別601、ノード名602、イベント種別603、および受信日時604を含む図6に示す情報と共にイベントキューテーブル132内の新規レコードに入れて、処理を終了する。
【0054】
ステップ1311において、イベント書込プログラム124は、処理のためイベントキューテーブル132から1つのエントリを取得する。
【0055】
ステップ1312において、イベント書込プログラム124は、ステップ1311で取得したエントリのノード種別601、ノード名602、およびイベント種別603を取得する。
【0056】
ステップ1313において、イベント書込プログラム124は、ルールメモリ121内に同一ノード名およびイベント種別を有する条件オブジェクト401を決定する。
【0057】
ステップ1314において、イベント書込プログラム124は、現在の日時をステップ1313で決定された条件オブジェクト401の「受信日時」属性に設定する。
【0058】
ステップ1315において、イベント書込プログラム124は、ステップ1313で取得した条件オブジェクト401の「重み」属性に「1.0」を設定する。
【0059】
ステップ1316において、イベント書込プログラム124は、ステップ1311でイベントキューテーブル132から取得したエントリのノード種別およびイベント種別を設定して、対応する有効期間703および減衰率704を決定することによりイベント消去設定テーブル133から対応するイベント消去設定を取得する。
【0060】
ステップ1317において、イベント書込プログラム124は、イベント消去タスクテーブル134にタスクエントリを生成することにより、イベント消去設定テーブル133に指定された時刻にイベント消去プログラムがイベント消去タスクを実行できる。例えば、イベントキューテーブル132内の処理されるエントリが図6のエントリ611である場合、ノード種別はサーバであり、イベント種別はiSCSI通信エラーである。次に、iSCSI通信エラーが生じているサーバについて、エントリ711においてイベント消去設定テーブル133を参照することにより、有効期間701は10分であって、減衰率704は毎分0.3である。従って、本例においてステップ1317でイベント消去タスクテーブル134内に生成されたタスクエントリは、開始時刻801=「現在の日時」+10分;ノード名802=「サーバA」;イベント種別803=「iSCSI_Comm_Err」、および減衰率805=0.3となろう。
【0061】
ステップ1318において、イベント書込プログラム124は、マッチング率評価プログラム125を起動し、ステップ1313で決定された条件オブジェクト401をパラメータとして渡す。処理されるエントリが図6のエントリ611である上述の例では、パラメータは図4の条件オブジェクト401aとなる。これに続いて、イベント書込プログラム124が処理を終了させる。
【0062】
マッチング率評価の処理
図14に、監視コンピュータ101内でマッチング率評価プログラム125により実行されるマッチング率評価を実行する処理例のフローチャートを示す。マッチング率評価プログラム125は、イベント書込プログラム123またはイベント消去プログラム127からの起動により処理を開始する。
【0063】
ステップ1401において、マッチング率評価プログラム125は、イベント書込プログラム123またはイベント消去プログラム127により起動されると特定の条件オブジェクト401をパラメータとして受信する。
【0064】
ステップ1402において、マッチング率評価プログラム125は、パラメータとして渡された特定の条件オブジェクト401に接続する演算子オブジェクト402を取得する。
【0065】
ステップ1403において、マッチング率評価プログラム125は、ステップ1402で取りだされた特定の演算子オブジェクト402に接続する結論オブジェクト403を取得する。
【0066】
ステップ1404において、マッチング率評価プログラム125は、特定の結論オブジェクト403から任意の演算子オブジェクト402まで、次いで任意の演算子オブジェクト402から他の任意の条件オブジェクト401まで接続を辿ることにより、ステップ1403で取得した特定の結論オブジェクト403と合わせて、全ての条件オブジェクト401を取得する。
【0067】
ステップ1405において、マッチング率評価プログラム125は、特定された条件オブジェクト401の重み値の合計を計算する。例えば、図4に示す例において、結論オブジェクト403aは演算子オブジェクト402a〜402dに接続している。演算子オブジェクト402a〜402dは各々条件オブジェクト401a〜401dに接続している。条件オブジェクト401a〜401dの各々は1.0の重み値を有し、従って本例で重みの合計は4.0に等しくなる。
【0068】
ステップ1406において、マッチング率評価プログラム125は、公式「重みの合計/条件オブジェクトの数」に従いマッチング率(MR)の値を計算して、その結果を、対応する結論オブジェクト403のMR属性に設定する。例えば、図4に示すように、結論オブジェクト403aのMRは1.0(すなわち4.0/4)に等しくなる。
【0069】
ステップ1407において、マッチング率評価プログラム125は、この演算子オブジェクト402に接続する全ての結論オブジェクト403が処理されたか否かを調べる。特定の演算子オブジェクト402に接続する全ての結論オブジェクト403が処理済みである場合、処理はステップ1408へ進み、さもなければ処理は次の結論オブジェクト403を処理すべくステップ1403に戻る。例えば、図4に示す例において、結論オブジェクト403bおよび403cもまた、演算子オブジェクト402aに接続している。従って、結論オブジェクト403bおよび403cに対してもまた、それらの結論オブジェクトに関してマッチング率を決定すべくステップ1403〜1406が実行される。
【0070】
ステップ1408において、マッチング率評価プログラム125は、元の条件オブジェクト401に接続する全ての演算子オブジェクト402が処理されたか否かを調べる。全て処理済みならば処理はステップ1409へ進み、さもなければ処理は次の演算子オブジェクト402を処理すべくステップ1402に戻る。例えば、図4に示す例では元の条件オブジェクト401aに接続している追加的な演算子オブジェクト402が存在しない。
【0071】
ステップ1409において、マッチング率評価プログラム125は、マッチング率がパラメータとして計算された結論オブジェクト403を渡すことによりマッチング率監視プログラム126を起動して、処理を終了させる。
【0072】
マッチング率監視の処理
図15に、監視コンピュータ101内でマッチング率監視プログラム126により実行されるマッチング率監視を実行する処理例のフローチャートを示す。マッチング率監視プログラム126は、当該処理をマッチング率評価プログラム125から起動することにより開始する。
【0073】
ステップ1501において、マッチング率監視プログラム126は、マッチング率評価プログラム125からパラメータとして1つ以上の結論オブジェクト403を受信して、そのうち1つを処理すべく選択する。
【0074】
ステップ1502において、マッチング率監視プログラム126は、マッチング率監視設定テーブル135から1つのエントリを取得する。
【0075】
ステップ1503において、マッチング率監視プログラム126は、選択された結論オブジェクト403のマッチング率(MR)がステップ1502で取得したエントリの条件を満たすか否かを調べる。条件を満たす場合、処理はステップ1504へ進み、さもなければ処理はステップ1505へ進む。
【0076】
ステップ1504において、マッチング率監視プログラム126は、外部モジュール128を起動する。外部モジュール128の例として、管理者に通知を送って根本原因分析の結論として得られた結果を知らせ、後で分析すべくデータベースに根本原因分析の結論として得られた結果を保存するモジュールがある。
【0077】
ステップ1505において、マッチング率監視プログラム126は、マッチング率監視設定テーブル135の全てのエントリが処理されたか否かを調べる。全て処理済みならば処理はステップ1506へ進み、さもなければ処理はマッチング率監視設定テーブル135の次のエントリを処理すべくステップ1502に戻る。
【0078】
ステップ1506において、マッチング率監視プログラム126は、全ての結論オブジェクト403が処理されたか否かを調べる。全て処理済みならば処理を終了し、さもなければ処理は次の結論オブジェクト403を処理すべくステップ1501に戻る。
【0079】
イベント消去の処理
図16に、監視コンピュータ101内でイベント消去プログラム127により実行されるイベント消去を実行する処理例のフローチャートを示す。イベント消去プログラム127はこの処理を周期的に、例えば所定の間隔で開始する。
【0080】
ステップ1601において、イベント消去プログラム127は、イベント消去タスクテーブル134を参照して、開始時刻801が最も早い1つのタスクエントリを選択する。
【0081】
ステップ1602において、イベント消去プログラム127は、当該タスクエントリの開始時刻801が現在の日時と同一であるか、または現在の日時より以前であるか否かを調べる。現在の日時と同一またはより以前である場合、処理はステップ1603へ進む。一方、イベント消去タスクテーブル134に現在の日時と同一またはより以前のエントリが存在しない場合、この時点および処理でイベントを消去する必要がない。
【0082】
ステップ1603において、イベント消去プログラム127は、当該エントリのノード名802、イベント種別803、有効期間804、および減衰率805を取得する。
【0083】
ステップ1604において、イベント消去プログラム127は、ルールメモリ121を参照して、ステップ1603で決定されたノード名802およびイベント種別803に対応する条件オブジェクト401を取得する。
【0084】
ステップ1605において、イベント消去プログラム127は、ステップ1604で取得した条件オブジェクト401から重み値を取得して、取得した条件オブジェクト401の重み値を「重みマイナス減衰率」の結果に設定する。例えば、重み値が1.0に等しく、且つ減衰率が毎分0.3ポイントに等しい場合、条件オブジェクト401の新しい重み値は、次の1分間にわたり行なわれたどのマッチング率計算についても0.7に等しくなる。重み値は1分経過後に、これに続く1分間に計算されるマッチング率のために再び0.3ポイント下げられて0.4になる。
【0085】
ステップ1606において、イベント消去プログラム127は、重み値がゼロ以下であるか否かを調べる。ゼロ以下ならば処理はステップ1608へ進み、さもなければ処理はステップ1607へ進む。
【0086】
ステップ1607において、重み値が依然としてゼロより大きいため、イベント消去プログラム127は、イベント消去タスクテーブル134の当該タスクエントリの開始時刻801を「開始時刻801+1分」に更新する。
【0087】
一方、ステップ1608において、重み値がゼロ以下である場合、イベント消去プログラム127は、選択された条件オブジェクト401の重み属性を0.0に等しく設定する。
【0088】
ステップ1609において、イベント消去プログラム127は、イベント消去タスクテーブル134から特定のタスクエントリを削除する。
【0089】
ステップ1610において、イベント消去プログラム127は、全ての結論オブジェクト403をパラメータとして渡すことによりマッチング率評価プログラム125を起動する。従って、イベント消去プログラム127が減衰率に応じて条件オブジェクト401の重み値を徐々に下げて行くことにより、対応する結論オブジェクト403のマッチング率を下げることがわかる。
【0090】
上の開示から明らかなように、本発明の例示的な実施形態では分析エンジンが増加分または減少分のイベントを処理するため、根本原因分析の実行に必要な計算コストを減らすことができる。例えば、分析エンジンは、たとえ1つ以上の条件要素が真でないと判定されたとしても最も可能性の高い結論を決定できる。これは、たとえルールを真にするために必要な1つ以上のイベントが分析エンジンに通知されなかったとしても分析エンジンがルールのマッチング率を計算できるためである。更に、イベントの有効期間を設定し、且つ減衰により段階的な削除を行なうことにより、分析精度を向上させることができる。従って、本発明の実施形態は、根本原因分析の精度を向上させると共に計算コストを減らす。例えば、本発明によれば、計算コストを減らすべく、増加分および減少分の根本原因分析に用いられるイベントを追加および削除することが可能である。
【0091】
根本原因分析の計算コストを減らすべく、本発明の実施形態はオブジェクトモデルを構築する分析エンジンを含む。このオブジェクトモデルは、重複除外の概念に基づいていてよい。拡張ルールの中で反復する条件要素がいくつかある。例えば、条件要素<ServerA iSCSI_Comm_Err>がルール1、ルール2およびルール3に出現する場合、オブジェクトモデルにおいて<ServerA iSCSI_Comm_Err>に対応する条件オブジェクトの数は1である。イベントが受信されると、分析エンジンは対応する条件オブジェクトの状態を更新することができる。更に、この状態変化は、各々の関連するルールオブジェクトへの接続を介して伝播する。このオブジェクトモデルによれば、分析エンジンは、受信されたイベントに関係しないオブジェクトにアクセスする必要がない。従って、分析エンジンに伴う計算コストが減少する。
【0092】
更に、例示的な実施形態において、分析エンジンは2つ以上のイベントから原因を分析することができる。分析エンジンが1つのイベントを受信する都度、増加分の分析処理を実行する。昨日生起したような古いイベントを現在のイベントと同一の分析に含めることで誤った結論が導かれる恐れがあるため、分析エンジンは所定のタイミングで古いイベントを削除することができる。例示的な実施形態において、古くなったイベントを削除するために、分析エンジンは、条件オブジェクトの状態を変更して、削除されたイベントに関係していて影響を受けるルールだけを再計算することにより、各ルールのマッチング率を再計算する。
【0093】
また、図16に関して上述したように、本発明の実施形態はイベント消去コンポーネントを含み、所定の時間(有効期間)および予定される削除タスクに基づいてイベントを削除する。本発明の例示的な実施形態において、イベントの有効期間はイベントの種別に基づいてよいため、分析の精度を向上させることができる。例えば、イベントの発生元がネットワークスイッチまたはストレージ等の共用リソースである場合、共用リソースは他の多くの原始リソースと関係するため、イベントの有効期間は長くなる筈である。一方、各種のコンピュータノードに最適な有効期間は、使用環境に応じて変動し得る。従って、イベント種別および/またはリソースタイプに応じて有効期間を規定する本発明のイベント消去設定テーブル133が、各イベント種別に最適な有効期間を可能にすべく提供される。
【0094】
上述のように、本発明の分析エンジンは2つ以上のイベントから原因を分析することができるが、昨日のイベントを現在のイベントと同一の分析に含めることは誤った結論を導く恐れがあるため、分析エンジンは何らかのタイミングで古いイベントを削除する必要がある。しかし、先行イベントが現在のイベントに関係している可能性もあるため、本発明の実施形態は、減衰率を設定することにより、ルールメモリ内にイベント状態をオールオアナッシング、すなわち1.0か0.0か(存在するか存在しないか)とは別の何らかの方法で表すことに利点があることを考慮に入れている。従って、この実装により、ルールメモリ内のイベントが段階的に消滅すると共に、重要度も段階的に下げられる。従って、減衰率を含めることにより、たとえイベントの影響が小さくても、分析エンジンは当該イベントを分析オブジェクトに含めることができる。また、イベントの影響が小さいため、当該イベントは他のルールの評価に悪影響を及ぼさず、従って、分析エンジンは実際の現実世界の状態に基づいて根本原因を特定できる。
【0095】
上述のように、分析エンジンが根本原因を計算し終えた際に、ディスプレイ117上で結果を管理者に提示することができる。追加または代替的に、計算された原因およびマッチしている率を含む結果を、後で分析すべくデータベースに保存できる。更に、分析エンジンは、特定のルールを満たすために必要な条件のうちどの条件が満たされていないかを判定することができ、これらの条件を管理者に提示したり、あるいはこの情報をデータベース等に保存したりできる。例えば、分析エンジンは、計算された生起原因および特定のルールを満たすために必要な条件のうち満たされなかった条件を管理者に見せるためにディスプレイに表示できる上に、また追加または代替的に、原因、計算されたマッチング率、および特定のルールを満たすために必要な条件のうち満たされなかった条件を、後で分析すべくデータベースに保存できる。また、上述の減衰方法を用いるのではなく、タイマーまたは管理者の手操作により1つ以上のイベントを無効にできるように分析エンジンを構成できる。
【0096】
無論、図1および2に示すシステム構成は単に本発明を実装することが可能な情報システムの例に過ぎず、本発明は特定のハードウェアまたは論理構成に限定されない。本発明を実装するコンピュータおよびストレージシステムはまた、上述の発明の実装に用いるモジュール、プログラム、およびデータ構造の保存および読み出しが可能な公知の入出力装置(例:CDおよびDVDドライブ、フロッピーディスクドライブ、ハードディスクドライブ等)を備えていてよい。これらのモジュール、プログラム、およびデータ構造はそのようなコンピュータ可読媒体上で符号化されていてよい。例えば、本発明のデータ構造は、本発明で使用するプログラムが常駐する1つ以上のコンピュータ可読媒体とは独立に、コンピュータ可読媒体に保存されていてよい。本システムの構成要素は、任意の形式または媒体のデジタルデータ通信、例えば通信回路ネットワーク、により相互接続されていてよい。通信回路ネットワークの例として、ローカルエリアネットワーク、ワイドエリアネットワーク、例:インターネット、無線ネットワーク、ストレージエリアネットワーク等が含まれる。
【0097】
上の記述において、本発明の完全な理解を得るべく、説明目的で多くの詳細事項を開示している。しかし、当業者には明らかなように、本発明を実施するためにこれらの具体的な詳細事項の全てが必要な訳ではない。また、本発明が多くの場合フローチャート、フロー図、構造図、またはブロック図として表された処理として記述できる点に注意されたい。フローチャートは動作を逐次的な処理として記述できるが、多くの動作が並行してまたは同時に実行できる。また、動作の順序を並べ替えてもよい。
【0098】
当該技術分野で公知のように、上述の動作はハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組合せにより実行できる。本発明の実施形態の各種の態様は、回路および論理装置(ハードウェア)を用いて実装できるが、プロセッサにより実行された場合に本発明の実施形態を実行する方法をプロセッサに実行させる機械可読媒体(ソフトウェア)に保存された命令を用いて他の態様を実装できる。更に、本発明のいくつかの実施形態はハードウェアだけで実行できるのに対し、他の実施形態はソフトウェアだけで実行できる。更に、本明細書に記載する各種の機能は、単一のユニットで実行することも、あるいは多くの構成要素にまたがって何通りもの仕方で実行することもできる。ソフトウェアで実行する場合、本方法はコンピュータ可読媒体に保存された命令に基づいて汎用コンピュータ等のプロセッサにより実行できる。必要ならば、命令は圧縮および/または暗号化形式で媒体に保存できる。
【0099】
上の記述から、本発明が、根本原因分析の精度を向上させると共に計算コストを減らす方法、装置、およびコンピュータ可読媒体に保存されたプログラムを提供することは明らかであろう。また、本明細書で特定の実施形態を例示および記述しているが、当業者には開示された特定の実施形態を同じ目的を達成すべく計算された任意の構成で置換できることが理解されよう。本開示は、本発明の任意のおよびあらゆる適用または変型を包含することを目的としており、以下の請求項で使用する用語は、本発明を本明細書で開示した特定の実施形態に限定するものと解釈してはならない。むしろ、本発明の範囲は以下の請求項により完全に定義され、そのような請求項の等価物の全範囲と合わせて、請求項解釈の確立された原則に従って解釈されるべきである。

【特許請求の範囲】
【請求項1】
複数の監視対象ノードからなる情報システムにおける事象の原因を特定する方法であって、
各々が特定の事象の特定の原因を示すために満たすべき1つ以上の条件を明記している複数のルールを保存するステップと、
前記ノードの1つに関係する第1のイベントに関する第1のイベントメッセージを受信するステップと、
前記第1のイベントに有効期間を割り当てるステップと、
前記ルールのいずれが前記第1のイベントに対応する条件を有するかを判定するステップと、
前記第1のイベントに対応する条件を有する任意のルールに対してマッチング率を計算するステップと、
条件のマッチング状態を保存するステップと、
前記ルールの計算されたマッチング率に基づいて前記事象の原因を指定するステップと
を含む方法。
【請求項2】
前記有効期間が最終満了時点に達すると、前記第1のイベントを無効にするステップ、
を更に含む、請求項1に記載の方法。
【請求項3】
前記第1のイベントメッセージを受信する前に、複数の先行イベントに関する複数の先行イベントメッセージを受信するステップ、
を更に含み、
前記先行イベントの各々には先行有効期間が割り当てられていて、
前記マッチング率を計算するステップは、前記先行イベントが前記第1のイベントと同一のルール内の条件に対応する場合に、前記マッチング率の計算に前記先行イベントを含めることにより実行される、
請求項2に記載の方法。
【請求項4】
前記マッチング率を計算するステップに続いて、且つ前記第1のイベントに関して2つ以上のルールのマッチング率が計算されると、前記2つ以上のルールの計算されたマッチング率の中で、最高の計算されたマッチング率を有するルールから導かれた結論に基づいて、前記事象の原因を識別するステップ、
を更に含む、請求項1に記載の方法。
【請求項5】
前記マッチング率が、
特定のルールの条件に対応し且つ有効期間が最終的に満了していないイベントの数と、
前記特定のルールを満たすために必要な条件の総数と
の関数として計算され、
前記計算されたマッチング率が、前記特定のルールの結論が前記事象の原因を識別する確率を示す、
請求項1に記載の方法。
【請求項6】
第1のディスプレイを有し、情報システム内の複数の監視対象ノードとネットワークを介して通信状態にある第1のコンピュータと、
前記第1のコンピュータからアクセス可能であって、各々が前記監視対象ノードの1つ以上において事象が生起した場合に原因を示すために満たすべき1つ以上の条件を明記している複数のルールと
を含む情報システムであって、
前記第1のコンピュータが、1つ以上の前記監視対象ノードにおける事象に関係するイベントに関するイベントメッセージを受信して、各イベントに有効期間を割り当てるべく構成され、
前記第1のコンピュータが、前記ルールのいずれが前記イベントに対応する条件を有するかを判定し、受信したイベントに対応する条件を有する任意のルールに対してマッチング率を計算して、条件のマッチング状態を保存すべく構成され、
前記第1のコンピュータが、前記ルールの計算されたマッチング率に基づいて前記事象の原因を特定すべく構成される
情報システム。
【請求項7】
前記第1のコンピュータが、前記有効期間が最終満了時点に達すると前記第1のイベントを無効にすべく構成される、
請求項6に記載のシステム。
【請求項8】
前記第1のコンピュータが、前記第1のイベントメッセージを受信する前に、先行イベントの各々に先行有効期間が割り当てられている複数の先行イベントに関する複数の先行イベントメッセージを受信すると、第1のコンピュータが、前記先行イベントが前記第1のイベントと同一のルール内の条件に対応する場合に、前記マッチング率の計算に前記先行イベントを含めることにより、前記マッチング率を計算すべく構成される、
請求項7に記載のシステム。
【請求項9】
前記先行イベントの特定の1つの特定の先行有効期間が第1の満了時点に達すると、第1のコンピュータが、マッチング率計算で用いる重み値に減衰値を割り当てるべく構成され、前記特定のイベントに関わる前記マッチング率計算において前記特定の先行イベントの重要性が前記最終満了時点に達するまで段階的に低下することにより、前記イベントがもはや前記マッチング率計算に含まれず、前記システムが更に、
前記第1のコンピュータからアクセス可能である保存された減衰設定情報を含み、前記第1のコンピュータが、異なる種別のイベントまたは異なる種別のノードが所定の異なる減衰値を有するように、イベントの種別または前記イベントに関連付けられたノードの種別に基づいて減衰値を設定すべく構成される、
請求項8に記載のシステム。
【請求項10】
2つ以上のルールのマッチング率が前記第1のイベントに関して計算される場合、前記第1のコンピュータが、前記2つ以上のルールの計算されたマッチング率の中で、最高の計算されたマッチング率を有するルールから導かれた結論に基づいて、前記事象の原因を識別すべく構成される、
請求項6に記載のシステム。
【請求項11】
前記第1のコンピュータからアクセス可能である保存された有効期間設定情報を更に含み、前記第1のコンピュータが、異なる種別のイベントまたは異なる種別のノードが所定の異なる有効期間長を有するように、イベントの種別またはイベントに関連付けられたノードの種別に基づいて有効期間の長さを設定すべく構成される、
請求項6に記載のシステム。
【請求項12】
前記第1のコンピュータが、前記マッチング率を、
特定のルールの条件に対応し且つ有効期間が最終的に満了していないイベントの数と、
前記特定のルールを満たすために必要な条件の総数と
の関数として計算すべく構成され、
前記計算されたマッチング率が、前記特定のルールの結論が前記事象の原因を識別する確率を示す、
請求項6に記載のシステム。
【請求項13】
前記第1のコンピュータが、特定のルールを満たすために必要な条件のうちどの条件が満たされていないかを判定すべく構成される、
請求項6に記載のシステム。
【請求項14】
複数の監視対象ノードからなる情報システムにおける事象の原因を特定する方法であって、
各々が1つ以上の条件および1つの結論を明記している複数のルールを保存するステップと、
前記ルールおよび前記情報システムの監視対象部分のトポロジに基づいて拡張ルールを生成して、前記拡張ルールの各条件が、前記情報システムの前記監視対象部分で生起し得るイベントに対応させるステップと、
メモリ内で条件オブジェクトが反復しないように複数の前記拡張ルールの複数の条件をインスタンス化するステップと、
前記メモリ内に結論オブジェクトとして複数の前記拡張ルールの複数の結論をインスタンス化するステップと、
前記拡張ルールの構造に基づいて、複数の前記条件オブジェクトに前記メモリ内の複数の前記結論オブジェクトを関連付けるステップと、
1つ以上の条件オブジェクトの充足に影響を及ぼすイベントが生起した場合に1つ以上の前記条件オブジェクトを有効または無効にすることにより前記事象の原因を特定する処理を実行するステップと
を含む方法。
【請求項15】
ネットワークを介して情報システム内の複数の監視対象ノードと通信状態にある第1のコンピュータと、
前記第1のコンピュータからアクセス可能であって、各々が1つ以上の条件および1つの結論を明記している複数のルールと
を含む情報システムであって、
前記第1のコンピュータが、前記ルールおよび前記情報システムの監視対象部分のトポロジに基づいて拡張ルールを生成して、前記拡張ルールの各条件が前記情報システムの前記監視対象部分で生起し得るイベントに対応させるべく構成され、
前記第1のコンピュータが、メモリ内で条件オブジェクトが反復しないように複数の前記拡張ルールの複数の条件をインスタンス化すべく構成され、
前記第1のコンピュータが、前記メモリ内に結論オブジェクトとして複数の前記拡張ルールの複数の結論をインスタンス化すべく構成され、
前記第1のコンピュータが、前記拡張ルールの構造に基づいて、複数の前記条件オブジェクトに前記メモリ内の複数の前記結論オブジェクトを関連付けるべく構成され、
前記第1のコンピュータが、1つ以上の条件オブジェクトの充足に影響を及ぼすイベントが生起した場合に、1つ以上の前記条件オブジェクトを有効または無効にすることにより前記事象の原因を特定する処理を実行すべく構成される
情報システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−256355(P2012−256355A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−180156(P2012−180156)
【出願日】平成24年8月15日(2012.8.15)
【分割の表示】特願2010−531358(P2010−531358)の分割
【原出願日】平成21年2月16日(2009.2.16)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】