(57)【要約】【課題】計算機ネットワーク構成を忠実に反映した障害解析を行う。【解決手段】障害監視システムは、ネットワークノードに生じた複数の障害イベント相互間のコリレーションを障害イベントの回復履歴に基づいて計算し直し（ステップ６０３）、複数の障害イベント間のコリレーションを計算の結果に基づいて更新する（ステップ６０４）。これにより、計算機ネットワーク構成を忠実に反映した障害解析が可能になる。【選択図】図６
2014225124.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークノードに生じた複数の障害イベント間のコリレーションを障害イベントの回復履歴に基づいて計算し直す計算手段と、
前記複数の障害イベント間のコリレーションを前記計算の結果に基づいて更新する更新手段と、
を備える障害監視システム。
【請求項２】
請求項１に記載の障害監視システムであって、
前記複数の障害イベントは、第一の障害イベント及び第二の障害イベントを含み、
前記第一の障害イベントの前記第二の障害イベントに対するコリレーションは、前記第一の障害イベントの解消に起因して前記第二の障害イベントが解消する確率である、障害監視システム。
【請求項３】
請求項２に記載の障害監視システムであって、
前記複数の障害イベントのうち所定の障害イベントに対するコリレーションが閾値以上である何れかの障害イベントが存在することを条件として、前記所定の障害イベントの発生の通知を制限する制限手段を更に備える、障害監視システム。
【請求項４】
ネットワークノードに生じた複数の障害イベント間のコリレーションを障害イベントの回復履歴に基づいて計算し直すステップと、
前記複数の障害イベント間のコリレーションを前記計算の結果に基づいて更新するステップと、
を備える障害監視方法。
【請求項５】
請求項４に記載の障害監視方法をコンピュータに実行させるための障害監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークノードに生じた障害を監視するためのシステム、方法、及びプログラムに関する。
【背景技術】
【０００２】
計算機ネットワークに接続する何れかのネットワークノードに障害が生じると、一つの障害事象に対して多くのネットワークノードが相互に影響し合う結果、複数の副次的な障害イベントが発生することがある。障害の箇所と原因を特定する障害解析技術の一つとして、例えば、特開０９−０６４９７１号公報にて詳述されているように、障害イベント相互間のコリレーション（関連性）を利用するイベント・コリレーション技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開０９−０６４９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、計算機ネットワーク構成の変化の影響を受けて複数の障害イベント相互間のコリレーションが変動するにも関わらず、従来のイベント・コリレーション技術では、複数の障害イベント相互間のコリレーションが固定されていたため、計算機ネットワーク構成を忠実に反映した障害解析がなされていなかった。
【０００５】
そこで、本発明は、計算機ネットワーク構成を忠実に反映した障害解析を行うことを課題とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明に関わる障害監視システムは、ネットワークノードに生じた複数の障害イベント間のコリレーションを障害イベントの回復履歴に基づいて計算し直す計算手段と、複数の障害イベント間のコリレーションを計算の結果に基づいて更新する更新手段とを備える。複数の障害イベント間のコリレーションを障害イベントの回復履歴に基づいて計算し直して更新することにより、計算機ネットワーク構成を忠実に反映した障害解析が可能になる。
【０００７】
複数の障害イベントは、第一の障害イベント及び第二の障害イベントを含み、第一の障害イベントの第二の障害イベントに対するコリレーションは、第一の障害イベントの解消に起因して第二の障害イベントが解消する確率である。
【０００８】
本発明に関わる障害監視システムは、複数の障害イベント（例えば、障害イベントＡ，Ｂ）のうち所定の障害イベント（例えば、障害イベントＢ）に対するコリレーションが閾値以上である何れかの障害イベント（例えば、障害イベントＡ）が存在することを条件として、所定の障害イベント（例えば、障害イベントＢ）の発生の通知を制限する制限手段を更に備えてもよい。所定の障害イベント（例えば、障害イベントＢ）に対するコリレーションが閾値以上である何れかの障害イベント（例えば、障害イベントＡ）が存在する場合は、当該何れかの障害イベント（例えば、障害イベントＡ）の解消に起因して所定の障害イベント（例えば、障害イベントＢ）が解消する確率が統計的に高いため、そのような障害イベント（例えば、障害イベントＢ）の発生の通知を制限することでオペレータの監視負担を軽減できる。
【発明の効果】
【０００９】
本発明によれば、計算機ネットワーク構成を忠実に反映した障害解析を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に関わるイベント・コリレーションの一例を示す説明図である。
【図２】本実施形態に関わる障害監視システムによるアラーム通知の概要を示す説明図である。
【図３】本実施形態に関わる障害監視システムの構成を示すブロック図である。
【図４】本実施形態に関わる障害発生時のアラーム表示の流れを示すフローチャートである。
【図５】本実施形態に関わるログファイルの管理の流れを示すフローチャートである。
【図６】本実施形態に関わる動的コリレーションの管理の流れを示すフローチャートである。
【図７】本実施形態に関わる静的コリレーションの管理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、各図を参照しながら本発明の実施形態について説明する。
図１は、本実施形態に関わるイベント・コリレーションの一例を示す説明図である。イベントとは、広義には、コンピュータに状態遷移をもたらす事象を意味し、とりわけ障害イベントと呼ばれるイベントは、コンピュータに障害をもたらす事象を意味する。本明細書では、ネットワークノードに生じた複数の障害イベント相互間のコリレーションを定量的に評価する指標として、一方の障害イベントの解消に起因して他方の障害イベントが解消する統計的な確率を用いる。例えば、図１に示す例では、障害イベントＡの障害イベントＢに対するコリレーションは、障害イベントＡの解消に起因して障害イベントＢが解消する確率９５％であり、障害イベントＢの障害イベントＡに対するコリレーションは、障害イベントＢの解消に起因して障害イベントＡが解消する確率２０％である。同様に、障害イベントＢの障害イベントＣに対するコリレーションは、障害イベントＢの解消に起因して障害イベントＣが解消する確率８０％であり、障害イベントＣの障害イベントＢに対するコリレーションは、障害イベントＣの解消に起因して障害イベントＢが解消する確率１０％である。また、障害イベントＣの障害イベントＡに対するコリレーションは、障害イベントＣの解消に起因して障害イベントＡが解消する確率２０％であり、障害イベントＡの障害イベントＣに対するコリレーションは、障害イベントＡの解消に起因して障害イベントＣが解消する確率８５％である。本明細書では、第一の障害イベントの第二の障害イベントに対するコリレーションが閾値（例えば、確率８０％）以上であるときに、第一の障害イベントは第二の障害イベントの「原因」であり、第二の障害イベントは第一の障害イベントの「影響下にある」と定義する。図１に示す例では、障害イベントＡの障害イベントＢに対するコリレーションは、確率９５％であるから、障害イベントＡは障害イベントＢの原因であり、障害イベントＢは障害イベントＡの影響下にある。なお、図１では、説明の便宜上、三つの障害イベント相互間のコリレーションについて説明したが、障害イベントの数が二つ或いは四つ以上の場合でも同様に障害イベント相互間のコリレーションを定義することができる。
【００１２】
図２は本実施形態に係る障害監視システム１０によるアラーム通知の概要を示す説明図である。計算機ネットワークに接続するネットワークノード２０に複数の障害イベントＡ，Ｂ，Ｃが発生すると、障害監視システム１０は、複数の障害イベントＡ，Ｂ，Ｃ相互間のコリレーションをチェックし、どの障害イベントの影響下にもない障害イベントの発生をオペレータ３０に通知する。何れかの障害イベントの影響下にある障害イベントは、原因となる障害イベントの解消に起因して同時に解消する確率が統計的に高いため、どの障害イベントの影響下にもない障害イベントを選択し、これをオペレータ３０に通知することにより、監視負担を軽減できる。図２に示す例では、複数の障害イベントＡ，Ｂ，Ｃのうち障害イベントＡのみが他の障害イベントの影響下にないため、監視システム１０は、複数の障害イベントＡ，Ｂ，Ｃの中から障害イベントＡを選択し、これをオペレータ３０に通知する。
【００１３】
図３は本実施形態に関わる障害監視システム１０の構成を示すブロック図である。障害イベントＡ，Ｂ，Ｃ相互間のコリレーションは、計算機ネットワーク構成の変化の影響を受けて随時変動し得るため、障害監視システム１０は、障害イベントＡ，Ｂ，Ｃの回復履歴に基づいて障害イベントＡ，Ｂ，Ｃ相互間のコリレーションを定期的に計算し直すことにより計算機ネットワーク構成を忠実に反映した障害解析を可能にしている。障害監視システム１０は、通信インタフェース１１、プロセッサ１２、表示装置１３、入力装置１４、記憶資源１５、及びバス１６を備える。通信インタフェース１１は、計算機ネットワークを介してネットワークノード２０に接続しており、ネットワークノード２０からの障害イベントＡ，Ｂ，Ｃの発生通知を受信する。ネットワークノード２０は、例えば、ルータ、スイッチ、ハブ、及び小型基地局等である。プロセッサ１２は、記憶資源１５に格納されている障害監視プログラム４０を解釈及び実行することにより、障害監視処理（例えば、図４乃至図７に示す処理）を行う。入力装置１４は、例えば、オペレータ３０からの入力操作を受け付けるキーボードやマウス等である。記憶資源１５の一部は、障害管理プログラム４０のワークエリアとして使用され、障害中リスト５１、復旧中リスト５２、及び通知対象リスト５３を一時的に格納する。障害中リスト５１は、ネットワークノード２０から障害発生が通知された障害イベントをリスト化したものである。復旧中リスト５２は、障害回復処理がなされている最中の障害イベントをリスト化したものである。通知対象リスト５３は、表示装置１３にアラーム表示する障害イベントをリスト化したものである。アラーム表示とは、障害の発生を警報するメッセージを表示装置１３に表示することをいい、アラーム通知と同義である。
【００１４】
記憶資源１５には、障害イベントＡ，Ｂ，Ｃ相互間のコリレーションの計算結果を格納するコリレーションファイル６１と、障害イベントＡ，Ｂ，Ｃの回復履歴を格納するログファイル６２とが保存されている。記憶資源１５は、例えば、コンピュータ読み取り可能な記録媒体（物理デバイス）が提供する記憶領域（論理デバイス）である。コンピュータ読み取り可能な記録媒体は、例えば、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶資源を含む。コンピュータ読み取り可能な記録媒体は、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、プログラムを一時的に保持しているものも含むものとする。また、障害監視プログラム４０は、伝送媒体を介して、或いは伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、障害監視プログラム４０を伝送する伝送媒体は、インターネット等のネットワークや電話回線等の通信回線のように情報を伝送する機能を有する媒体のことをいう。汎用のコンピュータに障害監視プログラム４０をインストールすることにより、汎用のコンピュータを障害監視システム１０として機能させることができる。バス１６は、通信インタフェース１１、プロセッサ１２、表示装置１３、入力装置１４、及び記憶資源１５を相互に接続し、データの読み書きができるように構成されている。
【００１５】
障害監視プログラム４０は、複数の障害イベント相互間のコリレーションを２種類の変数を用いて計算する。一つは、静的コリレーションと呼ばれる変数であり、もう一つは、動的コリレーションと呼ばれる変数である。静的コリレーションは、ある値に初期設定され、その後、ある一定の周期間隔で初期値から所定確率の分だけ減算されていくようにプログラム上宣言された変数である。動的コリレーションは、障害イベントの回復履歴に基づいて定期的に計算し直された上で更新されていくようにプログラム上宣言された確率変数である。
【００１６】
図４は本実施形態に関わる障害発生時のアラーム表示の流れを示すフローチャートである。
ステップ４０１では、プロセッサ１２は、ネットワークノード２０から障害イベントの発生の通知を受信したか否かを判定する。
ステップ４０２では、プロセッサ１２は、障害中リスト５１にリストされている障害イベントを参照する。障害中リスト５１には、ネットワークノード２０から障害発生が通知された障害イベントがリストされている。
ステップ４０３では、プロセッサ１２は、障害中リスト５１に複数の障害イベントがリストされているか否かを判定する。
ステップ４０４では、プロセッサ１２は、障害中リスト５１にリストされている障害イベントを通知対象リスト５３に追加し、通知対象リスト５３に追加された障害イベントの発生を表示装置１３にアラーム表示する。
ステップ４０５では、プロセッサ１２は、障害中リスト５１にリストされている複数の障害イベントの中から二つの障害イベントを選択する。
ステップ４０６では、プロセッサ１２は、ステップ４０５で選択された二つの障害イベント（例えば、障害イベントＡ，Ｂ）のうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する静的コリレーションと動的コリレーションのうち高い方が閾値（例えば、８０％）以上であるか否かを判定する。但し、静的コリレーションは、無効化される場合もあるので（図７のステップ７０５参照）、静的コリレーションが無効化されている場合は、ステップ４０６では、動的コリレーションが閾値を超えているか否かが判定される。
ステップ４０７では、プロセッサ１２は、ステップ４０５で選択された二つの障害イベント（例えば、障害イベントＡ，Ｂ）のうち一方の障害イベント（例えば、障害イベントＡ）を他方の障害イベント（例えば、障害イベントＢ）の「原因」であると判定する。
ステップ４０８では、プロセッサ１２は、障害中リスト５１にリストされている複数の障害イベントの中から二つの障害イベントの全ての組み合わせについて、ステップ４０５〜４０７の処理を実行したか否かを判定する。
ステップ４０９では、プロセッサ１２は、障害中リスト５１にリストされている複数の障害イベントのうちどの障害イベントの影響下にもない障害イベントを通知対象リスト５３に追加し、通知対象リスト５３に追加された障害イベントの発生を表示装置１３にアラーム表示する。これにより、何れかの障害イベントの影響下にある障害イベントの通知を制限することができるため、オペレータの監視負担を軽減できる。但し、障害中リスト５１にリストされている複数の障害イベントが互いに影響し合う場合には、どの障害イベントの影響下にもない障害イベントが存在しない。このような場合には、影響を受ける障害イベントの数が最も少ない障害イベントを通知対象リスト５３に追加し、通知対象リスト５３に追加された障害イベントの発生を表示装置１３にアラーム表示すればよい。
【００１７】
図５は本実施形態に関わるログファイル６２の管理の流れを示すフローチャートである。
ステップ５０１では、プロセッサ１２は、ネットワークノード２０から障害イベントの復旧通知を受信したか否かを判定する。
ステップ５０２では、プロセッサ１２は、ステップ５０１で受信した復旧通知により復旧対象となる障害イベントを復旧中リスト５２に追加する。
ステップ５０３では、プロセッサ１２は、復旧中リスト５２に追加された障害イベントの処理済みフラグをオフに設定する。
ステップ５０４では、プロセッサ１２は、復旧中リスト５２に追加されている障害イベントの中から処理済みフラグがオフに設定されている障害イベントを一つ選択し、選択した障害イベントに関する回復履歴をログファイル６２に記録する。回復履歴は、例えば、ステップ５０４で選択した障害イベントの種別と、ステップ５０４で選択した障害イベントの解消に起因して解消する全ての障害イベントの種別と、ステップ５０４で選択した障害イベントが解消しても解消しない全ての障害イベントの種別と、ステップ５０４の処理を行った日時を含む。
ステップ５０５では、プロセッサ１２は、ステップ５０４の処理が完了した障害イベントの処理済みフラグをオンに設定する。
ステップ５０６では、プロセッサ１２は、復旧中リスト５２にリストされている全ての障害イベントについてステップ５０４，５０５の処理を完了したか否かを判定する。
ステップ５０７では、プロセッサ１２は、復旧中リスト５２にリストされている全ての障害イベントを削除する。
【００１８】
図６は本実施形態に関わる動的コリレーションの管理の流れを示すフローチャートである。
ステップ６０１では、プロセッサ１２は、過去一定期間内（例えば、過去数ヶ月以内）にログファイル６２に記録されている回復履歴をリストアップする。
ステップ６０２では、プロセッサ１２は、ステップ６０１でリストアップされた回復履歴の中から任意の二つの障害イベント（例えば、障害イベントＡ，Ｂ）を選択し、選択された二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の解消に起因して他方の障害イベント（例えば、障害イベントＢ）が解消した回数Ｎ１と、一方の障害イベント（例えば、障害イベントＡ）の解消に起因して他方の障害イベント（例えば、障害イベントＢ）が解消しない回数Ｎ２とを計算する。
ステップ６０３では、プロセッサ１２は、ステップ６０２で選択された二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する動的コリレーションをＮ１／（Ｎ１＋Ｎ２）に基づいて計算し直す。
ステップ６０４では、プロセッサ１２は、ステップ６０２で選択された二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する動的コリレーションの値が、ステップ６０３で計算し直された値に一致するように、コリレーションファイル６１を更新する。
ステップ６０５では、プロセッサ１２は、任意の二つの障害イベントの全ての組み合わせについて、ステップ６０２〜６０４の処理を実行したか否かを判定する。
なお、ステップ６０１〜６０５を実行するためのソフトウェアモジュールは、障害管理プログラム４０の中で定期的に呼び出されて実行されるようにプログラムされており、これにより、動的コリレーションの値を定期的に最新の値に更新することができる。
【００１９】
図７は本実施形態に関わる静的コリレーションの管理の流れを示すフローチャートである。
ステップ７０１では、プロセッサ１２は、任意の二つの障害イベント（例えば、障害イベントＡ，Ｂ）を選択し、選択した二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する静的コリレーションの初期値と、一定の周期間隔で初期値から減算される静的コリレーションの減算値とを設定する。静的コリレーションの初期値とその減算値は、オペレータ３０が事前に指定することができる。減算値はゼロでもよい。
ステップ７０２では、プロセッサ１２は、後述するステップ７０６の処理が完了してから一定の周期期間が経過したか否かを判定する。
ステップ７０３では、プロセッサ１２は、ステップ７０１で選択された二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する静的コリレーションの値を、ステップ７０１で設定された減算値の分だけ減算する。
ステップ７０４では、プロセッサ１２は、ステップ７０１で選択された二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する静的コリレーションの値が閾値（例えば、８０％）を下回るか否かを判定する。
ステップ７０５では、プロセッサ１２は、ステップ７０１で選択された二つの障害イベントのうち一方の障害イベント（例えば、障害イベントＡ）の他方の障害イベント（例えば、障害イベントＢ）に対する静的コリレーションを無効化し、その旨をオペレータ３０に通知する。
ステップ７０６では、プロセッサ１２は、任意の二つの障害イベントの全ての組み合わせについて、ステップ７０１〜７０５の処理を実行したか否かを判定する。
【００２０】
本実施形態によれば、複数の障害イベントＡ，Ｂ，Ｃ間のコリレーションを障害イベントＡ，Ｂ，Ｃの回復履歴に基づいて計算し直して更新することにより、計算機ネットワーク構成を忠実に反映した障害解析が可能になる。また、計算機ネットワークが構築された初期段階では、動的コリレーションよりも静的コリレーションの方が実態に即している場合もあるため、動的コリレーション加えて静的コリレーションを加味することで、計算機ネットワーク構成を忠実に反映した障害解析を可能にできる。
【符号の説明】
【００２１】
１０…障害監視システム  １１…通信インタフェース  １２…プロセッサ  １３…表示装置  １４…入力装置  １５…記憶資源  ２０…ネットワークノード  ３０…オペレータ  ４０…障害監視プログラム  ５１…障害中リスト  ５２…復旧中リスト  ５３…通知対象リスト  ６１…コリレーションファイル  ６２…ログファイル
【図１】
2014225124.tif 000003
【図２】
2014225124.tif 000004
【図３】
2014225124.tif 000005
【図４】
2014225124.tif 000006
【図５】
2014225124.tif 000007
【図６】
2014225124.tif 000008
【図７】
2014225124.tif 000009