(57)【特許請求の範囲】
【請求項１】
複数の構成要素を有する情報システムが所定期間内に出力した複数のログメッセージから、当該ログメッセージ各々を発信した構成要素を抽出する構成要素抽出手順と、
前記構成要素抽出手順によって抽出された構成要素間の関連度を算出する関連度算出手順と、
前記関連度算出手順によって算出された関連度が閾値以上である構成要素の組に対し、前記算出された関連度を用いて、当該構成要素各々の重みを算出する重み算出手順と、
前記重み算出手順によって算出された構成要素各々の重みを用いて、前記複数のログメッセージが、前記情報システムに障害が発生した時に出力されるメッセージの組み合わせである確率を繰り返し算出する回数を決定する学習回数決定手順と、
前記複数のログメッセージが出力された回数のうち前記情報システムに障害が発生していた回数の割合を、前記学習回数決定手順によって決定された回数学習して、前記確率を算出する学習実行手順と、
前記学習実行手順によって算出された確率と、前記ログメッセージの組み合わせとを対応付けた障害パターンメッセージを生成するパターン生成手順と
をコンピュータに実行させることを特徴とする障害パターン生成プログラム。
【請求項２】
前記学習回数決定手順は、前記複数のログメッセージの発信元の構成要素各々を計数し、当該発信元の構成要素ごとに、前記重み算出手順によって重みと計数した数とを乗算し、乗算して得られた発信元の構成要素ごとの重みを加算し、加算した結果を前記複数のログメッセージの総数で除算して、前記複数のログメッセージの全体の重みを算出し、算出した前記複数のログメッセージの全体の重みを用いて、前記回数を決定することを特徴とする請求項１に記載の障害パターン生成プログラム。
【請求項３】
前記情報システムからログメッセージが新たに出力された場合に、当該新たに出力されたメッセージから所定時間前までに出力されたメッセージを取得し、取得されたメッセージが前記パターン生成手順によって生成された障害パターンメッセージと一致するか否かを判定する障害判定手順と、
前記障害判定手順によって、前記取得されたメッセージが前記障害パターンメッセージと一致すると判定された場合に、当該メッセージに対応する前記確率が閾値以上であるか否かを判定する確率判定手順と、
前記確率判定手順によって、前記取得されたメッセージに対応する前記確率が閾値以上であると判定された場合に、障害が発生したと検知する障害検知手順とをさらにコンピュータに実行させることを特徴とする請求項１に記載の障害パターン生成プログラム。
【請求項４】
複数の構成要素を有する情報システムが所定期間内に出力した複数のログメッセージから、当該ログメッセージ各々を発信した構成要素を抽出する構成要素抽出部と、
前記構成要素抽出部によって抽出された構成要素間の関連度を算出する関連度算出部と、
前記関連度算出部によって算出された関連度が閾値以上である構成要素の組に対し、前記算出された関連度を用いて、当該構成要素各々の重みを算出する重み算出部と、
前記重み算出部によって算出された構成要素各々の重みを用いて、前記複数のログメッセージが、前記情報システムに障害が発生した時に出力されるメッセージの組み合わせである確率を繰り返し算出する回数を決定する学習回数決定部と、
前記複数のログメッセージが出力された回数のうち前記情報システムに障害が発生していた回数の割合を、前記学習回数決定部によって決定された回数学習して、前記確率を算出する学習実行部と、
前記学習実行部によって算出された確率と、前記ログメッセージの組み合わせとを対応付けた障害パターンメッセージを生成するパターン生成部と
を有することを特徴とする障害パターン生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害パターン生成プログラムおよび障害パターン生成装置に関する。
【背景技術】
【０００２】
近年、コンピュータの高性能化やネットワークの高速化に伴って、ＩＴ（Information  Technology）システムの高性能化が進み、個人情報や社外秘情報など機密性の高い重要な情報を処理対象とするＩＴシステムが広く利用されている。このようなＩＴシステムで発生した異常処理やＩＴシステムへの不正アクセスなどのいわゆる障害は、迅速な対応が要求される重大な障害であることが多い。
【０００３】
このため、ＩＴシステムで発生した障害を迅速かつ正確に検出する様々な障害監視技術が開示されている。例えば、過去のトラブル発生時のログからトラブルを特徴づける障害メッセージパターンを抽出して保持しておく。そして、ＩＴシステム運用時に、保持する障害メッセージパターンと一致するメッセージパターンをログから検知した場合に、障害発生を検出する障害監視技術が開示されている。
【０００４】
この障害検出技術を用いた場合、抽出した障害メッセージパターンにノイズが混じってしまい、障害検知精度が低下する場合がある。例えば、この障害検出技術では、障害メッセージ、システムログインメッセージ、障害メッセージと連続してメッセージが発生した場合、障害メッセージ間に発生した正常なメッセージも含めたパターンを障害メッセージパターンとして検出する。したがって、この障害検出技術では、不要なメッセージを含めた障害メッセージパターンを生成することがあり、障害検知精度が低下する。
【０００５】
そして、このような障害検知精度の低下を防止する手法として、式（１）に示すベイズ推定などの繰り返し学習によって、障害メッセージパターンを学習する技術が開示されている。具体的には、あるイベントａが出力されたときに、トラブルＡが発生している状態である確率を算出する。この結果、障害検知装置は、ベイズ推定によって、システム運用中に発生したメッセージがトラブルである確率を検出することができる。
【０００６】
【数１】
0005428934.tif 000002
【０００７】
例えば、図１９に示すように、イベントａが出力されたとき、トラブルＡである確率Ｐｉｊ（Ｈ１｜Ｙ）とトラブルＡでない確率Ｐｉｊ（Ｈ１｜Ｎ）があったとする。次に、イベントａが出力されたとき、それまでの事前確率であるＰｉｊ（Ｈ１）を用いて、Ｐｉｊ（Ｈ１｜Ｙ）およびＰｉｊ（Ｈ１｜Ｎ）を更新する。このようにすることで、イベントａが出力されるたびに、その都度、トラブルＡである確率とトラブルＡでない確率の両方を更新することができる。この結果、トラブルのときに必ず発生するメッセージ以外は、障害メッセージパターンから除外することができ、障害メッセージパターンによる障害検知精度を向上させることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−３１８０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来の技術では、障害検知精度の高い障害メッセージパターンを生成するのに多くの時間が必要であるという課題があった。具体的には、ベイズ推定による障害メッセージパターンの確率算出手法は、全く同じトラブルが発生したときのメッセージによって確率を学習するため、全く同じトラブルが多く発生し、その時のメッセージ出力を収集する必要がある。したがって、例えば１ヶ月に１度しか発生しない発生頻度の少ないトラブルの障害メッセージパターンは、１ヶ月に１度しかメッセージを収集することができず、確率の更新も１ヶ月に１度しかできない。そのため、全ての障害メッセージパターンの確率の精度を高くするには、多くの時間が必要である。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、障害検知精度の高い障害メッセージパターンを短時間で効率的に生成することが可能である障害パターン生成プログラムおよび障害パターン生成装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示する障害パターン生成プログラムは、一つの態様において、複数の構成要素を有する情報システムが所定期間内に出力した複数のログメッセージから、当該ログメッセージ各々を発信した構成要素を抽出する構成要素抽出手順を有する。そして、前記構成要素抽出手順によって抽出された構成要素間の関連度を算出する関連度算出手順を有する。そして、前記複数のログメッセージが出力された回数のうち前記情報システムに障害が発生していた回数の割合を、前記関連度算出手順によって算出された関連度に応じた回数学習する学習実行手順を有する。さらに、前記学習実行手順によって学習された結果に基づいて、前記障害が発生した際に出力される障害パターンメッセージを生成するパターン生成手順をコンピュータに実行させる。
【発明の効果】
【００１２】
本願の開示する障害パターン生成プログラムおよび障害パターン生成装置の一つの態様によれば、障害検知精度の高い障害メッセージパターンを短時間で生成することが可能であるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、本願が開示する障害パターン生成装置を含むシステムの全体構成を示す図である。
【図２】図２は、実施例２に係る障害検出装置の構成を示すブロック図である。
【図３】図３は、ＣＭＤＢに記憶される情報の例を示す図である。
【図４】図４は、メッセージＤＢに記憶される情報の例を示す図である。
【図５】図５は、障害情報ＤＢに記憶される情報の例を示す図である。
【図６】図６は、重み係数決定ＤＢに記憶される情報の例を示す図である。
【図７】図７は、学習回数決定ＤＢに記憶される情報の例を示す図である。
【図８】図８は、障害パターンＤＢに記憶される情報の例を示す図である。
【図９】図９は、構成要素抽出対象のメッセージ群を例示した図である。
【図１０】図１０は、構成要素間のホップ数の算出例を示す図である。
【図１１】図１１は、構成アイテムごとに特定した重み係数の例を示す図である。
【図１２】図１２は、実施例２に係る障害検出装置における重み係数決定処理の流れを示すフローチャートである。
【図１３】図１３は、重み係数決定処理における構成要素間のホップ数による重み決定処理の流れを示すフローチャートである。
【図１４】図１４は、構成要素間のホップ数による重み決定処理における経路両端の構成要素の重み計算処理の流れを示すフローチャートである。
【図１５】図１５は、実施例２に係る障害検出装置における重みつき学習処理の流れを示すフローチャートである。
【図１６】図１６は、重みつき学習処理におけるベイズ推定による学習実施処理の流れを示すフローチャートである。
【図１７】図１７は、実施例２に係る障害検出装置における障害検出処理の流れを示すフローチャートである。
【図１８】図１８は、障害パターン生成および障害検出プログラムを実行するコンピュータシステムを示す図である。
【図１９】図１９は、ベイズ推定による学習例を説明する図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する障害パターン生成プログラムおよび障害パターン生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１５】
図１は、本願が開示する障害パターン生成装置を含むシステムの全体構成を示す図である。図１に示すように、この障害パターン生成装置１は、クラウドコンピューティングを提供するデータセンターで管理される構成要素で発生する障害を検出する障害メッセージパターンを生成する装置である。
【００１６】
データセンターのサーバＸでは、ｗｅｂサービスを提供する構成要素としてｗｅｂ１〜ｗｅｂ３を有し、サーバＹでは、アプリケーションを提供する構成要素としてａｐ１〜ａｐ３を有する。また、サーバＺでは、データベースを提供する構成要素としてｄｂ１〜ｄｂ３を有する。そして、ｗｅｂ１、ａｐ１、ｄｂ１を有する情報システムをテナント１として提供し、同様に、ｗｅｂ２、ａｐ２、ｄｂ２を有する情報システムをテナント２として提供し、ｗｅｂ３、ａｐ３、ｄｂ３を有する情報システムをテナント３として提供する。
【００１７】
また、各サーバの構成要素各々は、サーバ内の他の構成要素や外部の構成要素との間で、予め定義された関係性（Relationship）を有しており、ＣＭＤＢ（Configuration  Management  Database）で統合管理される。すなわち、ＣＭＤＢは、異なる情報システムで利用される複数の異なる構成要素を関連付けて管理するデータベースである。
【００１８】
上述した状態において、障害パターン生成装置１は、ＣＭＤＢで管理される構成要素の関係性を用いて障害メッセージパターンを生成する装置である。特に、障害パターン生成装置１は、構成要素抽出部１ａと、関連度算出部１ｂと、学習実行部１ｃと、パターン生成部１ｄとを有する。
【００１９】
かかる構成要素抽出部１ａは、複数の構成要素を有する情報システムが所定期間内に出力した複数のログメッセージから、当該ログメッセージ各々を発信した構成要素を抽出する。例えば、構成要素抽出部１ａは、サーバＸやサーバＹなどが出力したログメッセージから、当該ログメッセージを発信した構成要素として、ｗｅｂ１、ａｐ２、ｄｂ１などと抽出する。
【００２０】
続いて、関連度算出部１ｂは、構成要素抽出部１ａによって抽出された構成要素間の関連度を算出する。例えば、関連度算出部１ｂは、構成要素抽出部１ａによって抽出された「ｗｅｂ１、ａｐ２、ｄｂ１」に対して、ｗｅｂ１とａｐ２の関連度、ｗｅｂ１とｄｂ１の関連度、ａｐ２とｄｂ１の関連度をＣＭＤＢ内で予め定義される関係性を用いて算出する。
【００２１】
学習実行部１ｃは、複数のログメッセージが出力された回数のうち情報システムに障害が発生していた回数の割合を、関連度算出部１ｂによって算出された関連度に応じた回数学習する。例えば、学習実行部１ｃは、関連度算出部１ｂによって算出された関連度が大きい構成要素間では多くの回数学習し、関連度が小さい構成要素間では少ない回数学習する。
【００２２】
パターン生成部１ｄは、学習実行部１ｃによって学習された結果に基づいて、障害が発生した際に出力される障害パターンメッセージを生成する。例えば、パターン生成部１ｄは、障害Ｘが発生したときのメッセージＩＤの組み合わせと、そのメッセージの組み合わせが障害である割合とを対応付けたパターンを生成する。一例として、パターン生成部１ｄは、「ＩＤ：確立」として、「０００２、００１４、００２４：１．０」や「０００２、００４６：０．１２５」などが示される障害パターンメッセージを生成する。
【００２３】
このように、実施例１によれば、構成要素の関連による重みつきメッセージパターンを学習することができる。つまり、近い構成要素同士が出力しているメッセージは重みを大きく、近隣にメッセージを出している構成要素がない構成要素のメッセージは重みを小さくして、メッセージパターンを学習する。この結果、全体メッセージ数が少ない場合でも、重要なメッセージの学習回数を多くし、重要でないメッセージの学習回数を少なくできるので、障害検知精度の高い障害メッセージパターンを短時間で生成することが可能である。
【実施例２】
【００２４】
ところで、実施例１で説明した障害パターン生成装置は、図１以外に示した制御部以外の他の様々な制御部を有していてもよく、生成した障害メッセージパターンを用いて障害検出を行うこともできる。そこで、実施例２では、本願が開示する障害パターン生成装置による手法で、障害メッセージパターンを生成し、生成した障害メッセージパターンを用いて障害検出を行う障害検出装置について説明する。
【００２５】
［障害検出装置の構成］
まず、図２を用いて障害検出装置の構成を説明する。図２は、実施例２に係る障害検出装置の構成を示すブロック図である。図２に示すように、障害検出装置１０は、通信制御Ｉ／Ｆ部１１と入力部１２と表示部１３と、各種データベース１４〜１９と、制御部２０とを有する。そして、各種データベースであるＣＭＤＢ１４、メッセージＤＢ１５、障害情報ＤＢ１６、重み係数決定ＤＢ１７、学習回数決定ＤＢ１８、障害パターンＤＢ１９は、半導体メモリ素子、または、ハードディスクなどの記憶装置である。
【００２６】
通信制御Ｉ／Ｆ部１１は、少なくとも１つの通信ポートを有するインタフェースであり、他の装置と間でやり取りされる情報を制御する。例えば、通信制御Ｉ／Ｆ部１１は、各サーバから出力されたメッセージを受信し、また、検出した障害情報を管理サーバに送信する。
【００２７】
入力部１２は、例えば、キーボードやマウス、マイクなどであり、障害メッセージパターンの学習開始指示や終了指示の入力を受付け、後述する制御部２０等に入力する。なお、後述する表示部１３も、マウスと協働してポインティングディバイス機能を実現する。表示部１３は、例えば、モニタ、ディスプレイ、タッチパネルやスピーカなどであり、後述する制御部２０で生成された障害メッセージパターンや検出された障害情報などを表示出力する。
【００２８】
ＣＭＤＢ１４は、複数のサーバが有する構成要素を仮想的に統合して管理する場合に、予め定めた関係性に従って、構成要素各々を関連付けて管理する。具体的には、ＣＭＤＢ１４は、クラウドコンピューティングを提供するデータセンターの各サーバが有し、他の構成要素と連動することで情報サービスを提供する構成要素を関連付けて保持する。例えば、ＣＭＤＢ１４は、図３に示すように、サーバＸで実行される構成要素「ｗｅｂ１〜ｗｅｂ３」と、サーバＹで実行される構成要素「ａｐ１〜ａｐ３」と、サーバＺで実行される構成要素「ｄｂ１〜ｄｂ３」と、構成要素を連動させたサービスを示す「ｔｅｎａｎｔ１〜３」を関連付けて記憶する。なお、図３は、ＣＭＤＢに記憶される情報の例を示す図である。
【００２９】
メッセージＤＢ１５は、複数の構成要素を有する情報システムを提供する装置または構成要素が所定期間内に出力したログメッセージを記憶する。例えば、メッセージＤＢ１５は、図４に示すように、「時刻、メッセージ種別ＩＤ、メッセージ発信ＣＩ」として「２００９-０６-０８-Ｔ10：20：00-09：00、0012、ｗｅｂ１」などと記憶する。
【００３０】
ここで記憶される「時刻」は、ログメッセージが発信した時刻を示しており、「メッセージ種別ＩＤ」は、発信されたログメッセージを一意に識別する識別子であり、「メッセージ発信ＣＩ」は、ログメッセージを発信した構成要素を示している。また、ここで記憶される情報は、後述するメッセージ分類部２１によって自動的に格納される。なお、図４は、メッセージＤＢに記憶される情報の例を示す図である。
【００３１】
障害情報ＤＢ１６は、情報システムを提供する装置で発生した障害、又は、ＣＭＤＢ１４内で管理される構成要素で発生した障害に関する情報を記憶する。例えば、障害情報ＤＢ１６は、図５に示すように、ＸＭＬ（Extensible  Markup  Language）形式で生成された障害情報を記憶し、この障害情報は、メッセージ分類部２１によって自動的に生成することもでき、管理者等によって手動で作成することもできる。
【００３２】
一例を説明すると、図５に示した障害情報は、「障害（Trouble）」として、「Trouble＝5」の障害である「Web  Down」が「2009/01/05の18:27:00」から「2009/01/05の19:05:00」の間で発生したことを示している。同様に、「Trouble＝21」の障害である「HDD  Fault」が「2009/01/07の18:22:00」から「2009/01/07の19:20:00」の間で発生したことを示している。また、「Trouble＝39」の障害である「DB  Slow  Down」が「2009/01/14の16:13:00」から「2009/01/14の16:14:00」の間で発生したことを示している。また、「Trouble＝49」の障害である「Web  Slow  Down」が「2009/01/20の4:14:00」から「2009/01/20の19:05:00」の間で発生したことを示している。なお、図５は、障害情報ＤＢに記憶される情報の例を示す図である。
【００３３】
重み係数決定ＤＢ１７は、後述する関連度算出部２３によって算出された構成要素間の関連度から重み係数を決定する情報を記憶する。例えば、重み係数決定ＤＢ１７は、図６に示すように、「ホップ数ｈ、重み係数」として「h＝1、1.0」、「h＝2、0.8」、「h＝3、0.6」、「h＝4、0.2」、「h≧5、0.0」などと記憶する。ここで記憶される重み係数は、ホップ数を式「重み係数＝1.0−0.2×（ホップ数−1）」に代入して得られる値であり、算出式はこれに限定されるものではなく任意の関数式を用いることができる。
【００３４】
また、ここで記憶される「ホップ数ｈ」は、構成要素間の関連度を示しており、ダイクストラ法によって算出された値である。「重み係数」は、構成要素に適用する重み係数を示している。一例として、関連度が「3」と算出された構成要素の重み係数は、「0.6」となる。なお、図６は、重み係数決定ＤＢに記憶される情報の例を示す図である。
【００３５】
学習回数決定ＤＢ１８は、情報システムに障害が発生した時に出力されるログメッセージの組み合わせが、障害が発生した時に出力される確率を算出する学習回数を決定する情報を記憶する。例えば、学習回数決定ＤＢ１８は、図７に示すように、「重み係数ｗ、繰り返し回数」として「1.0≦ｗ、5」、「0.8≦ｗ＜1.0、4」、「0.6≦ｗ＜0.8、3」、「0.4≦ｗ＜0.6、2」、「0.2≦ｗ＜0.4、1」、「ｗ＜0.2、0」などと記憶する。
【００３６】
ここで記憶される「重み係数ｗ」は、重み係数決定ＤＢ１７を用いて決定された重み係数である。また、「繰り返し回数」は、情報システムに障害が発生した時に出力されるログメッセージの組み合わせが、障害が発生した時に出力される確率を算出する学習回数である。一例として、重み係数が「0.7」と決定された場合は、学習回数は「3」となる。なお、図７は、学習回数決定ＤＢに記憶される情報の例を示す図である。
【００３７】
障害パターンＤＢ１９は、ログメッセージの組み合わせごとに、障害が発生した際に出力されるメッセージのパターンであって、当該組み合わせが障害である確率を示した障害パターンメッセージを記憶する。例えば、障害パターンＤＢ１９は、図８に示すように、ＸＭＬ形式で、障害パターンメッセージとそのパターンが障害である確率とを記憶する。
【００３８】
図８に示した情報は、一例として、「障害パターンメッセージ（Pattern）」として、「メッセージ種別ＩＤ」が「0005、0148、0150」であるメッセージの組み合わせが出力されたときに、「Trouble＝5」の障害である確率が「score＝0.018」であることを示している。また、障害パターンメッセージ（Pattern）」として、「メッセージ種別ＩＤ」が「0002、0095、0098、0110」であるメッセージの組み合わせが出力されたときに、「Trouble＝5」の障害である確率が「score＝0.125」であることを示している。また、障害パターンメッセージ（Pattern）」として、「メッセージ種別ＩＤ」が「0006、0095、0110、0148」であるメッセージの組み合わせが出力されたときに、「Trouble＝5」の障害である確率が「score＝1.0」であることを示している。
【００３９】
すなわち、「メッセージ種別ＩＤ」が「0006、0095、0110、0148」であるメッセージの組み合わせが出力されたときは、100％の確率で障害Ｂが発生していることがわかる。なお、図８は、障害パターンＤＢに記憶される情報の例を示す図である。
【００４０】
制御部２０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。この制御部２０は、ＯＳ（Operating  System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有する。さらに、制御部２０は、メッセージ分類部２１と、構成要素抽出部２２と、関連度算出部２３と、重み算出部２４と、学習回数決定部２５と、学習実行部２６と、パターン生成部２７と、障害検出部２８とを有し、これらによって各種処理を実行する。
【００４１】
メッセージ分類部２１は、各サーバから出力されたログメッセージを通信制御Ｉ／Ｆ部１１を介して受信し、メッセージＤＢ１５と障害情報ＤＢ１６とに分類する。例えば、メッセージ分類部２１は、通常のログメッセージと特定する情報および障害情報を特定する情報や、文字認識を行うための情報をメッセージ辞書として保持する。そして、メッセージ分類部２１は、通信制御Ｉ／Ｆ部１１を介してログメッセージを受信すると、メッセージ辞書を参照し文字認識を実施する。その結果、メッセージ分類部２１は、当該ログメッセージが通常のログメッセージであると判定した場合にはメッセージＤＢ１５に格納すし、当該ログメッセージが障害メッセージであると判定した場合には障害情報ＤＢ１６に格納する。
【００４２】
構成要素抽出部２２は、複数の構成要素を含む情報システムが所定期間内に出力した複数のログメッセージから、当該ログメッセージ各々を発信した構成要素を抽出する。例えば、構成要素抽出部２２は、図９に示すような「Window幅＝１０分」としてメッセージＤＢ１５から抽出したメッセージから「メッセージ発信ＣＩ」を抽出する。図９の場合、構成要素抽出部２２は、「メッセージ発信ＣＩ」として「ｗｅｂ１、ａｐ１、ａｐ２、ｄｂ１」を抽出し、関連度算出部２３に出力する。
【００４３】
ここでは、「Window幅＝１０分」、すなわち、メッセージＤＢ１５に格納される任意のログメッセージから１０分前までに出力されているログメッセージを一つのメッセージ群として、このメッセージ群を構成要素抽出対象とする。したがって、構成要素抽出部２２は、次のメッセージ群は、任意のメッセージの次に出力されているメッセージから１０分前までに出力されているメッセージ群となる。なお、ここで説明した「Window幅」は例示であり、これに限定されるものではない。また、図９は、構成要素抽出対象のメッセージ群を例示した図である。
【００４４】
関連度算出部２３は、構成要素抽出部２２によって抽出された構成要素間の関連度として、構成要素間のホップ数を算出する。例えば、構成要素は、図１０の（１）に示す関連性を有しており、構成要素抽出部２２によって「メッセージ発信ＣＩ」が「ｗｅｂ１、ａｐ１、ａｐ２、ｄｂ１」であると抽出されたとする。この場合、関連度算出部２３は、抽出された構成要素「ｗｅｂ１、ａｐ１、ａｐ２、ｄｂ１」の組み合わせを示すマトリックスを生成し、その組み合わせにおける構成要素間の関連性を示すホップ数を図１０の（１）に示す関連性とダイクストラ法によって算出する。続いて、関連度算出部２３は、図１０の（２）に示すように、構成要素の組み合わせとホップ数とを示したマトリックスを生成する。
【００４５】
一例を説明すると、関連度算出部２３は、図１０の（１）に示すように、ｗｅｂ１からａｐ１へは直接つながっているので、「ｗｅｂ１とａｐ１とのホップ数」を「１」と算出する。また、関連度算出部２３は、図１０の（１）に示すように、ｗｅｂ１からａｐ２へはｗｅｂ１−ａｐ１−サーバＹ−ａｐ２でつながっているので、「ｗｅｂ１とａｐ１とのホップ数」を「３」と算出する。関連度算出部２３は、このような手法で、構成要素「ｗｅｂ１、ａｐ１、ａｐ２、ｄｂ１」の各組み合わせについて、ホップ数を算出する。
【００４６】
つまり、関連度算出部２３は、図１０の（３）に示すように、ｗｅｂ１−ａｐ１間のホップ数を１、ｗｅｂ１−ｄｂ１間のホップ数を２、ｗｅｂ１−ａｐ２間のホップ数を３と算出する。また、関連度算出部２３は、ａｐ１−ｄｂ１間のホップ数を１、ａｐ１−ａｐ２間のホップ数を２、ｄｂ１−ａｐ２間のホップ数を３と算出し、この結果を重み算出部２４に出力する。なお、図１０は、構成要素間のホップ数の算出例を示す図である。
【００４７】
重み算出部２４は、関連度算出部２３によって算出された関連度が閾値以上である構成要素の組に対し、算出された関連度を用いて、当該構成要素各々の重み係数を算出する。例えば、重み算出部２４は、構成要素抽出部２２によって抽出された構成要素各々について、関連度算出部２３によって算出されたホップ数に対応する重み係数を重み係数決定ＤＢ１７から特定し、学習回数決定部２５に出力する。
【００４８】
上述した例では、重み算出部２４は、構成要素抽出部２２によって抽出された構成要素である「ａｐ１」を起点とした場合、「ａｐ２」を起点とした場合、「ｗｅｂ１」を起点とした場合、「ｄｂ１」を起点とした場合のそれぞれについて重み係数を特定する。そして、重み算出部２４は、最も重み係数が大きい値や４パターンの平均した値を重み係数として特定する。このとき、重み算出部２４は、例えばホップ数が「５以上」である構成要素の組を除外する。
【００４９】
ここで、図１０に示した関係性（Relationship）を例にして説明する。例えば、「ａｐ１」を起点とした場合、ａｐ１−ｗｅｂ１間のホップ数が１、ａｐ１−ａｐ２間のホップ数が２、ａｐ１−ｄｂ１間のホップ数が１となる。この場合、重み算出部２４は、重み係数決定ＤＢ１７を用いて、「ｗｅｂ１」の重み係数を「1.0」、「ａｐ２」の重み係数を「0.8」、「ｄｂ１」の重み係数を「1.0」と特定する。
【００５０】
同様に、「ａｐ２」を起点とした場合、ａｐ２−ｗｅｂ１間のホップ数が３、ａｐ２−ａｐ１間のホップ数が２、ａｐ２−ｄｂ１間のホップ数が３となる。この場合、重み算出部２４は、重み係数決定ＤＢ１７を用いて、「ｗｅｂ１」の重み係数を「0.6」、「ａｐ１」の重み係数を「0.8」、「ｄｂ１」の重み係数を「0.6」と特定する。
【００５１】
同様に、「ｗｅｂ１」を起点とした場合、ｗｅｂ１−ａｐ１間のホップ数が１、ｗｅｂ１−ａｐ２間のホップ数が３、ｗｅｂ１−ｄｂ１間のホップ数が２となる。この場合、重み算出部２４は、重み係数決定ＤＢ１７を用いて、「ａｐ１」の重み係数を「1.0」、「ａｐ２」の重み係数を「0.6」、「ｄｂ１」の重み係数を「0.8」と特定する。
【００５２】
同様に、「ｄｂ１」を起点とした場合、ｄｂ１−ｗｅｂ１間のホップ数が２、ｄｂ１−ａｐ１間のホップ数が１、ｄｂ１−ａｐ２間のホップ数が３となる。この場合、重み算出部２４は、重み係数決定ＤＢ１７を用いて、「ｗｅｂ１」の重み係数を「0.8」、「ａｐ１」の重み係数を「1.0」、「ａｐ２」の重み係数を「0.6」と特定する。
【００５３】
以上より、「ｗｅｂ１」の重み係数の候補が「1.0、0.6、0.8」、「ａｐ１」の重み係数の候補が「0.8、1.0、1.0」、「ａｐ２」の重み係数の候補が「0.8、0.6、0.6」、「ｄｂ１」の重み係数の候補が「1.0、0.6、0.8」となる。そして、最も重み係数が大きい値を重み係数とする場合、重み算出部２４は、上述した４パターンから得られた３つの値のうち、最も大きい値を重み係数として特定する。すなわち、重み算出部２４は、図１１に示したように「ＣＩ、重み係数」として「ｗｅｂ１、1.0」、「ａｐ１、1.0」、「ａｐ２、0.8」、「ｄｂ１、1.0」を生成する。なお、図１１は、構成アイテムごとに特定した重み係数の例を示す図である。
【００５４】
学習回数決定部２５は、重み算出部２４で算出された構成要素各々の重み係数を用いて、所定期間内に出力された複数のログメッセージが、情報システムに障害が発生した時に出力されるメッセージの組み合わせである確率を算出する学習回数を決定する。具体的には、学習回数決定部２５は、重み算出部２４によって算出された発信元の構成要素の重み係数を用いて、所定期間内に出力された複数のログメッセージ全体の重み係数を算出する。そして、学習回数決定部２５は、算出した複数のログメッセージ全体の重み係数に対応する繰り返し回数を学習回数決定ＤＢ１８から特定し、学習回数として学習実行部２６に出力する。
【００５５】
例えば、学習回数決定部２５は、所定期間内に出力された１５個のログメッセージにおいて、「ｗｅｂ１」が発信元である回数が５回、「ａｐ１」が５回、「ａｐ２」が３回、「ｄｂ１」が２回であったとする。この場合、学習回数決定部２５は、上述した構成要素ごとの重み係数を用いて、１５個のログメッセージの全体の重み係数を、「（1.0×5＋1.0×3＋0.8×3＋1.0×2）/15＝0.826666・・・」と算出する。そして、学習回数決定部２５は、算出した重み係数「0.826」に対応する繰り返し回数「4」を学習回数決定ＤＢ１８から特定する。
【００５６】
つまり、学習回数決定部２５によって決定される繰り返し回数は、所定期間内に出力されたログメッセージの組み合わせがＣＭＤＢ１４上のRelationshipにおいて関連度が強い場合、言い換えると、少ないホップ数で連携されている場合には、多くなる。一方、所定期間内に出力されたログメッセージの組み合わせがＣＭＤＢ１４上のRelationshipにおいて関連度が弱い場合、言い換えると、多いホップ数で連携されている場合には、少なくなる。
【００５７】
学習実行部２６は、障害に関する情報を示す障害情報を用いて、情報サービスに障害が発生した時に出力されるメッセージの組み合わせである確率を、学習回数決定部２５によって決定された回数学習する。例えば、学習実行部２６は、複数のログメッセージが出力された回数のうち情報システムに障害が発生していた回数の割合を、学習回数決定部２５によって決定された回数学習する。つまり、学習実行部２６は、あるメッセージパターンの観測回数のうち、実際にトラブルであった回数である確率を推定する。
【００５８】
より具体的に説明すると、学習実行部２６は、メッセージＤＢ１５から所定日時に観測されたログメッセージＡ、Ｂ、Ｃを抽出するとともに、障害情報ＤＢ１６を参照して観測時に障害が発生していたか否かを判定する。そして、学習実行部２６は、ログメッセージＡ、Ｂ、Ｃの組み合わせ観測時に障害が発生していないと判定した場合には、学習回数決定部２５によって決定された回数分、ログメッセージＡ、Ｂ、Ｃが障害でない確率を繰り返し算出することになる。したがって、ログメッセージＡ、Ｂ、Ｃの組み合わせが障害である確率が小さくなる。
【００５９】
一方、学習実行部２６は、ログメッセージＡ、Ｂ、Ｃの組み合わせ観測時に障害が発生していたと判定した場合には、学習回数決定部２５によって決定された回数分、メッセージＡ、Ｂ、Ｃが障害である確率を繰り返し算出する。したがって、ログメッセージＡ、Ｂ、Ｃの組み合わせが障害である確率が大きくなる。
【００６０】
つまり、学習実行部２６は、メッセージＤＢ１５から任意に時間帯で観測されたログメッセージの組み合わせの関連度が強く、その時間帯で障害が発生していない場合は、このログメッセージの組み合わせが障害である確率が小さくなるように学習する。また、学習実行部２６は、メッセージＤＢ１５から任意に時間帯で観測されたログメッセージの組み合わせの関連度が強く、その時間帯で障害Ｂが発生している場合は、このログメッセージの組み合わせが障害Ｂである確率が大きくなるように学習する。すなわち、観測されたログメッセージの組み合わせの関連度が強い場合に算出する確率については、その信用度が高いと判断し、学習回数を多くする。
【００６１】
さらに、学習実行部２６は、メッセージＤＢ１５から任意に時間帯で観測されたログメッセージの組み合わせの関連度が弱い場合には、当該ログメッセージの組み合わせが障害であるのかないのかを学習する回数を少なくする。すなわち、観測されたログメッセージの組み合わせの関連度が弱い場合に算出する確率については、その信用度が低いと判断し、学習回数を少なくする。
【００６２】
学習手法としては、例えば、学習実行部２６は、ログメッセージＡ、Ｂ、Ｃが抽出された回数と、ログメッセージＡ、Ｂ、Ｃが抽出されたときに障害であった回数とを用いて、決定された学習回数ベイズ推定を実施してもよく、任意の学習手法を実施しても良い。任意の手法としては、例えば、学習実行部２６は、決定された回数に応じて係数を乗算する手法を用いてもよく、一例としては、学習回数が「4」である場合には「係数＝1.3」、学習回数が「5」である場合には「係数＝1.5」を既に算出されている確率に乗算する。また、学習実行部２６は、学習回数が「1」である場合には「係数＝0.5」を既に算出されている確率に乗算するようにして、確率を学習することもできる。
【００６３】
パターン生成部２７は、学習実行部２６によって算出された確率と、ログメッセージの組み合わせとを対応付けた障害パターンメッセージを生成する。具体的には、パターン生成部２７は、ログメッセージＡ、Ｂ、Ｃの組み合わせが障害Ｂである確率20％、ログメッセージＡ、Ｂ、Ｄの組み合わせが障害Ｃである確率35％などの障害パターンメッセージを生成して障害パターンＤＢ１９に格納する。例えば、パターン生成部２７は、図８で説明したように、「メッセージ種別ＩＤ」が「0005、0148、0150」、これらのメッセージの組み合わせが出力されたときに「Trouble＝5」の障害である確率が「score＝0.018」などを生成して障害パターンＤＢ１９に格納する。なお、ここでは、確率として、障害である割合を示すscoreを格納した例を図示したが、これに限定されるものではなく、score×１００とした確率を格納するようにしてもよい。
【００６４】
障害検出部２８は、障害検知対象となるサーバ装置等から出力されるメッセージを観測し、障害パターンＤＢ１９に記憶される障害パターンを検知した場合に、障害発生を通知する。例えば、障害検出部２８は、障害検知対象となるサーバ装置等から出力されるメッセージを観測した時点から１０分前までに出力されたメッセージを取得する。続いて、障害検出部２８は、取得したメッセージの組み合わせが障害パターンＤＢ１９に記憶されているか否かを判定する。そして、障害検出部２８は、取得したメッセージの組み合わせが障害パターンＤＢ１９に記憶されていない場合には、障害でないことを管理装置に送信したり、表示部１３に表示したりする。
【００６５】
一方、障害検出部２８は、取得したメッセージの組み合わせが障害パターンＤＢ１９に記憶されている場合には、当該メッセージの組み合わせのscore又は確率が所定値以上か否かを判定する。そして、障害検出部２８は、score又は確率が所定値以上である場合には、障害発生を検知し、管理装置に送信したり、表示部１３に表示したりする。また、障害検出部２８は、score又は確率が所定値未満である場合には、障害の可能性があることを検知し、管理装置に送信したり、表示部１３に表示したりする。
【００６６】
［処理の流れ］
次に、図１２〜図１７を用いて、実施例２に係る障害検出装置における処理の流れを説明する。ここでは、重み係数決定処理、重み係数決定処理における構成要素間のホップ数による重み決定処理、ホップ数による重み決定処理における経路両端の構成要素の重み決定処理を順に説明する。さらに、重みつき学習処理、ベイズ推定による学習実施処理、障害検出処理についても順に説明する。
【００６７】
（重み係数決定処理）
まず、図１２を用いて、重み係数決定処理について説明する。図１２は、実施例２に係る障害検出装置における重み係数決定処理の流れを示すフローチャートである。
【００６８】
図１２に示すように、障害検出装置１０の構成要素抽出部２２は、情報システムが所定期間内に出力した複数のログメッセージから、当該ログメッセージ各々を発信した構成要素を抽出する（ステップＳ１０１）。
【００６９】
例えば、構成要素抽出部２２は、予め定められた障害メッセージパターン生成タイミングに到達した場合や入力部１２によって開始指示が受け付けられた場合に、メッセージＤＢ１５に格納されるメッセージ群から構成要素を抽出する。より具体的には、構成要素抽出部２２は、所定のWindow幅で、メッセージＤＢ１５から複数のメッセージを取得する。
【００７０】
続いて、関連度算出部２３は、構成要素抽出部２２によって抽出された構成要素の組み合わせを示すマトリックスを生成する（ステップＳ１０２）。そして、関連度算出部２３は、マトリックスを生成した構成要素に対し、ＣＭＤＢ１４に記憶される構成要素のRelationshipを用いて、構成要素間のホップ数を算出する（ステップＳ１０３）。
【００７１】
その後、重み算出部２４は、関連度算出部２３によって算出された関連度が閾値以上である構成要素の組に対し、算出された関連度を用いて、構成要素各々の重み係数を算出する構成要素間のホップ数による重み決定処理を実施する（ステップＳ１０４）。
【００７２】
なお、重み算出部２４は、所定のWindow幅がメッセージＤＢ１５の最後のメッセージを含むまで、言い換えると、メッセージＤＢ１５に記憶される全てのメッセージについて、ステップＳ１０１〜ステップＳ１０４の処理を実行する。このため、重み算出部２４は、取得される複数のメッセージごとに、構成要素を抽出して、ホップ数を算出することとなる。
【００７３】
（構成要素間のホップ数による重み決定処理）
続いて、図１３を用いて、構成要素間のホップ数による重み決定処理について説明する。図１３は、重み係数決定処理における構成要素間のホップ数による重み決定処理の流れを示すフローチャートであり、この処理は、図１２のステップＳ１０４で実行される処理である。
【００７４】
図１３に示すように、障害検出装置１０の重み算出部２４は、関連度算出部２３によって生成された構成要素のマトリックスを読み込む（ステップＳ２０１）。続いて、重み算出部２４は、抽出する対象とする構成要素間のホップ数に「１」を代入し（ステップＳ２０２）、抽出対象のホップ数が閾値未満であるか否かを判定する（ステップＳ２０３）。
【００７５】
そして、重み算出部２４は、抽出対象のホップ数が閾値未満である場合（ステップＳ２０３肯定）、当該ホップ数と一致する構成要素の組み合わせを抽出し（ステップＳ２０４）、経路が存在するか否かを判定する（ステップＳ２０５）。
【００７６】
続いて、重み算出部２４は、経路が存在する場合（ステップＳ２０５肯定）、経路両端の構成要素の重み計算処理を実行する（ステップＳ２０６）。そして、重み算出部２４は、関連度算出部２３によって生成されたマトリックスの全ての構成要素について重み計算処理を実行すると（ステップＳ２０７肯定）、算出された構成要素ごとの重み係数を学習回数決定部２５に出力する（ステップＳ２０８）。
【００７７】
一方、重み算出部２４は、関連度算出部２３によって生成されたマトリックスにおいて、重み計算処理を実行していない構成要素が存在する場合には（ステップＳ２０７否定）、抽出対象のホップ数を１増加させて、ステップＳ２０３以降の処理を実行する。また、重み算出部２４は、ステップＳ２０５において、経路が存在しないと判定した場合にも（ステップＳ２０５否定）、抽出対象のホップ数を１増加させて、ステップＳ２０３以降の処理を実行する。
【００７８】
また、重み算出部２４は、ステップＳ２０３において、抽出対象のホップ数が閾値以上になった場合（ステップＳ２０３否定）、その時点までで算出された構成要素ごとの重み係数を学習回数決定部２５に出力する（ステップＳ２０８）。
【００７９】
（経路両端の構成要素の重み計算処理）
続いて、図１４を用いて、経路両端の構成要素の重み計算処理について説明する。図１４は、構成要素間のホップ数による重み決定処理における経路両端の構成要素の重み計算処理の流れを示すフローチャートであり、この処理は、図１３のステップＳ２０６で実行される処理である。
【００８０】
図１４に示すように、障害検出装置１０の重み算出部２４は、図１３で検出された経路における片方の構成要素を取得し（ステップＳ３０１）、取得した構成要素の重みが既に決定されているか否かを判定する（ステップＳ３０２）。そして、重み算出部２４は、取得した構成要素の重みがまだ決定されていない場合（ステップＳ３０２否定）、当該経路のホップ数に対応する重み係数を重み係数決定ＤＢ１７から特定する（ステップＳ３０３）。なお、重み算出部２４は、ステップＳ３０１〜ステップＳ３０３の処理を、図１３で検出された経路の両端の構成要素に対して実行する。
【００８１】
（重みつき学習処理）
次に、図１５を用いて、重みつき学習処理について説明する。図１５は、実施例２に係る障害検出装置における重みつき学習処理の流れを示すフローチャートである。
【００８２】
図１５に示すように、障害検出装置１０の学習回数決定部２５は、構成要素抽出部２２によってメッセージＤＢ１５から抽出された複数のログメッセージを有するメッセージ情報を１件読み込む（ステップＳ４０１）。
【００８３】
続いて、学習回数決定部２５は、読み込んだメッセージが既に学習済みであるか否かを判定する（ステップＳ４０２）。そして、学習回数決定部２５は、読み込んだメッセージが学習済みでない場合（ステップＳ４０２否定）、算出された構成要素ごとの重み係数を参照し、読み込んだメッセージ全体の重み係数を算出する（ステップＳ４０３）。
【００８４】
続いて、学習実行部２６は、後述する重みつき学習実施処理を実行する（ステップＳ４０４）。その後、学習回数決定部２５は、学習実行部２６による学習処理が終了すると、ステップＳ４０１に戻って、次のメッセージ情報１件を読み込んで、ステップＳ４０２以降の処理を繰り返す。
【００８５】
そして、学習実行部２６は、メッセージＤＢ１５に記憶されるメッセージ全てに対して重みつき学習を実行した場合（ステップＳ４０２肯定）、学習結果をパターン生成部２７に出力する（ステップＳ４０５）。言い換えると、学習実行部２６は、メッセージを取得する所定のWindow幅がメッセージＤＢ１５の最後にまで到達した場合、学習結果をパターン生成部２７に出力する。
【００８６】
その後、パターン生成部２７は、学習実行部２６によって算出された確率と、ログメッセージの組み合わせとを対応付けた障害パターンメッセージを生成し、障害パターンＤＢ１９に格納する。
【００８７】
（ベイズ推定による学習実施処理）
次に、図１６を用いて、ベイズ推定による学習実施処理について説明する。図１６は、重みつき学習処理におけるベイズ推定による学習実施処理の流れを示すフローチャートである。なお、この処理は、図１５のステップＳ４０４で実行される処理である。
【００８８】
図１６に示すように、障害検出装置１０の学習実行部２６は、確率の算出対象となるメッセージ情報と障害情報とを読み込む（ステップＳ５０１）。学習回数決定部２５は、重み算出部２４で算出された構成要素各々の重み係数を読み込み、メッセージの全体の重み係数を算出し、算出した繰り返し回数を学習回数決定ＤＢ１８から特定する（ステップＳ５０２）。
【００８９】
そして、学習実行部２６は、学習回数決定部２５によって特定された回数分、ログメッセージの組み合わせが情報システムに障害が発生した時に出力されるメッセージの組み合わせである確率を学習する（ステップＳ５０３）。
【００９０】
（障害検出処理）
次に、図１７を用いて、図１２〜図１６を実行して生成された障害メッセージパターンを用いた障害検出処理について説明する。図１７は、実施例２に係る障害検出装置における障害検出処理の流れを示すフローチャートである。なお、この処理は、図１２〜図１６と同期を取る必要はなく、メッセージが発生するたびに実行される。
【００９１】
図１７に示すように、障害検出装置１０の障害検出部２８は、障害検知対象となるサーバ装置等からメッセージが出力されると（ステップＳ６０１肯定）、現時点から所定時間前までのメッセージ群を抽出する（ステップＳ６０２）。
【００９２】
続いて、障害検出部２８は、抽出したメッセージ群の「メッセージ種別ＩＤ」の組み合わせが、障害パターンＤＢ１９に記憶される障害メッセージパターンと一致するか否かを判定する（ステップＳ６０３）。
【００９３】
そして、障害検出部２８は、抽出したメッセージ群のパターンが障害メッセージパターンと一致する場合（ステップＳ６０３肯定）、当該障害メッセージパターンの確率（score）が閾値より大きいか否かを判定する（ステップＳ６０４）。
【００９４】
続いて、障害検出部２８は、障害メッセージパターンの確率（score）が閾値より大きい場合（ステップＳ６０４肯定）、障害の可能性が高いと判定し、障害発生したことおよびその確率を表示部１３に表示する（ステップＳ６０５）。
【００９５】
一方、障害検出部２８は、抽出したメッセージ群のパターンが障害メッセージパターンと一致しない場合（ステップＳ６０３否定）、障害メッセージパターンの確率（score）が閾値より小さい場合（ステップＳ６０４否定）、処理を終了する。
【００９６】
［実施例２による効果］
このように、実施例２によれば、本願が開示する障害パターン生成装置を組み込んだ障害検出装置を用いた場合、障害検知精度の高い障害メッセージパターンを短時間で生成することが可能であるとともに、障害検知まで実施することができる。また、関係のない構成要素が出力するノイズの影響を減らし、少ない学習回数で障害メッセージパターンを生成することができる。
【実施例３】
【００９７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００９８】
（学習手法）
上述した実施例では、障害である確率を学習する手法として、ベイズ推定を用いた例を説明したが、これに限定されるものではなく、繰り返し学習を実施できる他の手法を用いることもできる。また、障害である確率の代わりに、障害でない確率を算出するようにしてもよい。
【００９９】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、例えば図３〜図１１等に示した各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１００】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、学習実行部２６とパターン生成部２７を統合するなど各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１０１】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１０２】
図１８は、障害パターン生成および障害検出プログラムを実行するコンピュータシステムを示す図である。図１８に示すように、コンピュータシステム１００は、ＲＡＭ１０１と、ＨＤＤ１０２と、ＲＯＭ１０３と、ＣＰＵ１０４とを有する。ここで、ＲＯＭ１０３には、上の実施例と同様の機能を発揮するプログラムがあらかじめ記憶されている。つまり、図１８に示すように、メッセージ分類プログラム１０３ａ、構成要素抽出プログラム１０３ｂ、関連度算出プログラム１０３ｃ、重み算出プログラム１０３ｄ、学習回数決定プログラム１０３ｅがあらかじめ記憶されている。さらに、ＲＯＭ１０３には、学習実行プログラム１０３ｆ、パターン生成プログラム１０３ｇ、障害検出プログラム１０３ｈがあらかじめ記憶されている。
【０１０３】
そして、ＣＰＵ１０４には、これらのプログラム１０３ａ〜１０３ｈを読み出して実行することで、図１８に示すように、各プロセスとなる。つまり、メッセージ分類プロセス１０４ａ、構成要素抽出プロセス１０４ｂ、関連度算出プロセス１０４ｃ、重み算出プロセス１０４ｄとなる。また、学習回数決定プロセス１０４ｅ、学習実行プロセス１０４ｆ、パターン生成プロセス１０４ｇは、障害検出プロセス１０４ｈとなる。なお、メッセージ分類プロセス１０４ａ、図２に示したメッセージ分類部２１に対応し、同様に、構成要素抽出プロセス１０４ｂは、構成要素抽出部２２に対応し、関連度算出プロセス１０４ｃは、関連度算出部２３に対応する。また、重み算出プロセス１０４ｄは、重み算出部２４に対応し、学習回数決定プロセス１０４ｅは、学習回数決定部２５に対応し、学習実行プロセス１０４ｆは、学習実行部２６に対応する。また、パターン生成プロセス１０４ｇは、パターン生成部２７に対応し、障害検出プロセス１０４ｈは、障害検出部２８に対応する。
【０１０４】
また、ＨＤＤ１０２には、統合情報テーブル１０２ａと、メッセージテーブル１０２ｂと、障害情報テーブル１０２ｃと、重み決定決定テーブル１０２ｄと、学習回数決定テーブル１０２ｅと、障害パターンテーブル１０２ｆとが設けられる。統合情報テーブル１０２ａは、図２に示したＣＭＤＢ１４に対応し、メッセージテーブル１０２ｂは、メッセージＤＢ１５に対応し、障害情報テーブル１０２ｃは、障害情報ＤＢ１６に対応し、重み決定テーブル１０２ｄは、重み係数決定ＤＢ１７に対応する。また、学習回数決定テーブル１０２ｅは、学習回数決定ＤＢ１８に対応し、障害パターンテーブル１０２ｆは、障害パターンＤＢ１９に対応する。
【０１０５】
ところで、上記したプログラム１０３ａ〜１０３ｈは、必ずしもＲＯＭ１０３に記憶させておく必要はない。例えば、コンピュータシステム１００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておくようにしてもよい。また、コンピュータシステム１００の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」に記憶させておいてもよい。さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム１００に接続される「他のコンピュータシステム」に記憶させておいてもよい。そして、コンピュータシステム１００がこれらからプログラムを読み出して実行するようにしてもよい。
【０１０６】
すなわち、この他の実施例でいうプログラムは、上記した「可搬用の物理媒体」、「固定用の物理媒体」、「通信媒体」などの記録媒体に、コンピュータ読み取り可能に記録されるものである。そして、コンピュータシステム１００は、このような記録媒体からプログラムを読み出して実行することで上記した実施例と同様の機能を実現する。なお、この他の実施例でいうプログラムは、コンピュータシステム１００によって実行されることに限定されるものではない。例えば、他のコンピュータシステムまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【０１０７】
１  障害パターン生成装置
１ａ  構成要素抽出部
１ｂ  関連度算出部
１ｃ  学習実行部
１ｄ  パターン生成部
１０  障害検出装置
１１  通信制御Ｉ／Ｆ部
１２  入力部
１３  表示部
１４  ＣＭＤＢ
１５  メッセージＤＢ
１６  障害情報ＤＢ
１７  重み係数決定ＤＢ
１８  学習回数決定ＤＢ
１９  障害パターンＤＢ
２０  制御部
２１  メッセージ分類部
２２  構成要素抽出部
２３  関連度算出部
２４  重み算出部
２５  学習回数決定部
２６  学習実行部
２７  パターン生成部
２８  障害検出部
【図１】
0005428934.tif 000003
【図２】
0005428934.tif 000004
【図３】
0005428934.tif 000005
【図４】
0005428934.tif 000006
【図５】
0005428934.tif 000007
【図６】
0005428934.tif 000008
【図７】
0005428934.tif 000009
【図８】
0005428934.tif 000010
【図９】
0005428934.tif 000011
【図１０】
0005428934.tif 000012
【図１１】
0005428934.tif 000013
【図１２】
0005428934.tif 000014
【図１３】
0005428934.tif 000015
【図１４】
0005428934.tif 000016
【図１５】
0005428934.tif 000017
【図１６】
0005428934.tif 000018
【図１７】
0005428934.tif 000019
【図１８】
0005428934.tif 000020
【図１９】
0005428934.tif 000021