JP2023133915A - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP2023133915A JP2023133915A JP2022039170A JP2022039170A JP2023133915A JP 2023133915 A JP2023133915 A JP 2023133915A JP 2022039170 A JP2022039170 A JP 2022039170A JP 2022039170 A JP2022039170 A JP 2022039170A JP 2023133915 A JP2023133915 A JP 2023133915A
- Authority
- JP
- Japan
- Prior art keywords
- node
- score
- nodes
- alert
- propagation
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 71
- 238000003672 processing method Methods 0.000 title claims description 4
- 238000012545 processing Methods 0.000 claims abstract description 56
- 230000001419 dependent effect Effects 0.000 claims description 51
- 238000000034 method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 30
- 238000007726 management method Methods 0.000 description 14
- 230000005856 abnormality Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 238000013468 resource allocation Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】アラートの原因のノードを適切に特定する。【解決手段】記憶部11は、情報処理システム20におけるノード間の関連を示す構成情報と情報処理システム20で発生したアラートを示すアラート情報とを記憶する。処理部12は、アラート情報に基づいて複数のノードそれぞれに対してアラートに応じた基礎スコアを算出する。処理部12は、複数のノードそれぞれに対して構成情報に基づいて特定される、ノードに隣接する隣接ノードの基礎スコアに、ノードと隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、ノードと隣接ノードとのペアごとに算出する。処理部12は、ノードの基礎スコアに、ノードと隣接ノードとのペアに対応する伝搬スコアを合計した障害スコアを、複数のノードそれぞれに対して算出する。処理部12は、複数のノードそれぞれの障害スコアに基づいて、複数のノードのうちアラートの原因である第1ノードを特定する。【選択図】図1
Description
本発明は情報処理装置、情報処理方法およびプログラムに関する。
現在、多数の通信機器、物理マシン、仮想マシンおよびアプリケーションなどが連携して動作する情報処理システムが運用されている。各機器が連携していることから、トポロジー構造として表現できるため、通信機器、物理マシン、仮想マシンおよびアプリケーションなどの情報処理システムの要素をノードと表現できる。すなわち、ノードは、情報処理システムにおける何れかの要素に相当する。監視システムは、ノードを監視することで、ノードが異常となった場合に、監視システムはノードのアラートを検出することができる。アラートは、異常を通知する情報である。そこで、情報処理システムの運用管理では、ノードにより出力されるアラートの監視が行われることがある。
例えば、システムに含まれる要素間の関連性に基づいて、システムに含まれる要素に関するメッセージのうち、何れかのメッセージを選択的に出力することで、管理者が異常を把握しやすくするメッセージ出力装置の提案がある。
また、計算機システムで問題が発生したときに、計算機システムの部品の状態を変更する対策手順案を生成する管理計算機の提案もある。
なお、分散ストリームデータ処理基盤において実行される複数のタスクそれぞれのログメッセージを出力する情報処理装置の提案もある。提案の情報処理装置は、各タスクに対し、障害の発生のし易さと関連する指標に基づくログスコアを取得する。当該情報処理装置は、ログスコアに基づく出力頻度で当該タスクのログメッセージを出力する。
なお、分散ストリームデータ処理基盤において実行される複数のタスクそれぞれのログメッセージを出力する情報処理装置の提案もある。提案の情報処理装置は、各タスクに対し、障害の発生のし易さと関連する指標に基づくログスコアを取得する。当該情報処理装置は、ログスコアに基づく出力頻度で当該タスクのログメッセージを出力する。
複数のノードが連携して動作する場合、あるノードで発生した異常は、他のノードにも影響し、他のノードにおける異常を引き起こす可能性がある。このため、情報処理システムにおいてアラートが発生した場合、アラートの根本的な原因であるノードを特定することは容易でない。1つの側面では、本発明は、アラートの原因のノードを適切に特定することを目的とする。
1つの態様では、情報処理装置が提供される。この情報処理装置は、記憶部と処理部とを有する。記憶部は、情報処理システムに含まれる複数のノードにおけるノード間の関連を示す構成情報と、情報処理システムで発生したアラートを示すアラート情報とを記憶する。処理部は、アラート情報に基づいて複数のノードそれぞれに対してアラートに応じた基礎スコアを算出する。処理部は、複数のノードそれぞれに対して構成情報に基づいて特定される、ノードに隣接する隣接ノードの基礎スコアに、ノードと隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、ノードと隣接ノードとのペアごとに算出する。処理部は、ノードの基礎スコアに、ノードと隣接ノードとのペアに対応する伝搬スコアを合計した障害スコアを、複数のノードそれぞれに対して算出する。処理部は、複数のノードそれぞれの障害スコアに基づいて、複数のノードのうちアラートの原因である第1ノードを特定する。
また、1つの態様では、情報処理方法が提供される。また、1つの態様では、プログラムが提供される。
1つの側面では、アラートの原因のノードを適切に特定できる。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理装置を説明する図である。
情報処理装置10は、情報処理システム20に接続される。情報処理システム20は、複数のノードを含む。複数のノードそれぞれは、通信機器、物理マシン、仮想マシンおよびアプリケーションなどの何れかである。情報処理装置10は、情報処理システム20で発生したアラートの原因であるノードの特定を支援する。なお、情報処理装置10は、情報処理システム20に含まれてもよい。
情報処理装置10は、情報処理システム20に接続される。情報処理システム20は、複数のノードを含む。複数のノードそれぞれは、通信機器、物理マシン、仮想マシンおよびアプリケーションなどの何れかである。情報処理装置10は、情報処理システム20で発生したアラートの原因であるノードの特定を支援する。なお、情報処理装置10は、情報処理システム20に含まれてもよい。
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサでもよい。「プロセッサ」は、複数のプロセッサの集合(マルチプロセッサ)を含み得る。
記憶部11は、構成情報を記憶する。構成情報は、情報処理システム20に含まれる複数のノードにおけるノード間の関連を示す。ノード間の関連は、あるノードが他のノードのリソースを用いて実行されることや、あるノードが動作するために他のノードに接続されることを含む。例えば、ノード間の関連は、各ノードをエッジで結ぶグラフで表される。2つのノードを隔てるエッジの数が小さいほど、両ノードの関連性は強い。2つのノードを隔てるエッジの数が閾値a以下である場合、両ノードは互いに隣接すると言う。aは1以上の整数である。例えばa=1である。
また、構成情報は、ノード間の依存関係を示す情報を含む。情報処理システム20に含まれる複数のノードそれぞれは、他のノードと次のような依存関係をもち得る。
例えば、アプリケーションは仮想マシンにより実行される。この場合、アプリケーションは、仮想マシンに依存する。仮想マシンは、アプリケーションに依存される。また、例えば仮想マシンは物理マシンにより実行される。この場合、仮想マシンは、物理マシンに依存する。物理マシンは、仮想マシンに依存される。また、例えば物理マシンは、他の物理マシンと通信するためにL2(Layer 2)スイッチに接続される。この場合、物理マシンは、L2スイッチに依存する。L2スイッチは、物理マシンに依存される。更に、例えばL2スイッチは、上位ネットワークと通信するためにルータに接続される。この場合、L2スイッチは、ルータに依存する。ルータは、L2スイッチに依存される。
例えば、アプリケーションは仮想マシンにより実行される。この場合、アプリケーションは、仮想マシンに依存する。仮想マシンは、アプリケーションに依存される。また、例えば仮想マシンは物理マシンにより実行される。この場合、仮想マシンは、物理マシンに依存する。物理マシンは、仮想マシンに依存される。また、例えば物理マシンは、他の物理マシンと通信するためにL2(Layer 2)スイッチに接続される。この場合、物理マシンは、L2スイッチに依存する。L2スイッチは、物理マシンに依存される。更に、例えばL2スイッチは、上位ネットワークと通信するためにルータに接続される。この場合、L2スイッチは、ルータに依存する。ルータは、L2スイッチに依存される。
これらの依存関係は、例えば上記のグラフにおける、ノード間を結ぶ有向エッジにより表される。すなわち、有向エッジの起点のノードは終点のノードに依存する。有向エッジの終点のノードは起点のノードに依存される。一例では、情報処理システム20は、ノード21,22を有する。ノード21のノードID(IDentifier)はn1である。ノード22のノードIDはn2である。ノード21は、ノード22に依存する。すなわち、ノード22は、ノード21に依存される。この場合、構成情報は、例えばノード21,22を示す情報と、ノード21を起点、ノード22を終点とする有向エッジの情報とを含む。ただし、情報処理システム20は、3以上のノードを含んでもよい。
記憶部11は、アラート情報を記憶する。アラート情報は、所定期間において情報処理システム20で発生したアラートを示す。アラートは、複数のノードそれぞれにより出力され得る。所定期間は、例えば、予め定められた時間間隔よりも短い時間間隔でアラートが発生し続けた期間として決定されてもよい。一定の時間間隔よりも短い時間間隔で連続して発生した一群のアラートは、原因が共通する可能性が高いためである。この場合、当該一定の時間間隔は、情報処理システム20に応じて予め定められる。
処理部12は、情報処理システム20で発生した一群のアラートについて、各ノードのアラートに対する寄与度をスコア化して評価することで、アラートの根本的な原因であるノードを特定する。各ノードのアラートに対する寄与度を示す指標は、障害スコアと言われる。例えば、ノードの障害スコアが大きいほど、当該ノードのアラートに対する寄与度は大きい。このため、ノードの障害スコアが大きいほど、当該ノードがアラートの原因である可能性は高いと推定される。
処理部12は、アラート情報に基づいて、複数のノードそれぞれに対してアラートに応じた基礎スコアを算出する。基礎スコアは、障害スコアの計算の基になるスコアである。一例では、処理部12は、アラートを出力したノードに対して、アラートの数に応じた基礎スコアを算出する。例えば、処理部12は、ノードが出力したアラートの数が多いほど、当該ノードの基礎スコアを大きくする。処理部12は、アラートを出力していないノードに対して基礎スコア「0」を付与する。
例えば、処理部12は、所定期間にノード21,22それぞれでアラートが発生した場合、ノード21でのアラートの数に応じてノード21の基礎スコアV1を算出し、ノード22でのアラートの数に応じてノード22の基礎スコアV2を算出する。テーブル11aは、ノード21,22それぞれの基礎スコアV1,V2を保持する情報である。テーブル11aは、記憶部11に記憶される。
処理部12は、構成情報に基づいて特定される、あるノードに隣接する隣接ノードの基礎スコアに、当該ノードと隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、当該ノードと隣接ノードとのペアごとに算出する。ここで、伝搬スコアは、隣接ノードの基礎スコアの影響を、着目するノードの障害スコアに反映させるためのスコアである。重み付け係数は、着目するノードの障害スコアに対し、隣接ノードの基礎スコアの影響を反映させる度合いを定める係数である。
重み付け係数は、隣接ノードが該当のノードに依存する場合、αである。また、重み付け係数は、隣接ノードが該当のノードに依存される場合、すなわち、該当のノードが隣接ノードに依存する場合、βである。α,βは何れも正の実数である。また、α>βである。互いに隣接する2つのノードのうち、依存される側であるノードの方が、障害箇所である可能性が高いからである。また、着目するノードに対して、隣接ノードは複数存在することがある。その場合、処理部12は、着目するノードに対して隣接ノードごとに、当該隣接ノードに適用する伝搬スコアを算出する。
例えば、前述の閾値a=1とする。この場合、処理部12は、構成情報に基づいて、ノード21に隣接する隣接ノードとしてノード22を特定する。ノード22は、ノード21に依存される。よって、処理部12は、ノード21に対するノード22の伝搬スコアを、β*V2と算出する。また、処理部12は、構成情報に基づいて、ノード22に隣接する隣接ノードとしてノード21を特定する。ノード21は、ノード22に依存する。よって、処理部12は、ノード22に対するノード21の伝搬スコアを、α*V1と算出する。テーブル11bは、ノード21に対するノード22の伝搬スコアβ*V2、および、ノード22に対するノード21の伝搬スコアα*V1を保持する情報である。テーブル11bは、記憶部11に記憶される。
そして、処理部12は、ノードの基礎スコアに、当該ノードと隣接ノードとのペアに対応する伝搬スコアを合計した障害スコアを、複数のノードそれぞれに対して算出する。例えば、処理部12は、テーブル11a,11bに基づいて、ノード21の障害スコアを、V1+β*V2と算出する。また、処理部12は、ノード22の障害スコアを、V2+α*V1と算出する。テーブル11cは、ノード21の障害スコアV1+β*V2、および、ノード22の障害スコアV2+α*V1を保持する情報である。テーブル11cは、記憶部11に記憶される。こうして、伝搬スコアにより、着目するノードの障害スコアに対して、隣接ノードで発生した事象の影響が適切に反映される。
処理部12は、複数のノードそれぞれの障害スコアに基づいて、複数のノードのうちアラートの原因である第1ノードを特定する。例えば、上記の例において、処理部12は、ノード21,22それぞれの障害スコアを比較し、障害スコアが大きい方のノードを、アラートの原因である第1ノードとして特定する。第1ノードは、アラートを引き起こした根本的な原因箇所として推定されるノードであり、障害箇所に相当する。
一例では、該当のノードで発生したアラートの数を、当該ノードの基礎スコアとする。例えば、ノード21で発生したアラートの数が1であり、ノード22で発生したアラートの数が1であるとする。この場合、V1=V2=1である。また、一例では、伝搬スコアα=1、β=0.5とする。この場合、処理部12は、ノード21の障害スコアを、V1+β*V2=1+0.5*1=1.5と計算する。また、処理部12は、ノード22の障害スコアを、V2+α*V1=1+1*1=2と計算する。よって、処理部12は、ノード21,22で発生したアラートの原因がノード22であると特定する。
以上説明したように情報処理装置10によれば、アラート情報に基づいて、複数のノードそれぞれに対してアラートに応じた基礎スコアが算出される。ノードに隣接する隣接ノードの基礎スコアに、当該ノードと隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアが、ノードと隣接ノードとのペアごとに算出される。ノードの基礎スコアに、ノードと隣接ノードとのペアに対応する伝搬スコアを合計した障害スコアが、複数のノードそれぞれに対して算出される。複数のノードそれぞれの障害スコアに基づいて、複数のノードのうち最も障害スコアの高いノードを、アラートを引き起こした根本的な原因箇所、すなわちアラートの原因である第1ノードが特定される。
これにより、アラートの原因のノードを適切に特定できる。
ここで、情報処理システム20では、多数のノードが連携して動作する。このため、情報処理システムにおいて障害が発生した場合、その障害が伝搬し、多数のアラートが発生するため、障害の根本的な原因であるノードを特定することは容易でない。
ここで、情報処理システム20では、多数のノードが連携して動作する。このため、情報処理システムにおいて障害が発生した場合、その障害が伝搬し、多数のアラートが発生するため、障害の根本的な原因であるノードを特定することは容易でない。
例えば、2つ以上のノードそれぞれでアラートが出力されたときに、何れのノードが根本原因であるかの特定が難しいことがある。上記の障害スコアの計算において、ノードと隣接ノードとの依存関係を考慮せずに、例えばα=β=0.5とするというように、単純に一律の重み付け係数を用いることも考えられる。しかしこの場合、上記の障害スコアは、ノード21,22の何れに対しても同じ値になり、アラートの原因である第1ノードの特定が困難になり得る。例えば、V1=V2=1、かつ、α=β=0.5の場合、ノード21,22の障害スコアは何れも1.5になり、障害スコアに基づく第1ノードの絞り込みが適切に行われない。
そこで、情報処理装置10は、ノードと隣接ノードとの依存関係に応じた重み付け係数を用いて各ノードの障害スコアを算出することで、各ノードの障害スコアを基にアラートの原因である第1ノードを適切に特定可能になる。
また、例えば、アラートの原因のノードがアラートを出力したノード以外のノードである場合、アラートの出力元のみから原因のノードを特定できないこともある。これに対し、情報処理装置10は、所定期間内にアラートを出力したノードおよびアラートを出力しなかったノードそれぞれに対して障害スコアを算出できる。これにより、情報処理装置10は、アラートの出力元以外のノードから、アラートの根本的な原因となったノードを特定できる可能性を高められる。例えば、アラートの出力元以外のノードが、異常な動作をしているにもかかわらず、アラートの出力に用いられる使用リソース量の閾値の設定が適切でないなど、アラートの出力設定に不備があってアラートを出力しないこともある。このような場合、アラートの出力元以外のノードの異常が、他のノードに影響を及ぼしている可能性もある。情報処理装置10は、こうしたアラートの出力元以外のノードも、アラートの根本的な原因、すなわち、障害箇所として適切に特定し得る。
障害箇所推定サーバ100は、こうして特定した第1ノードを示す情報を出力することで、アラートの原因のノードの、ユーザによる把握を支援できる。その結果、障害箇所推定サーバ100は、ユーザによる迅速な障害対応を支援できる。以下では、より具体的な例を示し、情報処理装置10の機能を更に詳細に説明する。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、障害箇所推定サーバ100、監視対象システム200、構成管理サーバ300および異常検知サーバ400を有する。障害箇所推定サーバ100、監視対象システム200、構成管理サーバ300および異常検知サーバ400は、ネットワーク50に接続される。
障害箇所推定サーバ100は、監視対象システム200において所定期間中に発生したアラートに基づいて、アラートの原因となったノード、すなわち、障害箇所を推定し、ユーザに提示する。具体的には、障害箇所推定サーバ100は、監視対象システム200で発生したアラートに対して、監視対象システム200における各ノードのアラートに対する寄与度を表す指標である障害スコアを評価する。例えば、ノードの障害スコアが大きいほど、当該ノードのアラートに対する寄与度は大きい。すなわち、ノードの障害スコアが大きいほど、当該ノードがアラートの原因である可能性は高い。障害箇所推定サーバ100は、各ノードの障害スコアに基づいて、アラートの根本的な原因であるノードを特定する。障害箇所推定サーバ100は、第1の実施の形態の情報処理装置10の一例である。
監視対象システム200は、障害箇所推定サーバ100、構成管理サーバ300および異常検知サーバ400による監視対象のシステムである。監視対象システム200は、通信機器、物理マシン、仮想マシンおよびアプリケーションなどの複数のノードを含む。アプリケーションは、コンテナとして実行されてもよい。監視対象システム200は、第1の実施の形態の情報処理システム20の一例である。
構成管理サーバ300は、監視対象システム200における複数のノードの情報を収集し、収集した情報を基にノード間の関連を示す構成情報を生成して、障害箇所推定サーバ100に提供する。
異常検知サーバ400は、監視対象システム200で発生したアラートを収集し、収集したアラートを示すアラート情報を障害箇所推定サーバ100に提供する。アラートは、障害の影響を受けて異常となっているイベントを報告するメッセージである。例えば、各ノードは、CPU使用率やメモリ使用率などが閾値を超過したという事象や、アノマリ検知により検知された事象を異常なイベントとして特定し、アラートを発生させる。
図3は、障害箇所推定サーバのハードウェア例を示す図である。
障害箇所推定サーバ100は、CPU101、RAM102、HDD103、GPU(Graphics Processing Unit)104、入力インタフェース105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。障害箇所推定サーバ100は、CPU101とRAM102とを有するコンピュータでもよい。
障害箇所推定サーバ100は、CPU101、RAM102、HDD103、GPU(Graphics Processing Unit)104、入力インタフェース105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。障害箇所推定サーバ100は、CPU101とRAM102とを有するコンピュータでもよい。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、障害箇所推定サーバ100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、障害箇所推定サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、障害箇所推定サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
GPU104は、CPU101からの命令に従って、障害箇所推定サーバ100に接続されたディスプレイ51に画像を出力する。ディスプレイ51としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力インタフェース105は、障害箇所推定サーバ100に接続された入力デバイス52から入力信号を取得し、CPU101に出力する。入力デバイス52としては、マウス、タッチパネル、タッチパッド、トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、障害箇所推定サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体53に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体53として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体53から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体53は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体53やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC107は、ネットワーク50に接続され、ネットワーク50を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。NIC107は無線通信インタフェースでもよい。
監視対象システム200に含まれる物理マシン、構成管理サーバ300および異常検知サーバ400も、障害箇所推定サーバ100と同様のハードウェアにより実現される。
図4は、障害箇所推定サーバの機能例を示す図である。
図4は、障害箇所推定サーバの機能例を示す図である。
障害箇所推定サーバ100は、構成情報記憶部110、アラート情報記憶部120、係数情報記憶部130、スコア情報記憶部140、構成情報管理部151、アラート情報取得部152、基礎スコア算出部153、伝搬スコア係数算出部154、伝搬スコア算出部155、障害スコア算出部156および障害箇所出力部157を有する。構成情報記憶部110、アラート情報記憶部120、係数情報記憶部130およびスコア情報記憶部140には、RAM102やHDD103の記憶領域が用いられる。構成情報管理部151、アラート情報取得部152、基礎スコア算出部153、伝搬スコア係数算出部154、伝搬スコア算出部155、障害スコア算出部156および障害箇所出力部157は、RAM102に記憶されたプログラムがCPU101により実行されることで実現される。
構成情報記憶部110は、監視対象システム200におけるノードと、ノード間の関連を含む構成情報を記憶する。
アラート情報記憶部120は、監視対象システム200におけるアラート情報を記憶する。
アラート情報記憶部120は、監視対象システム200におけるアラート情報を記憶する。
係数情報記憶部130は、基礎スコアの計算に用いられる基礎スコア係数および伝搬スコアの計算に用いられる伝搬スコア係数を示す係数情報を記憶する。
スコア情報記憶部140は、各ノードに対して計算された基礎スコア、伝搬スコアおよび障害スコアを示すスコア情報を記憶する。
スコア情報記憶部140は、各ノードに対して計算された基礎スコア、伝搬スコアおよび障害スコアを示すスコア情報を記憶する。
構成情報管理部151は、構成管理サーバ300から構成情報を取得し、構成情報記憶部110に格納する。構成情報は、監視対象システム200に含まれる各ノードの関連を示す情報を含む。また、構成情報は、あるノードに対する、他のノードが保有するリソースの割当て量を示す情報を含む。例えば、構成情報は、あるアプリケーションに割当てられる仮想マシンのリソース量や、仮想マシンに割当てられる物理マシンのリソース量などを示す情報を含む。
アラート情報取得部152は、異常検知サーバ400からアラート情報を取得し、アラート情報記憶部120に格納する。
基礎スコア算出部153は、構成情報記憶部110に記憶された構成情報と、アラート情報記憶部120に記憶されたアラート情報と、係数情報記憶部130に記憶された係数情報とに基づいて、各ノードの基礎スコアを算出する。基礎スコア算出部153は、算出した基礎スコアをスコア情報記憶部140に格納する。
基礎スコア算出部153は、構成情報記憶部110に記憶された構成情報と、アラート情報記憶部120に記憶されたアラート情報と、係数情報記憶部130に記憶された係数情報とに基づいて、各ノードの基礎スコアを算出する。基礎スコア算出部153は、算出した基礎スコアをスコア情報記憶部140に格納する。
伝搬スコア係数算出部154は、構成情報記憶部110に記憶された構成情報に基づいて、あるノードに対する隣接ノードの伝搬スコア係数を算出し、係数情報記憶部130に格納する。ここで、伝搬スコア係数は、第1の実施の形態の重み付け係数に相当する。伝搬スコア係数は、あるノードに対する隣接ノードの伝搬スコアの算出に用いられる。伝搬スコア係数は、該当のノードと隣接ノードとの依存関係に基づいて決定される。
伝搬スコア算出部155は、係数情報記憶部130に記憶された係数情報とスコア情報記憶部140に記憶されたスコア情報に基づいて、あるノードに対する隣接ノードの伝搬スコアを計算する。伝搬スコアは、着目するノードと当該隣接ノードとの組ごとに計算される。伝搬スコア算出部155は、計算した伝搬スコアをスコア情報記憶部140に格納する。
障害スコア算出部156は、スコア情報記憶部140に記憶された各ノードの基礎スコアおよび当該ノードに対する隣接ノードの伝搬スコアに基づいて、各ノードの障害スコアを算出し、スコア情報記憶部140に格納する。
障害箇所出力部157は、スコア情報記憶部140に記憶された各ノードの障害スコアに基づいて、障害箇所に相当するノードを特定し、当該ノードの情報を出力する。具体的には、障害箇所出力部157は、障害スコアが最も大きいノードを、障害箇所に相当するノードと特定する。
例えば、障害箇所出力部157は、構成情報記憶部110に記憶された構成情報、および、スコア情報記憶部140に記憶された、各ノードの障害スコアの情報に基づいて、アラートの原因となったノード、すなわち、障害箇所に相当するノードを可視化する。具体的には、障害箇所出力部157は、障害箇所推定結果画面をディスプレイ51に表示させる。障害箇所推定結果画面は、障害箇所の推定結果を示す画面である。障害箇所推定結果画面では、例えば監視対象システム200における各ノードと、各ノードの障害スコアの計算結果とが表示されるとともに、障害箇所として特定されたノードが強調表示される。
図5は、監視対象システムの例を示す図である。
監視対象システム200は、例えば、ルータ201、スイッチ211,212、物理マシン221,222、仮想マシン231,232およびアプリケーション241,242を有する。
監視対象システム200は、例えば、ルータ201、スイッチ211,212、物理マシン221,222、仮想マシン231,232およびアプリケーション241,242を有する。
スイッチ211,212は、ルータ201に接続される。スイッチ211,212は、例えばL2スイッチである。スイッチ211から上位ネットワークへのアクセスにはルータ201を経由する。よって、スイッチ211は、ルータ201に依存する。ルータ201は、スイッチ211に依存される。同様に、スイッチ212は、ルータ201に依存する。ルータ201は、スイッチ212に依存される。
物理マシン221は、スイッチ211に接続される。物理マシン221と他の物理マシンとの通信にはスイッチ211を経由する。よって、物理マシン221は、スイッチ211に依存する。スイッチ211は、物理マシン221に依存される。物理マシン222は、スイッチ212に接続される。物理マシン222は、スイッチ212に依存する。スイッチ212は、物理マシン222に依存される。
仮想マシン231は、物理マシン221で実行される。よって、仮想マシン231は、物理マシン221に依存する。物理マシン221は、仮想マシン231に依存される。仮想マシン232は、物理マシン222で実行される。よって、仮想マシン232は、物理マシン222に依存する。物理マシン222は、仮想マシン232に依存される。
アプリケーション241は、仮想マシン231で実行される。よって、アプリケーション241は、仮想マシン231に依存する。仮想マシン231は、アプリケーション241に依存される。アプリケーション242は、仮想マシン232で実行される。よって、アプリケーション242は、仮想マシン232に依存する。仮想マシン232は、アプリケーション242に依存される。
アプリケーション241は、アプリケーション242と連携する。例えば、アプリケーション241は、アプリケーション242にリクエストを送信し、アプリケーション242からのレスポンスに応じた処理を実行する。よって、アプリケーション241は、アプリケーション242に依存する。アプリケーション242は、アプリケーション241に依存される。
上記のノード間の関連は、例えば、依存する側のノードと依存される側のノードとをエッジで結ぶグラフによって表される。他のノードに依存する側のノードを上位、他のノードから依存される側のノードを下位とする。この場合、図5の例では、アプリケーション241,242は、最上位の階層のノードである。ルータ201は、最下位の階層のノードである。
ここで、ルータ201のノード名は「Router」である。スイッチ211のノード名は「SW1」である。スイッチ212のノード名は「SW2」である。物理マシン221のノード名は「PM1」である。物理マシン222のノード名は「PM2」である。仮想マシン231のノード名は「VM1」である。仮想マシン232のノード名は「VM2」である。アプリケーション241のノード名は「appl1」である。アプリケーション242のノード名は「appl2」である。
依存されているノードに障害が発生すると、依存しているノードに影響が及ぶことが多いが、依存しているノードの障害によって、依存されているノードにアラートが発生することもある。例えば、物理マシン221のメモリが過負荷となると、仮想マシン231も過負荷となりアラートが発生する。一方、仮想マシン231が大量のジョブを、制限をかけずに実行すると、物理マシン221のサービスが遅くなりアラートが発生することがある。
図6は、障害スコアの計算方法の例を示す図である。
図6において、ノード間を結ぶ矢印は有向エッジを示す。有向エッジは、ノード間の依存関係を示す。有向エッジの起点のノードは終点のノードに依存する。有向エッジの終点のノードは起点のノードに依存される。本例では、隣接ノードを決定するための閾値a=1とする。この場合、2つのノードを隔てるエッジの数が1である場合、両ノードは互いに隣接すると判断される。より具体的には、ノードN1とノードN2との間を隔てる有向エッジの数が1つの場合、すなわち、ノードN1,N2が有向エッジで直接結ばれる場合に、ノードN2はノードN1の隣接ノードであるとともに、ノードN1はノードN2の隣接ノードである。
図6において、ノード間を結ぶ矢印は有向エッジを示す。有向エッジは、ノード間の依存関係を示す。有向エッジの起点のノードは終点のノードに依存する。有向エッジの終点のノードは起点のノードに依存される。本例では、隣接ノードを決定するための閾値a=1とする。この場合、2つのノードを隔てるエッジの数が1である場合、両ノードは互いに隣接すると判断される。より具体的には、ノードN1とノードN2との間を隔てる有向エッジの数が1つの場合、すなわち、ノードN1,N2が有向エッジで直接結ばれる場合に、ノードN2はノードN1の隣接ノードであるとともに、ノードN1はノードN2の隣接ノードである。
例えば、障害箇所推定サーバ100は、スイッチ211、物理マシン221およびアプリケーション241,242で発生したアラートに対して、仮想マシン231の障害スコアを次のように計算する。仮想マシン231の隣接ノードは、アプリケーション241および物理マシン221である。
まず、基礎スコア算出部153は、監視対象システム200の各ノードの基礎スコアを算出する。アプリケーション241の基礎スコアはxである。仮想マシン231の基礎スコアはyである。物理マシン221の基礎スコアはzである。図6では、着目する仮想マシン231および仮想マシン231の隣接ノード以外のノードの基礎スコアの図示が省略されている。
一例では、基礎スコア算出部153は、該当のノードで発出されたアラートの個数を基礎スコアとする。例えば、該当のノードで発出されたアラートの個数が12個だった場合、基礎スコアは12となる。基礎スコア算出部153は、アラートの重要度(ERROR、Warning、Informationなど)に応じて、重みを付けて基礎スコアを求めてもよい。例えば、基礎スコア算出部153は、アラートの重要度の重みをERROR:3、Warning:2、Information:1とする。例えば、アラートの個数がそれぞれERROR:12個、Warning:11個、Information:13個であった場合、基礎スコア算出部153は、該当のノードの基礎スコアを、3*12+2*11+1*13=71と計算してもよい。
更に、基礎スコア算出部153は、着目する仮想マシン231についてアラートに応じて求めた基礎スコアyに、仮想マシン231の属性に応じた基礎スコア係数εを乗じた自己スコアεyを、仮想マシン231の基礎スコアとして採用してもよい。εyは、基礎スコアyを基礎スコア係数εで補正した補正後の基礎スコアである。なお、基礎スコア係数は後述するように仮想マシンに限らず、アプリケーションや物理マシンなど、全てのノードの属性について、設定することができる。図6では、障害スコアの算出対象である仮想マシン231の基礎スコアをεyとする例を示す。
仮想マシン231に対するアプリケーション241の伝搬スコア係数はαである。仮想マシン231に対する物理マシン221の伝搬スコア係数はβである。α,βは何れも正の実数である。また、α>βである。互いに隣接する2つのノードのうち、依存される側であるノードの方が、障害箇所である可能性が高いからである。
伝搬スコア算出部155は、着目するノードに対する隣接ノードの伝搬スコア係数を、当該隣接ノードの基礎スコアに乗じることで、着目するノードに対する隣接ノードの伝搬スコアを算出する。具体的には、仮想マシン231に対するアプリケーション241の伝搬スコアαxを算出する。また、伝搬スコア算出部155は、仮想マシン231に対する物理マシン221の伝搬スコアβzを算出する。
そして、障害スコア算出部156は、着目するノードの基礎スコアと隣接ノードの伝搬スコアとの合計を、着目するノードの障害スコアとして算出する。例えば、障害スコア=基礎スコア係数(ε)*基礎スコア(y)+隣接する上位層の伝搬スコア係数(α)*隣接する上位層の基礎スコア(x)+隣接する下位層の伝搬スコア係数(β)*隣接する下位層の基礎スコア(z)である。すなわち、例えば、障害スコア算出部156は、仮想マシン231に対して、障害スコアεy+αx+βzを算出する。
図7は、ノードテーブルおよびエッジテーブルの例を示す図である。
ノードテーブル111は、ノード名およびノードIDの項目を含む。ノード名の項目には、ノード名が登録される。ノードIDの項目には、ノードIDが登録される。例えば、ノードテーブル111は、ノード名「appl1」、ノードID「n1」のレコードを有する。当該レコードは、ノード名「appl1」のノード、すなわち、アプリケーション241のノードIDが「n1」であることを示す。ノードテーブル111は、アプリケーション241以外のノードのノード名およびノードIDのレコードも有する。
ノードテーブル111は、ノード名およびノードIDの項目を含む。ノード名の項目には、ノード名が登録される。ノードIDの項目には、ノードIDが登録される。例えば、ノードテーブル111は、ノード名「appl1」、ノードID「n1」のレコードを有する。当該レコードは、ノード名「appl1」のノード、すなわち、アプリケーション241のノードIDが「n1」であることを示す。ノードテーブル111は、アプリケーション241以外のノードのノード名およびノードIDのレコードも有する。
エッジテーブル112は、エッジID、起点および終点の項目を含む。エッジIDの項目には、エッジIDが登録される。起点の項目には、エッジの起点のノードのノードIDが登録される。終点の項目には、エッジの終点のノードのノードIDが登録される。例えば、エッジテーブル112は、エッジID「e1」、起点「n1」、終点「n2」のレコードを有する。当該レコードは、エッジIDの「e1」で識別されるエッジの起点のノードのノードIDが「n1」であり、当該エッジの終点のノードのノードIDが「n2」であることを示す。すなわち、当該レコードは、アプリケーション241の隣接ノードが仮想マシン231であること、および、仮想マシン231の隣接ノードがアプリケーション241であることを示す。また、当該レコードは、アプリケーション241が仮想マシン231に依存するという依存関係を示す。この依存関係は、仮想マシン231がアプリケーション241に依存されるという依存関係であるとも言える。エッジテーブル112は、エッジID「e1」以外のエッジIDのエッジを示すレコードも有する。
なお、ノードテーブル111およびエッジテーブル112は、構成情報記憶部110に記憶される構成情報の一例である。
図8は、アラートテーブルの例を示す図である。
図8は、アラートテーブルの例を示す図である。
アラートテーブル121は、時刻、ノードID、重要度およびアラート内容の項目を含む。時刻の項目には、アラートが発生した時刻が登録される。ノードIDの項目には、アラートが発生したノードのノードIDが登録される。重要度の項目には、アラートの重要度が登録される。例えば、アラートの重要度には、「ERROR」、「Warning」、「Information」などがある。アラート内容の項目には、アラートのメッセージが登録される。
例えば、アラートテーブル121は、時刻「t1」、ノードID「n1」、重要度「Warning」、アラート内容「…」のレコードを有する。当該レコードは、時刻t1に、ノードID「n1」のノード、すなわち、アプリケーション241で、重要度「Warning」のアラートが発生したことを示す。アラートテーブル121は、他のアラートを示すレコードも有する。なお、アラートテーブル121は、アラート情報記憶部120に記憶されるアラート情報の一例である。
図9は、基礎スコア係数テーブルの例を示す図である。
基礎スコア係数テーブル131は、係数情報記憶部130に記憶される。基礎スコア係数テーブル131は、基礎スコア係数の項目を含む。基礎スコア係数の項目には、基礎スコア係数が登録される。図9の例では、基礎スコア係数は、全てのノードに対して一律に1.0である。基礎スコア係数は、各ノードの自己スコアの算出に用いられる。例えば、ノードの自己スコアは、当該ノードで発出されたアラートの数、または、アラートの数にアラートの重要度に応じた重みを合計した値に、基礎スコア係数を乗じた値として求められてもよい。基礎スコア係数は1.0以外の値でもよい。また、後述されるように、基礎スコア係数は、例えばノードの属性に応じた値でもよい。
基礎スコア係数テーブル131は、係数情報記憶部130に記憶される。基礎スコア係数テーブル131は、基礎スコア係数の項目を含む。基礎スコア係数の項目には、基礎スコア係数が登録される。図9の例では、基礎スコア係数は、全てのノードに対して一律に1.0である。基礎スコア係数は、各ノードの自己スコアの算出に用いられる。例えば、ノードの自己スコアは、当該ノードで発出されたアラートの数、または、アラートの数にアラートの重要度に応じた重みを合計した値に、基礎スコア係数を乗じた値として求められてもよい。基礎スコア係数は1.0以外の値でもよい。また、後述されるように、基礎スコア係数は、例えばノードの属性に応じた値でもよい。
図10は、伝搬スコア係数テーブルの例を示す図である。
伝搬スコア係数テーブル132は、係数情報記憶部130に記憶される。伝搬スコア係数テーブル132は、依存関係、伝搬方向および伝搬スコア係数の項目を含む。依存関係の項目には、ノード間の依存関係を示す情報が登録される。伝搬方向の項目には、隣接ノードの伝搬スコアを適用する方向、すなわち、伝搬方向が登録される。伝搬スコア係数の項目には、伝搬方向に応じた伝搬スコア係数が登録される。
伝搬スコア係数テーブル132は、係数情報記憶部130に記憶される。伝搬スコア係数テーブル132は、依存関係、伝搬方向および伝搬スコア係数の項目を含む。依存関係の項目には、ノード間の依存関係を示す情報が登録される。伝搬方向の項目には、隣接ノードの伝搬スコアを適用する方向、すなわち、伝搬方向が登録される。伝搬スコア係数の項目には、伝搬方向に応じた伝搬スコア係数が登録される。
例えば、伝搬スコア係数テーブル132の依存関係の項目には、「node1」が「node2」に依存することを示す情報が登録される。図10の例では、「node1」が「node2」に依存する依存関係が「node1->node2」と表されている。
また、伝搬スコア係数テーブル132は、依存関係「node1->node2」に対して、伝搬方向「node1->node2」、伝搬スコア係数「1.0」のレコードを有する。このレコードは、「node1」が「node2」に依存する場合、「node2」に対する「node1」の伝搬スコア係数を「1.0」とすることを示す。
更に、伝搬スコア係数テーブル132は、依存関係「node1->node2」に対して、伝搬方向「node1<-node2」、伝搬スコア係数「0.7」のレコードを有する。このレコードは、「node1」が「node2」に依存する場合、「node1」に対する「node2」の伝搬スコア係数を「0.7」とすることを示す。
伝搬スコア係数テーブル132では、依存する側のノードの、依存される側のノードに対する伝搬スコア係数αが、依存される側のノードの、依存する側のノードに対する伝搬スコア係数βよりも大きくなるように、伝搬スコア係数が設定される。
なお、基礎スコア係数テーブル131および伝搬スコア係数テーブル132は、係数情報記憶部130に記憶される係数情報の一例である。
図11は、スコアテーブルの例を示す図である。
図11は、スコアテーブルの例を示す図である。
スコアテーブル141は、スコア情報記憶部140に記憶される。スコアテーブル141は、ノード名、ノードID、重み別アラート数、基礎スコア、自己スコア、上位ノードID、下位ノードID、リソース伝搬スコア係数、上位ノードの伝搬スコア、下位ノードの伝搬スコアおよび障害スコアの項目を含む。
ノード名の項目には、ノード名が登録される。ノードIDの項目には、ノードIDが登録される。重み別アラート数の項目には、重み別のアラート数が登録される。例えば、「ERROR」、「Warning」、「Information」といった重要度が、それぞれ重み「3」、重み「2」、重み「1」に対応付けられる。基礎スコアの項目には、該当のノードの基礎スコアが登録される。ここで、スコアテーブル141の例では、該当のノードで発生したアラートの数に、アラートの重要度に応じた重みを乗じて合計した値を基礎スコアとする例を示している。自己スコアの項目には、該当のノードの自己スコアが登録される。上位ノードIDの項目には、上位ノードのノードIDが登録される。上位ノードは、該当のノードの1つ上位の隣接ノードである。下位ノードIDの項目には、下位ノードのノードIDが登録される。下位ノードは、該当のノードの1つ下位の隣接ノードである。
リソース伝搬スコア係数の項目には、リソース伝搬スコア係数が登録される。リソース伝搬スコア係数は、伝搬スコア係数算出部154により算出される伝搬スコア係数である。伝搬スコア係数算出部154は、下位ノードのリソースを、該当のノードが利用する場合に、下位ノードのリソース量のうちの該当のノードが利用するリソース量の割合に応じてリソース伝搬スコア係数を計算する。
例えば、リソース伝搬スコア係数は、リソース伝搬スコア係数=(リソース割当て係数)*{(該当ノードが使用しているCPUコア数)/(下位ノードが所有するCPUコア数)}の計算式により計算される。このように、該当ノードが使用しているCPUリソース量が多い場合は、下位ノードの障害によって該当ノードが影響を受ける可能性が高くなるため、リソース伝搬スコア係数は大きくなる。なお、リソース割当て係数としては、予め設定される一定値が用いられる。一例では、リソース割当て係数は1.0である。
なお、スコアテーブル141では、リソース伝搬スコア係数をスコアテーブル141に登録する例を示している。ただし、伝搬スコア係数算出部154は、着目するノードに対する隣接ノード(下位ノード)のリソース伝搬スコア係数を、係数情報記憶部130に格納してもよい。
上位ノードの伝搬スコアの項目には、該当のノードに対する上位ノードの伝搬スコアが登録される。下位ノードの伝搬スコアの項目には、該当のノードに対する下位ノードの伝搬スコアが登録される。障害スコアの項目には、該当のノードの障害スコアが登録される。
例えば、スコアテーブル141は、ノード名「appl1」、ノードID「n1」、重み別アラート数の重み3が「0」、重み2が「1」、重み1が「1」、基礎スコア「3」、自己スコア「3」、上位ノードID「-」、下位ノードID「n2」、リソース伝搬スコア係数「0.5」、上位ノードの伝搬スコア「-」、下位ノードの伝搬スコア「0」、障害スコア「3」のレコードを有する。このレコードは、アプリケーション241に対して計算される各スコアを示すレコードである。アプリケーション241の上位には、ノードが存在しないため、上位ノードIDや上位ノードの伝搬スコアは設定なしとなる。
また、例えば、スコアテーブル141は、ノード名「VM1」、ノードID「n2」、重み別アラート数の各重みで「0」、基礎スコア「0」、自己スコア「0」、上位ノードID「n1」、下位ノードID「n3」、リソース伝搬スコア係数「0.2」、上位ノードの伝搬スコア「3」、下位ノードの伝搬スコア「0.2」、障害スコア「3.2」のレコードを有する。このレコードは、仮想マシン231に対して計算される各スコアを示すレコードである。仮想マシン231は、アラートを出力していないため、重み別アラート数、基礎スコアおよび自己スコアは何れも「0」となる。一方、仮想マシン231の隣接ノードであるアプリケーション241および物理マシン221の伝搬スコアによって、仮想マシン231の障害スコアは「3.2」となる。
また、例えば、スコアテーブル141は、ノード名「PM1」、ノードID「n3」、重み別アラート数の重み3,2で「0」、重み1で「1」、基礎スコア「1」、自己スコア「1」、上位ノードID「n2」、下位ノードID「n4」、リソース伝搬スコア係数「-」、上位ノードの伝搬スコア「0」、下位ノードの伝搬スコア「0.7」、障害スコア「1.7」のレコードを有する。このレコードは、物理マシン221に対して計算される各スコアを示すレコードである。物理マシン221は、下位ノードのリソースの割当てを受けないため、リソース伝搬スコア係数は設定なしとなる。リソース伝搬スコア係数の設定がない場合、下位ノードの伝搬スコア係数には、伝搬スコア係数テーブル132における伝搬方向「node1<-node2」の伝搬スコア係数が使用される。
スコアテーブル141には、アプリケーション241、仮想マシン231および物理マシン221以外のノードの基礎スコア、当該ノードに対する隣接ノードの伝搬スコア、および、当該ノードの障害スコアを示すレコードも登録される。なお、スコアテーブル141は、スコア情報記憶部140に記憶されるスコア情報の一例である。
図12は、障害箇所推定結果画面の表示例を示す図である。
障害箇所推定結果画面51aは、ディスプレイ51に表示される。障害箇所出力部157は、ノードテーブル111、エッジテーブル112、アラートテーブル121およびスコアテーブル141に基づいて、障害箇所推定結果画面51aをディスプレイ51に表示させる。
障害箇所推定結果画面51aは、ディスプレイ51に表示される。障害箇所出力部157は、ノードテーブル111、エッジテーブル112、アラートテーブル121およびスコアテーブル141に基づいて、障害箇所推定結果画面51aをディスプレイ51に表示させる。
障害箇所推定結果画面51aは、監視対象システム200に含まれる各ノードの関連を示す画像を含む。障害箇所推定結果画面51aは、各ノードに対して計算された障害スコアを含む。また、障害箇所推定結果画面51aは、障害スコアの算出時に考慮されたアラートの発生元のノードを示すマークを含む。障害箇所推定結果画面51aの例では、アラートの発生元のノードを示すマークは、エクスクラメーションマーク「!」である。
更に、障害箇所推定結果画面51aでは、アラートの原因として特定されたノード、すなわち、障害箇所として特定されたノードが強調表示される。障害箇所推定結果画面51aの例では、ノード名「VM1」のアイコン、すなわち、仮想マシン231を示すアイコンが、アラートの原因として特定されたノードとして強調表示されている。障害箇所推定結果画面51aで例示されるように、障害箇所推定サーバ100によれば、アラートを発出していないノードの中からもアラートの原因のノードを特定することもできる。
次に、障害箇所推定サーバ100の処理手順を説明する。
図13は、障害箇所推定サーバの処理例を示すフローチャートである。
例えば、障害箇所推定サーバ100は、定期的なタイミング、アラート検知時、または、ユーザによるリクエストに応じて下記の処理手順を開始する。係数情報のうち、基礎スコア係数や伝搬スコア係数のように一定値となる係数は、ユーザにより予め設定された値が係数情報記憶部130に保存される。一方、リソース伝搬スコア係数のように、システム構成に応じて動的に変化し得る係数は、下記の手順の中で、最新の構成情報に基づいて計算される。
図13は、障害箇所推定サーバの処理例を示すフローチャートである。
例えば、障害箇所推定サーバ100は、定期的なタイミング、アラート検知時、または、ユーザによるリクエストに応じて下記の処理手順を開始する。係数情報のうち、基礎スコア係数や伝搬スコア係数のように一定値となる係数は、ユーザにより予め設定された値が係数情報記憶部130に保存される。一方、リソース伝搬スコア係数のように、システム構成に応じて動的に変化し得る係数は、下記の手順の中で、最新の構成情報に基づいて計算される。
(S10)構成情報管理部151は、監視対象システム200の構成情報を、構成管理サーバ300から取得し、構成情報記憶部110に格納する。構成情報は、ノードテーブル111やエッジテーブル112を含む。また、構成情報は、あるノードに対する他のノードのリソースの割当て量を示す情報を含む。
(S11)基礎スコア算出部153は、アラートテーブル121に基づいて、アラートを発出したノードを特定して各ノードの基礎スコアを算出し、スコアテーブル141に登録する。例えば、基礎スコア算出部153は、各ノードにおけるアラート数にアラートの重要度に応じた重みを乗じて合計した値を該当のノードの基礎スコアとする。また、基礎スコア算出部153は、各ノードの基礎スコアと基礎スコア係数テーブル131とに基づいて、各ノードの自己スコア(=基礎スコア係数*基礎スコア)を算出し、スコアテーブル141に登録する。このとき、基礎スコア算出部153は、ノードテーブル111およびエッジテーブル112に基づいて、各ノードのノード名、ノードID、上位ノードIDおよび下位ノードIDを、スコアテーブル141に登録する。
(S12)伝搬スコア係数算出部154は、構成情報に含まれる、ノードに対する他のノードのリソースの割当て量を示す情報に基づいて、リソース伝搬スコア係数を算出し、スコアテーブル141に登録する。他のノードからのリソースの割当てを受けないノードは、リソース伝搬スコア係数の算出の対象外となる。また、伝搬スコア係数算出部154は、算出したリソース伝搬スコア係数を、係数情報記憶部130に格納してもよい。
(S13)伝搬スコア算出部155は、ノードごとに、上位ノードの基礎スコアに、上位ノードの伝搬スコア係数を乗じることで、上位ノードの伝搬スコアを算出し、スコアテーブル141に登録する。また、伝搬スコア算出部155は、ノードごとに、下位ノードの基礎スコアに、下位ノードの伝搬スコア係数を乗じることで、下位ノードの伝搬スコアを算出し、スコアテーブル141に登録する。ここで、伝搬スコア算出部155は、下位ノードのリソースを用いるノードに対し、リソース伝搬スコア係数を用いて伝搬スコアを算出する。一方、伝搬スコア算出部155は、リソース伝搬スコア係数の無いノードに対しては、伝搬スコア係数テーブル132に登録されている伝搬スコア係数を用いて伝搬スコアを算出する。
(S14)障害スコア算出部156は、各ノードの障害スコアを、障害スコア=(自己スコア+上位ノードの伝搬スコア+下位ノードの伝搬スコア)として算出する。障害スコア算出部156は、算出した障害スコアをスコアテーブル141に登録する。なお、自己スコアは、元の基礎スコアに対し、基礎スコア係数による補正後の基礎スコアであると言える。したがって、上記の障害スコアの式は、障害スコア=(補正後の基礎スコア+上位ノードの伝搬スコア+下位ノードの伝搬スコア)と表されてもよい。また、基礎スコア係数=1.0の場合、自己スコア=元の基礎スコアとなる。
(S15)障害箇所出力部157は、監視対象システム200の構成および各ノードの障害スコアの可視化を行う。具体的には、障害箇所出力部157は、ノードテーブル111、エッジテーブル112およびスコアテーブル141に基づいて、障害箇所推定結果画面51aをディスプレイ51に表示させる。そして、障害箇所推定サーバ100の処理が終了する。
なお、アラート検知時に上記の処理手順を開始する場合、障害箇所推定サーバ100は、一定の時間間隔よりも短い時間間隔でアラートが検知されるたびに、一定の時間間隔よりも短い時間間隔で発生した一群のアラートに対して、各ノードの障害スコアを更新する。一定の時間間隔よりも短い時間間隔で連続して発生した一群のアラートは、原因が共通する可能性が高いためである。上記の一定の時間間隔としては、1分、3分、5分または10分など、監視対象システム200に応じた値が予め設定される。
また、定期的なタイミングで上記の処理手順を開始する場合、障害箇所推定サーバ100は、前回のタイミングから今回のタイミングまでにアラート情報記憶部120に蓄積されたアラートの情報に基づいて、各ノードの障害スコアを算出する。
更に、前回構成情報を取得した時点から現在までの間に構成情報に変更がないことが明らかである場合、障害箇所推定サーバ100は、ステップS10をスキップして、ステップS11を実行してもよい。
次に、係数情報記憶部130に格納される係数情報の変形例を説明する。
図14は、基礎スコア係数テーブルの変形例を示す図である。
基礎スコア係数テーブル131aは、基礎スコア係数テーブル131に代えて、係数情報記憶部130に記憶される。基礎スコア係数テーブル131aは、ノード属性および基礎スコア係数の項目を含む。ノード属性の項目には、ノードの属性が登録される。ノードの属性には、仮想マシン(VM)、物理マシン(PM)、アプリケーション、スイッチおよびルータなどがある。基礎スコア係数の項目には、基礎スコア係数が登録される。
図14は、基礎スコア係数テーブルの変形例を示す図である。
基礎スコア係数テーブル131aは、基礎スコア係数テーブル131に代えて、係数情報記憶部130に記憶される。基礎スコア係数テーブル131aは、ノード属性および基礎スコア係数の項目を含む。ノード属性の項目には、ノードの属性が登録される。ノードの属性には、仮想マシン(VM)、物理マシン(PM)、アプリケーション、スイッチおよびルータなどがある。基礎スコア係数の項目には、基礎スコア係数が登録される。
例えば、基礎スコア係数テーブル131aは、ノード属性「VM」、基礎スコア係数「0.9」のレコードを有する。当該レコードは、ノード属性「VM」のノードの基礎スコア係数が「0.9」であることを示す。基礎スコア係数テーブル131aは、ノード属性「PM」などの他のノード属性に対する基礎スコア係数を示すレコードも含む。
基礎スコア算出部153は、基礎スコア係数テーブル131aに基づいて、各ノードに対し、当該ノードのノード属性に応じた基礎スコア係数を用いて、当該ノードの障害スコアの計算に用いる自己スコア(=補正後の基礎スコア)を算出してもよい。
図15は、伝搬スコア係数テーブルの第1の変形例を示す図である。
伝搬スコア係数テーブル132aは、伝搬スコア係数テーブル132に代えて、係数情報記憶部130に記憶される。伝搬スコア係数テーブル132aは、依存関係、伝搬方向および伝搬スコア係数の項目を含む。伝搬スコア係数テーブル132aでは、依存関係および伝搬方向の項目に設定される情報に、ノードの属性が含まれる点が、伝搬スコア係数テーブル132と異なる。例えば、伝搬スコア係数テーブル132aは、仮想マシン(VM)が物理マシン(PM)に依存するという依存関係に対して、PMに対するVMの伝搬スコア係数が1.0、VMに対するPMの伝搬スコア係数が0.5であることを示すレコードを有する。
伝搬スコア係数テーブル132aは、伝搬スコア係数テーブル132に代えて、係数情報記憶部130に記憶される。伝搬スコア係数テーブル132aは、依存関係、伝搬方向および伝搬スコア係数の項目を含む。伝搬スコア係数テーブル132aでは、依存関係および伝搬方向の項目に設定される情報に、ノードの属性が含まれる点が、伝搬スコア係数テーブル132と異なる。例えば、伝搬スコア係数テーブル132aは、仮想マシン(VM)が物理マシン(PM)に依存するという依存関係に対して、PMに対するVMの伝搬スコア係数が1.0、VMに対するPMの伝搬スコア係数が0.5であることを示すレコードを有する。
伝搬スコア係数テーブル132aは、物理マシン(PM)がスイッチ(SW)に依存するという依存関係に対する伝搬スコア係数など、他の依存関係に対する伝搬スコア係数のレコードも有する。
伝搬スコア算出部155は、伝搬スコア係数テーブル132aに基づいて、ノードと隣接ノードとのペアに対し、当該ノードのノード属性および隣接ノードのノード属性に応じた伝搬スコア係数を用いて、伝搬スコアを算出してもよい。
図16は、伝搬スコア係数テーブルの第2の変形例を示す図である。
伝搬スコア係数テーブル132bは、伝搬スコア係数テーブル132,132aに代えて、係数情報記憶部130に記憶される。伝搬スコア係数テーブル132bは、依存関係、伝搬方向および伝搬スコア係数の項目を含む。
伝搬スコア係数テーブル132bは、伝搬スコア係数テーブル132,132aに代えて、係数情報記憶部130に記憶される。伝搬スコア係数テーブル132bは、依存関係、伝搬方向および伝搬スコア係数の項目を含む。
伝搬スコア係数テーブル132bでは、依存関係および伝搬方向の項目に設定される情報に、ノードの属性が含まれる点が、伝搬スコア係数テーブル132と異なる。また、伝搬スコア係数テーブル132bでは、依存される側のノードの、依存する側のノードに対する伝搬スコア係数が、リソース伝搬スコア係数として求められる点が、伝搬スコア係数テーブル132aと異なる。リソース伝搬スコア係数は、依存する側のノードの、依存される側のノードに対する伝搬スコア係数よりも小さい値となる。
例えば、伝搬スコア係数テーブル132bは、PMに対するVMの伝搬スコア係数が1.0、VMに対するPMの伝搬スコア係数が、リソース伝搬スコア係数であることを示すレコードを有する。伝搬スコア係数テーブル132bは、物理マシン(PM)がスイッチ(SW)に依存するという依存関係に対する伝搬スコア係数など、他の依存関係に対する伝搬スコア係数のレコードも有する。
伝搬スコア算出部155は、伝搬スコア係数テーブル132bに基づいて、各ノードに対し、当該ノードのノード属性および隣接ノードのノード属性に応じた伝搬スコア係数を用いて、伝搬スコアを算出してもよい。この場合、伝搬スコア係数算出部154は、各ノードに対し、当該ノードのノード属性および隣接ノードのノード属性に応じたリソース伝搬スコア係数を算出する。
なお、リソース伝搬スコア係数は、ノードと隣接ノードとのペアに対して個別に算出される。例えば、仮想マシン231が物理マシン221上に構築されている場合、リソース割当て係数は1.0などと一定値とされる。仮想マシン231が使用しているCPUコア数が2で、物理マシン221が所有するCPUコア数が20の場合、仮想マシン231に対する物理マシン221のリソース伝搬スコア係数は次のように求められる。すなわち、リソース伝搬スコア係数=リソース割当て係数(1.0)*{該当ノードが使用しているCPUコア数(2)}/{下位ノードが所有するCPUコア数(20)}=0.1となる。なお、伝搬スコア係数算出部154は、リソース伝搬スコア係数が上位ノード側から下位ノード側への伝搬スコア係数よりも小さい値になるように、リソース伝搬スコア係数を算出する。
ところで、上記の例では、隣接ノードを決定するための閾値a=1としたが、前述のように、aは2以上でもよい。そこで、次に、a=2とする場合の障害スコアの計算方法の例を説明する。
図17は、障害スコアの他の計算方法の例を示す図である。
a=2の場合、あるノードからエッジ数2以内、すなわち、ホップ数2以内で到達するノードが隣接ノードとなる。この場合、エッジ数1で到達する隣接ノードは第1隣接ノードと言われる。また、エッジ数2で到達する隣接ノードは第2隣接ノードと言われる。例えば、監視対象システム200における物理マシン221に対して、仮想マシン231およびスイッチ211は何れも第1隣接ノードである。また、物理マシン221に対して、アプリケーション241およびルータ201は何れも第2隣接ノードである。アプリケーション241は、仮想マシン231を介して、物理マシン221に依存する。また、ルータ201は、スイッチ211を介して、物理マシン221に依存される。
a=2の場合、あるノードからエッジ数2以内、すなわち、ホップ数2以内で到達するノードが隣接ノードとなる。この場合、エッジ数1で到達する隣接ノードは第1隣接ノードと言われる。また、エッジ数2で到達する隣接ノードは第2隣接ノードと言われる。例えば、監視対象システム200における物理マシン221に対して、仮想マシン231およびスイッチ211は何れも第1隣接ノードである。また、物理マシン221に対して、アプリケーション241およびルータ201は何れも第2隣接ノードである。アプリケーション241は、仮想マシン231を介して、物理マシン221に依存する。また、ルータ201は、スイッチ211を介して、物理マシン221に依存される。
この場合に、アプリケーション241の基礎スコアv、仮想マシン231の基礎スコアw、物理マシン221の基礎スコアx、スイッチ211の基礎スコアy、ルータ201の基礎スコアzに対し、物理マシン221の障害スコアは次のように計算される。すなわち、物理マシン221の障害スコア=εx+α1w+α2v+β1y+β2zである。
ここで、εは、物理マシン221の基礎スコア係数である。α1は、物理マシン221に対する仮想マシン231の伝搬スコア係数である。α2は、物理マシン221に対するアプリケーション241の伝搬スコア係数である。β1は、物理マシン221に対するスイッチ211の伝搬スコア係数である。β2は、物理マシン221に対するルータ201の伝搬スコア係数である。α1,α2,β1,β2は、何れも正の実数である。また、α1>α2である。α1>β1である。α2>β2である。β1>β2である。ノード間を隔てるエッジ数が少なく関連の強いノードのペアでは、ノード間を隔てるエッジ数が多く関連の弱いノードのペアよりも、及ぼし合う影響の度合いは大きいと推定されるためである。
このように、障害スコア算出部156は、a=2として、各ノードの障害スコアを算出してもよい。また、同様に、障害スコア算出部156は、a=3以上として、各ノードの障害スコアを算出してもよい。
次に、障害箇所推定サーバ100による他の監視対象システムに対する障害箇所の特定例を説明する。
図18は、監視対象システムの他の例を示す図である。
図18は、監視対象システムの他の例を示す図である。
障害箇所推定サーバ100は、監視対象システム500を監視対象としてもよい。監視対象システム500は、物理マシン521,522,523、仮想マシン531,532,533,534,535、コンテナ541,542,543,544,545,546,547,548を有する。物理マシン521,522,523は、スイッチに接続される。スイッチは、図18では省略されている。
仮想マシン531,532,533は、物理マシン521で動作する。仮想マシン534は、物理マシン522で動作する。仮想マシン535は、物理マシン523で動作する。コンテナ541は、仮想マシン531で動作する。コンテナ542は、仮想マシン532で動作する。コンテナ543,544,545は、仮想マシン533で動作する。コンテナ546は、仮想マシン534で動作する。コンテナ547,548は、仮想マシン535で動作する。
例えば、障害箇所推定サーバ100は、物理マシン523で発生したアラートL1および仮想マシン535で発生したアラートL2を取得する。障害箇所推定サーバ100は、監視対象システム500の他のノードのアラートは取得していない。この場合、障害箇所推定サーバ100は、次のように障害スコアを計算する。
図19は、障害スコアの計算例を示す図である。
物理マシン523および仮想マシン535の基礎スコア係数は何れも1である。また、物理マシン523および仮想マシン535それぞれで1つずつアラートが発生したので、物理マシン523および仮想マシン535の基礎スコアは何れも1である。また、物理マシン523に対する仮想マシン535の伝搬スコア係数は1である。更に、仮想マシン535に対する物理マシン523の伝搬スコア係数は0.5である。
物理マシン523および仮想マシン535の基礎スコア係数は何れも1である。また、物理マシン523および仮想マシン535それぞれで1つずつアラートが発生したので、物理マシン523および仮想マシン535の基礎スコアは何れも1である。また、物理マシン523に対する仮想マシン535の伝搬スコア係数は1である。更に、仮想マシン535に対する物理マシン523の伝搬スコア係数は0.5である。
したがって、障害箇所推定サーバ100は、物理マシン523の障害スコアを、1*1+1*1=2.0と計算する。また、障害箇所推定サーバ100は、仮想マシン535の障害スコアを、1*1+0.5*1=1.5と計算する。なお、物理マシン523および仮想マシン535以外のノードの障害スコアは、物理マシン523の障害スコアおよび仮想マシン535の障害スコアよりも小さくなることが明らかであるため、説明を省略する。よって、障害箇所推定サーバ100は、取得されたアラートL1,L2の根本的な原因となったノードを、物理マシン523と特定する。そして、障害箇所推定サーバ100は、アラートL1,L2の原因のノードが物理マシン523であることを示す情報を出力し、ユーザに提示する。
次に、伝搬スコア係数をノードの依存関係に依らずに一定にして障害スコアを計算する場合の比較例を説明する。
図20は、障害スコアの計算の比較例を示す図である。
図20は、障害スコアの計算の比較例を示す図である。
例えば、物理マシン523に対する仮想マシン535の伝搬スコア係数は0.5である。また、仮想マシン535に対する物理マシン523の伝搬スコア係数は0.5である。この場合、障害箇所推定サーバ100は、物理マシン523の障害スコアを、1*1+0.5*1=1.5と計算する。また、障害箇所推定サーバ100は、仮想マシン535の障害スコアを、1*1+0.5*1=1.5と計算する。
このように、ノード間の依存関係を考慮せずに伝搬スコア係数を一定にすると、物理マシン523の障害スコアおよび仮想マシン535の障害スコアは何れも同じ値となり、障害スコアから何れのノードがアラートL1,L2の原因であるかを特定できない。
一方、障害箇所推定サーバ100は、ノード間の依存関係に応じた伝搬スコア係数を用いることで、図19で例示されるように、アラートの原因であるノードを適切に特定可能になる。
以上説明したように、障害箇所推定サーバ100は、例えば、次の処理を実行する。
構成情報記憶部110は、監視対象システム200に含まれる複数のノードにおけるノード間の関連を示す構成情報を記憶する。構成情報は、例えば構成管理サーバ300から取得される。アラート情報記憶部120は、監視対象システム200で発生したアラートを示すアラート情報を記憶する。アラート情報は、例えば異常検知サーバ400から取得される。基礎スコア算出部153は、アラート情報に基づいて、複数のノードそれぞれに対してアラートに応じた基礎スコアを算出する。伝搬スコア算出部155は、構成情報に基づいて特定される、ノードに隣接する隣接ノードの基礎スコアに、当該ノードと隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、当該ノードと隣接ノードとのペアごとに算出する。障害スコア算出部156は、ノードの基礎スコアに、当該ノードと隣接ノードとのペアに対応する伝搬スコアを合計した障害スコアを、複数のノードそれぞれに対して算出する。障害箇所出力部157は、複数のノードそれぞれの障害スコアに基づいて、複数のノードのうちアラートの原因である第1ノードを特定する。
構成情報記憶部110は、監視対象システム200に含まれる複数のノードにおけるノード間の関連を示す構成情報を記憶する。構成情報は、例えば構成管理サーバ300から取得される。アラート情報記憶部120は、監視対象システム200で発生したアラートを示すアラート情報を記憶する。アラート情報は、例えば異常検知サーバ400から取得される。基礎スコア算出部153は、アラート情報に基づいて、複数のノードそれぞれに対してアラートに応じた基礎スコアを算出する。伝搬スコア算出部155は、構成情報に基づいて特定される、ノードに隣接する隣接ノードの基礎スコアに、当該ノードと隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、当該ノードと隣接ノードとのペアごとに算出する。障害スコア算出部156は、ノードの基礎スコアに、当該ノードと隣接ノードとのペアに対応する伝搬スコアを合計した障害スコアを、複数のノードそれぞれに対して算出する。障害箇所出力部157は、複数のノードそれぞれの障害スコアに基づいて、複数のノードのうちアラートの原因である第1ノードを特定する。
これにより、障害箇所推定サーバ100は、アラートの原因のノードを適切に特定できる。例えば、障害箇所推定サーバ100は、アラートの出力元のノードだけでなく、アラートを出力していないノードからも、アラートの根本的な原因となったノードを特定できる。なお、伝搬スコア係数は、重み付け係数の一例である。また、複数のノードは、前述のように、スイッチやルータなどの通信機器、物理マシン、仮想マシン、アプリケーションおよびコンテナを含み得る。
また、アラート情報は、所定期間において監視対象システム200で発生した複数のアラートを示してもよい。この場合、基礎スコア算出部153は、アラート情報に基づいて、複数のノードそれぞれに対して当該複数のアラートに応じた基礎スコアを算出する。また、障害箇所出力部157は、複数のノードそれぞれの障害スコアに基づいて、複数のノードのうち当該複数のアラートの原因である第1ノードを特定する。また、障害スコアが同値の場合は、第1ノードが複数あってもよい。さらに、障害スコアが最も高い第1ノードに加え、障害スコアが次に高いノードを第2ノードとして特定することで、第2のアラートの原因の可能性があるノードを特定してもよい。このように、アラートの原因の可能性を順位として特定してもよい。例えば、障害箇所出力部157は、複数のノードそれぞれの障害スコアに基づいてアラートの原因である可能性の高い順に第1ノードを含む2以上のノードを特定し、当該2以上のノードそれぞれがアラートの原因である可能性の高さを示す順位を出力してもよい。このように、アラートの原因の可能性の順位を出力することで、ユーザに対して障害対応の順番を示すこともできる。
更に、構成情報は、前述のように、関連をもつ2つのノードをエッジで結ぶグラフを示す情報でもよい。伝搬スコア算出部155は、構成情報を参照して、2つのノードを隔てるエッジの数に基づいて、着目するノードに隣接する隣接ノードを特定してもよい。また、当該グラフにおけるエッジは、ノード間の依存関係を示す有向エッジでもよい。伝搬スコア算出部155は、ノードと隣接ノードとの間の有向エッジに基づいて、当該ノードが隣接ノードに依存する依存関係、または、隣接ノードがノードに依存する依存関係を特定してもよい。
伝搬スコア算出部155は、伝搬スコアの算出の際に、隣接ノードが、着目するノードに依存する場合、重み付け係数として第1重み付け係数を使用する。一方、伝搬スコア算出部155は、着目するノードが隣接ノードに依存する場合、重み付け係数として、第1重み付け係数よりも小さい第2重み付け係数を使用する。
これにより、障害箇所推定サーバ100は、着目するノードに対する隣接ノードの影響を、当該ノードの障害スコアに適切に反映させることができ、アラートの原因のノードを適切に特定できる。
例えば、伝搬スコア係数算出部154は、着目するノードが隣接ノードに依存する場合、隣接ノードが有するリソース量のうちの当該ノードに割当てられたリソース量の割合が大きいほど第2重み付け係数を大きくしてもよい。
これにより、障害箇所推定サーバ100は、依存される側のノードの影響を、依存する側のノードの障害スコアに適切に反映させることができ、アラートの原因のノードを適切に特定できる。リソース伝搬スコア係数は、リソース量に応じて決定される第2重み付け係数の一例である。
また、伝搬スコア算出部155は、ノードの属性と隣接ノードの属性とに応じて、伝搬スコアの算出に用いる重み付け係数を変更してもよい。これにより、障害箇所推定サーバ100は、着目するノードに対する隣接ノードの影響を、当該ノードの障害スコアに適切に反映させることができ、アラートの原因のノードを適切に特定できる。
また、基礎スコア算出部153は、ノードにより出力されたアラートの数に基づいて、当該ノードの基礎スコアを算出してもよい。これにより、障害箇所推定サーバ100は、各ノードの障害スコアの基になる基礎スコアを適切に算出でき、アラートの原因のノードを適切に特定できる。
例えば、基礎スコア算出部153は、当該ノードにより出力されたアラートの重要度ごとのアラートの数に重要度に応じた重みを乗じて合計した値を、当該ノードの基礎スコアとして算出してもよい。これにより、障害箇所推定サーバ100は、各ノードの障害スコアの基になる基礎スコアを適切に算出でき、アラートの原因のノードを適切に特定できる。
また、伝搬スコア算出部155は、ノードに対する隣接ノードとして、第1隣接ノードと、第1隣接ノードを介して当該ノードに隣接する第2隣接ノードとを特定してもよい。伝搬スコア算出部155は、当該ノードに対する第1隣接ノードの重み付け係数として、当該ノードに対する第2隣接ノードの重み付け係数よりも大きい値を使用してもよい。
これにより、障害箇所推定サーバ100は、着目するノードに対する隣接ノードの影響を、当該ノードの障害スコアに適切に反映させることができ、アラートの原因のノードを適切に特定できる。
また、障害スコア算出部156は、着目するノードの障害スコアの算出の際に、当該ノードの基礎スコアを、複数のノードに対して一定である第1基礎スコア係数、または、当該ノードの属性に応じた第2基礎スコア係数を用いて補正してもよい。この場合、障害スコア算出部156は、補正後の基礎スコアを、当該ノードと隣接ノードとのペアに対応する伝搬スコアと合計することで、当該ノードの障害スコアを算出する。
これにより、障害箇所推定サーバ100は、該当のノードの属性に応じて、アラートに対する寄与を適切に評価でき、アラートの原因のノードを適切に特定できる。なお、基礎スコア係数テーブル131に登録される基礎スコア係数は、第1基礎スコア係数の一例である。基礎スコア係数テーブル131aに登録される基礎スコア係数は、第2基礎スコア係数の一例である。
更に、障害箇所出力部157は、複数のノードのうち第1ノードを強調表示する画面を表示装置に表示させてもよい。これにより、障害箇所推定サーバ100は、アラートの原因のノードの、ユーザによる把握を支援できる。その結果、障害箇所推定サーバ100は、ユーザによる迅速な障害対応を支援できる。ディスプレイ51は、表示装置の一例である。ただし、表示装置は、ネットワーク50を介して障害箇所推定サーバ100と通信する他の情報処理装置に接続されるものでもよい。例えば、障害箇所推定サーバ100は、他の情報処理装置から障害箇所推定の要求を受け付け、当該要求に応じて、第1ノードを強調表示する画面、すなわち、障害箇所推定の結果を示す画面の情報を、当該他の情報処理装置に応答してもよい。障害箇所推定結果画面51aは、第1ノードを強調表示する画面の一例である。
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体53に記録できる。
例えば、プログラムを記録した記録媒体53を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体53に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
10 情報処理装置
11 記憶部
11a,11b,11c テーブル
12 処理部
20 情報処理システム
21,22 ノード
11 記憶部
11a,11b,11c テーブル
12 処理部
20 情報処理システム
21,22 ノード
Claims (11)
- 情報処理システムに含まれる複数のノードにおけるノード間の関連を示す構成情報と、前記情報処理システムで発生したアラートを示すアラート情報とを記憶する記憶部と、
前記アラート情報に基づいて前記複数のノードそれぞれに対して前記アラートに応じた基礎スコアを算出し、
前記複数のノードそれぞれに対して前記構成情報に基づいて特定される、前記ノードに隣接する隣接ノードの前記基礎スコアに、前記ノードと前記隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、前記ノードと前記隣接ノードとのペアごとに算出し、
前記ノードの前記基礎スコアに、前記ノードと前記隣接ノードとのペアに対応する前記伝搬スコアを合計した障害スコアを、前記複数のノードそれぞれに対して算出し、
前記複数のノードそれぞれの前記障害スコアに基づいて前記複数のノードのうち前記アラートの原因である第1ノードを特定する、処理部と、
を有する情報処理装置。 - 前記処理部は、前記伝搬スコアの算出の際に、
前記隣接ノードが前記ノードに依存する場合、前記重み付け係数として第1重み付け係数を使用し、
前記ノードが前記隣接ノードに依存する場合、前記重み付け係数として前記第1重み付け係数よりも小さい第2重み付け係数を使用する、
請求項1記載の情報処理装置。 - 前記処理部は、前記ノードが前記隣接ノードに依存する場合、前記隣接ノードが有するリソース量のうちの前記ノードに割当てられたリソース量の割合が大きいほど前記第2重み付け係数を大きくする、
請求項2記載の情報処理装置。 - 前記処理部は、前記ノードの属性と前記隣接ノードの属性とに応じて前記伝搬スコアの算出に用いる前記重み付け係数を変更する、
請求項1記載の情報処理装置。 - 前記処理部は、前記ノードにより出力された前記アラートの数に基づいて前記ノードの前記基礎スコアを算出する、
請求項1記載の情報処理装置。 - 前記処理部は、前記ノードにより出力された前記アラートの重要度ごとの前記アラートの数に前記重要度に応じた重みを乗じて合計した値を、前記ノードの前記基礎スコアとして算出する、
請求項5記載の情報処理装置。 - 前記処理部は、前記ノードに対する前記隣接ノードとして、第1隣接ノードと、前記第1隣接ノードを介して前記ノードに隣接する第2隣接ノードとを特定し、前記ノードに対する前記第1隣接ノードの前記重み付け係数として、前記ノードに対する前記第2隣接ノードの前記重み付け係数よりも大きい値を使用する、
請求項1記載の情報処理装置。 - 前記処理部は、前記障害スコアの算出の際に、前記ノードの前記基礎スコアを、前記複数のノードに対して一定である第1基礎スコア係数、または、前記ノードの属性に応じた第2基礎スコア係数を用いて補正し、補正後の前記基礎スコアを前記伝搬スコアと合計することで、前記ノードの前記障害スコアを算出する、
請求項1記載の情報処理装置。 - 前記処理部は、前記複数のノードそれぞれの前記障害スコアに基づいて前記アラートの原因である可能性の高い順に前記第1ノードを含む2以上のノードを特定し、前記2以上のノードそれぞれが前記アラートの原因である可能性の高さを示す順位を出力する、
請求項1記載の情報処理装置。 - コンピュータが、
情報処理システムに含まれる複数のノードにおけるノード間の関連を示す構成情報と、前記情報処理システムで発生したアラートを示すアラート情報とを取得し、
前記アラート情報に基づいて前記複数のノードそれぞれに対して前記アラートに応じた基礎スコアを算出し、
前記複数のノードそれぞれに対して前記構成情報に基づいて特定される、前記ノードに隣接する隣接ノードの前記基礎スコアに、前記ノードと前記隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、前記ノードと前記隣接ノードとのペアごとに算出し、
前記ノードの前記基礎スコアに、前記ノードと前記隣接ノードとのペアに対応する前記伝搬スコアを合計した障害スコアを、前記複数のノードそれぞれに対して算出し、
前記複数のノードそれぞれの前記障害スコアに基づいて、前記複数のノードのうち前記アラートの原因である第1ノードを特定する、
情報処理方法。 - 情報処理システムに含まれる複数のノードにおけるノード間の関連を示す構成情報と、前記情報処理システムで発生したアラートを示すアラート情報とを取得し、
前記アラート情報に基づいて前記複数のノードそれぞれに対して前記アラートに応じた基礎スコアを算出し、
前記複数のノードそれぞれに対して前記構成情報に基づいて特定される、前記ノードに隣接する隣接ノードの前記基礎スコアに、前記ノードと前記隣接ノードとの依存関係に応じた重み付け係数を乗算した伝搬スコアを、前記ノードと前記隣接ノードとのペアごとに算出し、
前記ノードの前記基礎スコアに、前記ノードと前記隣接ノードとのペアに対応する前記伝搬スコアを合計した障害スコアを、前記複数のノードそれぞれに対して算出し、
前記複数のノードそれぞれの前記障害スコアに基づいて、前記複数のノードのうち前記アラートの原因である第1ノードを特定する、
処理をコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022039170A JP2023133915A (ja) | 2022-03-14 | 2022-03-14 | 情報処理装置、情報処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022039170A JP2023133915A (ja) | 2022-03-14 | 2022-03-14 | 情報処理装置、情報処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023133915A true JP2023133915A (ja) | 2023-09-27 |
Family
ID=88143407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022039170A Pending JP2023133915A (ja) | 2022-03-14 | 2022-03-14 | 情報処理装置、情報処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023133915A (ja) |
-
2022
- 2022-03-14 JP JP2022039170A patent/JP2023133915A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11108859B2 (en) | Intelligent backup and recovery of cloud computing environment | |
US10430248B2 (en) | Proactive high availability in a virtualized computer system | |
JP5186211B2 (ja) | ヘルス・モニタリング技術およびアプリケーション・サーバの制御 | |
US9323636B2 (en) | Proactive failure handling in network nodes | |
US9485160B1 (en) | System for optimization of input/output from a storage array | |
US9424157B2 (en) | Early detection of failing computers | |
Zheng et al. | Co-analysis of RAS log and job log on Blue Gene/P | |
CN108369544B (zh) | 计算系统中延期的服务器恢复方法和设备 | |
JP5967215B2 (ja) | 情報処理装置、プログラムおよび仮想マシン移動方法 | |
WO2012014305A1 (ja) | システム障害における構成変更事象の影響度推定方法 | |
WO2012101933A1 (ja) | 運用管理装置、運用管理方法、及びプログラム | |
JP6190468B2 (ja) | 管理システム、プラン生成方法、およびプラン生成プログラム | |
US10397164B2 (en) | Deputizing agents to reduce a volume of event logs sent to a coordinator | |
JP2004246852A (ja) | 論理ボリュームコピー先性能調整方法及び装置 | |
JP5222876B2 (ja) | 計算機システムにおけるシステム管理方法、及び管理システム | |
WO2020167464A1 (en) | Fault prediction and detection using time-based distributed data | |
US20210366268A1 (en) | Automatic tuning of incident noise | |
US10732873B1 (en) | Timeout mode for storage devices | |
US20170054592A1 (en) | Allocation of cloud computing resources | |
JP2011192049A (ja) | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム | |
US20140164851A1 (en) | Fault Processing in a System | |
JP2023133915A (ja) | 情報処理装置、情報処理方法およびプログラム | |
US11782801B2 (en) | Systems and methods for selecting optimal proxy devices for backup and restore operations for virtual machines | |
US20210208962A1 (en) | Failure detection and correction in a distributed computing system | |
JP5974905B2 (ja) | 応答時間監視プログラム、方法および応答時間監視装置 |