(57)【要約】【課題】管理対象システム内のエラーメッセージや性能データの不整合では発見できないサイレント障害を発見すること。【解決手段】蓄積データ処理部600は、管理対象システム200の性能に関する時系列データの変化の周期を検出し、この検出した周期の各位相毎に、当該位相の過去の時系列データから将来の当該位相における性能データの期待値を算出して蓄積する。障害判断部500は、前記検出した周期中の各位相毎に、前記算出された当該位相における性能データの期待値と当該位相における前記管理対象システムの性能データの実測値とを比較して、性能データの実測値の異常を判定する。【選択図】図４
2010086160.tif 000002
【特許請求の範囲】
【請求項１】
管理対象システムの性能に関する時系列データの変化の周期を検出し、該検出した周期の各位相毎に、当該位相の過去の時系列データから将来の当該位相における性能データの期待値を算出して蓄積する蓄積データ処理部と、前記検出した周期中の各位相毎に、前記算出された当該位相における性能データの期待値と当該位相における前記管理対象システムの性能データの実測値とを比較して、性能データの実測値の異常を判定する障害判断部とを備えることを特徴とする障害分析システム。
【請求項２】
前記蓄積データ処理部は、前記時系列データを周波数分析して周期成分を求める周波数分析手段と、求められた周期成分から最も周期性の高い成分を取り出す周期性抽出手段とを含むことを特徴とする請求項１に記載の障害分析システム。
【請求項３】
前記蓄積データ処理部は、前記検出した周期の各位相毎に、過去一定期間の同じ位相における性能データの平均値を算出して平均時系列データを生成する平均時系列データ作成手段と、生成された各位相毎の平均時系列データを前記期待値として格納する平均時系列データ格納手段とを含むことを特徴とする請求項１または２に記載の障害分析システム。
【請求項４】
前記蓄積データ処理部は、前記平均時系列データ作成手段で生成された各位相の平均時系列データ毎に、性能データのばらつき具合を示す偏差データを生成する偏差データ作成手段と、生成された各位相毎の偏差データを格納する偏差データ格納手段と、各位相毎の平均時系列データと偏差データとから、各位相毎の低性能値閾値を生成する低性能値閾値生成手段と、生成された各位相毎の低性能値閾値を格納する低性能値閾値格納手段とを含むことを特徴とする請求項３に記載の障害分析システム。
【請求項５】
前記障害判断部は、前記管理対象システムの性能データの変化周期の各位相毎に、当該位相における性能データの実測値と前記低性能値閾値格納手段に記憶されている当該位相における低性能値閾値とを比較することで性能データの劣化を発見し、性能データの実測値が低性能値閾値を連続して下回った期間の開始時刻とその期間中の性能データの実測値の累積値とを管理表に格納する低性能値監視手段と、性能データの実測値が低性能値閾値を連続して下回った期間における性能データの実測値の累積値が、前記平均時系列データ格納手段に格納されている当該期間における性能データの平均時系列データの状況下で生じる確率を計算し、該計算した確率が予め設定された確率閾値よりも低いかどうかによって、性能データの実測値が異常かどうかを判断する判断手段とを有することを特徴とする請求項４に記載の障害分析システム。
【請求項６】
前記管理対象システムから定期的に性能データを取得するモニタと、該モニタが取得した性能データを格納する管理データベースとを備えることを特徴とする請求項１乃至５の何れか１項に記載の障害分析システム。
【請求項７】
管理対象システムの性能に関する時系列データの変化の周期を検出し、該検出した周期の各位相毎に、当該位相の過去の時系列データから将来の当該位相における性能データの期待値を算出して蓄積するステップと、前記検出した周期中の各位相毎に、前記算出された当該位相における性能データの期待値と当該位相における前記管理対象システムの性能データの実測値とを比較して、性能データの実測値の異常を判定するステップとを含むことを特徴とする障害分析方法。
【請求項８】
コンピュータを、管理対象システムの性能に関する時系列データの変化の周期を検出し、該検出した周期の各位相毎に、当該位相の過去の時系列データから将来の当該位相における性能データの期待値を算出して蓄積する蓄積データ処理手段と、前記検出した周期中の各位相毎に、前記算出された当該位相における性能データの期待値と当該位相における前記管理対象システムの性能データの実測値とを比較して、性能データの実測値の異常を判定する障害判断手段として機能させるための障害分析用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は障害分析システム、障害分析方法および障害分析用プログラムに関し、特に経時的に観測された管理対象システムの性能に関するデータを分析して、いわゆるサイレント障害と呼ばれる種類の障害を検出する障害分析システム、障害分析方法および障害分析用プログラムに関する。
【背景技術】
【０００２】
本発明に関連する障害分析システムの一例が、非特許文献１に記載されている。図１を参照すると、非特許文献１に記載された障害分析システム290は、管理対象システム200を監視している。管理対象システム200は、たとえば、ノードA(210)、ノードB(220)、ノードC(230)、ノードD(240)で構成されている。このシステムに対して、利用者は利用者端末100を通して管理対象システム200にアクセスし、サービスの提供を受ける。障害分析システム290は、障害によりサービスが滞らないよう、管理対象システム200を監視する。障害分析システム290は、管理対象システム200と同じ場所に配置することもあるし、ネットワーク的につながっているが、物理的に異なる場所に配置されることもある。
【０００３】
障害分析システム290は、モニタ110、管理データベース120、判断手段130、分析結果表示手段140、相関性知識データベース150、知識記述エディタ160から構成され、次のように動作する。まず、モニタ110は定期的に管理対象システム200から性能データを観測し、観測結果を管理データベース120に格納する。一方、管理対象システム200に対して十分な知識を有する知識記述者は、知識記述エディタ160を使用し、管理対象システム200の性能データ相互の相関性に関する知識を記述し、相関性知識データベース150に格納する。たとえば、ノードBのアクセス数aBとノードCのアクセス数aCとは、ほぼ一定の割合を維持しており、その比が崩れると、ノードBもしくはノードCが故障している確率が高いとの知識を記述する。判断手段130は、相関性知識データベース150に格納された相関性を検査するため、管理データベース120から管理対象システム200の性能データ、たとえば、aBとaCを取得する。判断手段130は、これらの性能データの相関性が相関性知識データベース150と矛盾しないか検査する。たとえば、aBとaCの比が想定された閾値以上の値であれば障害ととらえる。
【０００４】
また別の障害分析システムの一例が、非特許文献２に記載されている。図２を参照すると、非特許文献２に記載された障害分析システム390は、知識記述エディタ160に代えて相関学習手段310を有する点で、図１の障害分析システム290と相違する。つまり、障害分析システム290では、相関性知識を知識記述者が記載したが、障害分析システム390では、相関学習手段310が性能データ間の相関関係を学習する。学習アルゴリズムとしては、自己回帰移動平均モデルなどが知られている。相関学習手段310は、学習した相関関係を相関性知識データベース150に格納する。これにより、知識記述者がいなくても障害分析が可能になる。
【０００５】
さらに別の障害分析システムの一例が、特許文献１に記載されている。図３を参照すると、特許文献１に記載された障害分析システム490は、判断手段130、相関性知識データベース150および知識記述エディタ160に代えて、異常判断手段430、期待値データベース420および知識記述エディタ410を有する点で、図１の障害分析システム290と相違する。なお、特許文献１の明細書および図面の記載は抽象的な表現が多いため、図３では一部の構成を補って図示している。この障害分析システム490では、管理対象システム200内のコンポーネントごとに期待される性能を、期待値データベース420に格納しておく。このような期待される性能は、図３に示したように知識記述エディタ410を通じて知識記述者が記述する方法以外に、特許文献１では、期待される性能を、経時的に変化する管理対象システム（特許文献１ではたとえば無線通信網）の性能データに基づいて自動的に生成することを示唆している。異常判断手段430は、管理データベース120に格納された性能データと、期待値データベース420に格納された期待値とを比較し、想定される偏差よりも程度が大きくアクセスが少ない状況が現れると、嫌疑モードに入る。ただし、嫌疑モードに入った後、再び一定の期待値以上に性能データが回復すれば、通常モードに戻る。嫌疑モードが継続している期間中、期待される性能データおよび実際の性能データが共に積分される。そして、期待される性能データの積分値が生じる状況下において、実際の性能データの積分値が発生し得る確率が低くなるとき、サイレント障害が発生したものとして警告またはアラームを発する。
【０００６】
【非特許文献１】渡邊他、”ユートラン オペレーション アンド マネージメント サポートシステム ウィス スタティッカル フォールトアイデンティフィケーション アンド カスタマイザブル ルール セッツ”, ノムス 2008,pp.560-573（Y.Watanabe,et.al.,UTRAN O&M Support System with Statistical Fault Identification and Customizable Rule Sets, NOMS 2008,pp.560-573）
【非特許文献２】チェン他、”ピンポイント：プロブレム デターミネーション イン ラージ、ダイナミック インターネット サービシズ”,ディーエスエヌ 02,2002（Mike Y. Chen, Emre Kiciman, Eugene Fratkin, Armando Fox, Eric Brewer, "Pinpoint: Problem Determination in Large, Dynamic Internet Services", DSN02,2002
【特許文献１】特開２００６−９４４９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
第１の問題点は、非特許文献１および２による障害分析システムでは、外部環境の影響による性能劣化と障害による性能劣化の区別がつかず、障害の発見が困難になる点である。たとえば、監視対象システムの入り口にあたるノードであるノードAが障害メッセージを出す間もなく、ハードウェア障害でダウンしたとする。すると、ノードAのアクセスaAは、0になる。この場合、ノードAからノードBへのアクセスaBも0になる。しかし、たとえば、夜間など利用者がほとんどアクセスしないシステムでは、aA=0かつaB=0は通常のことである。このような障害を見つけることは、モニタリング可能な複数の性能データの相関の異常を発見する非特許文献１および２の技術では、困難である。
【０００８】
一方、特許文献１による障害分析システムでは、期待値データベース420に格納された期待値が適切に設定されていれば、ノードAのアクセスaAの通常よりも極端に低いアクセスパターン、つまりサイレント障害を見つけることができる。しかしながら、特許文献１には、過去のデータの履歴から将来のデータの期待値を求める方法が具体的に示されていない。特に、たとえば夜間や特定の時間帯など、性能データが劣化する状態が周期的に現れる管理対象システムに適した期待値の求め方について具体的な記載はない。
【０００９】
［発明の目的］
本発明の目的は、管理対象システム内のエラーメッセージや性能データの不整合では発見できないサイレント障害を発見することのできる障害分析システムを提供することにある。
【００１０】
本発明の別の目的は、周期性のある過去のデータの履歴から障害のデータの期待値を自動的に求め、この求めた期待値を使用して、サイレント障害を発見することのできる障害分析システムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の障害分析システムは、管理対象システムの性能に関する時系列データの変化の周期を検出し、該検出した周期の各位相毎に、当該位相の過去の時系列データから将来の当該位相における性能データの期待値を算出して蓄積する蓄積データ処理部と、前記検出した周期中の各位相毎に、前記算出された当該位相における性能データの期待値と当該位相における前記管理対象システムの性能データの実測値とを比較して、性能データの実測値の異常を判定する障害判断部とを備える。
【発明の効果】
【００１２】
本発明によれば、性能劣化等が外部的な状況の変化による要因か、それとも障害によるものかの判別が困難なサイレント障害を発見することができる。
【００１３】
また本発明によれば、周期性のある過去のデータの履歴から将来のデータの期待値を自動的に求めることができる。
【発明を実施するための最良の形態】
【００１４】
次に本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１５】
図４を参照すると、本発明の第１の実施の形態に係る障害分析システム790は、管理対象システム200の性能データを定期的に観測するモニタ110と、モニタの観測結果を格納する管理データベース120と、管理対象システム200の性能データの変化の周期を検出し、検出した周期の各位相毎に、当該位相の過去の性能データから将来の当該位相における性能データの期待値を算出して蓄積する蓄積データ処理部600と、管理対象システム200の性能データの変化周期の各位相毎に、蓄積データ処理部600に蓄積された当該位相における性能データの期待値と当該位相における管理対象システム200の性能データの実測値とを比較して、性能データの実測値の異常を判定する障害判断部500と、障害判断部500の判定で使用する確率閾値を格納する確率閾値格納手段590と、障害判断部500の障害判断結果を管理者に提示する分析結果表示手段140とから構成されている。
【００１６】
また、蓄積データ処理部600は、管理データベース120から性能データの時系列データを取り出し、周波数分析して、周期成分を求める周波数分析手段610と、求められた周期成分を格納する周期成分格納手段620と、求められた周期成分から最も周期性の高い成分（以下、主周期と称す）を取り出す周期性抽出手段630と、取り出された主周期を格納する周期性格納手段640と、管理データベース120から性能データの時系列データを取り出し、主周期の各位相毎に、過去一定期間の同じ位相における性能データの平均値を算出して平均時系列データを生成する平均時系列データ作成手段650と、生成された各位相毎の平均時系列データを格納する平均時系列データ格納手段660と、平均時系列データ作成手段650で生成された各位相の平均時系列データ毎に、その生成に用いた性能データのばらつき具合を示す偏差データ（例えば標準偏差）を生成する偏差データ作成手段670と、生成された各偏差データを格納する偏差データ格納手段680と、各位相毎の平均時系列データと偏差データとから、各位相毎の低性能値閾値を生成する低性能値閾値生成手段700と、生成された各位相毎の低性能値閾値を格納する低性能値閾値格納手段690とを有する。
【００１７】
さらに、障害判断部500は、現在の時刻を計時し、各部に分配するタイマー570と、管理対象システム200の性能データの主周期の各位相毎に、管理データベース120から取り出した当該位相における性能データの実測値と低性能値閾値格納手段690に記憶されている当該位相における低性能値閾値とを比較することで性能データの劣化を発見し、性能データの実測値が低性能値閾値を連続して下回った期間の開始時刻、その期間中の性能データの実測値の累積値を求める低性能値監視手段560と、この低性能値監視手段560で求められたデータを格納する管理表550と、性能データの実測値が低性能値閾値を連続して下回った期間における性能データの実測値の累積値と、その期間における性能データの平均時系列データの累積値とを比較して、そのような平均時系列データの累積値が今までに観測されている状況の下で今回のような性能データの実測値の累積値が生じる確率が確率閾値よりも低いかどうかによって、今回の性能データの実測値が異常かどうかを判断する判断手段580と、この判断手段580からの依頼を受けて、性能データの平均時系列データの累積値を求める積分手段540とを有する。
【００１８】
モニタ110によって管理対象システム200から取得されて管理データベース120に蓄積される性能データは、管理対象システム200における或る特定の１箇所の性能データであっても良いし、複数箇所の性能データであっても良い。複数箇所の性能データを取り扱う場合には、どの性能データがどの箇所の性能データであるかが明確に区別されて管理データベース120に蓄積され、障害判断部500の管理表550には、低性能値閾値を下回ったデータ性能の実績値がどの箇所のデータ性能であるかを示すデータが付加される。
【００１９】
また、複数箇所の性能データを扱う場合に、それらは全て同じ種類の性能データであっても良いし、異なる種類の性能データであっても良い。複数種類の性能データを取り扱う場合には、その性能データがどの種類の性能データであるかが明確に区別されて管理データベース120に蓄積され、障害判断部500の管理表550には、低性能値閾値を下回ったデータ性能の実績値がどの種類のデータ性能であるかを示すデータが付加される。
【００２０】
図４の管理表550には、機器とデータ名と開始時刻と累積値との四つ組が記録される例が示されている。ここで、機器の欄が、低性能値閾値を下回ったデータ性能の実績値がどの箇所のデータ性能であるかを示すデータに相当し、データ名の欄が、低性能値閾値を下回ったデータ性能の実績値がどの種類のデータ性能であるかを示すデータに相当する。また、開始時刻の欄は、性能データの実測値が低性能値閾値を連続して下回った期間の開始時刻を示し、累積値の欄は、その期間中の性能データの実測値の累積値を示す。
【００２１】
次に、図４及び図５から図１１のフローチャートを参照して本実施の形態の動作について説明する。なお、以下の動作説明では、１種類の性能データについて、その取得から障害分析までの動作を説明する。管理対象システム120の複数箇所から性能データが取得される場合や、複数種類の性能データを取得する場合、各性能データについて同様の処理が適用される。
【００２２】
まず、モニタ110の動作、続いてそれ以外のモジュール、すなわち障害判断部500、蓄積データ処理部600の動作を詳細に説明する。
【００２３】
まず、モニタ110の動作について図４及び図５を参照して、説明する。モニタ110は、管理対象システム200から性能データを取得し（図５のステップA110）、管理データベース120に格納する（ステップA120）。これを一定時間ごとに繰り返す（ステップA130）。例えば、１日の午前0時00分にまず１回目の性能データの取得と格納を行い、次に１分後、１０分後、１時間後という予め定められた一定時間が経過する毎に再び性能データの取得と格納を繰り返す。これを24時間継続し、さらに再び午前0時00分になったら前日と同じ動作を繰り返すことで、管理対象システム200の性能データを常時監視する。
【００２４】
次に、蓄積データ処理部600について、図４及び図８から図１１のフローチャートを参照して説明する。
【００２５】
まず、図４及び図８を参照して、管理データベース120に格納された過去の性能データの時系列から周期性を見つけ出す周波数分析について説明する。
【００２６】
周波数分析手段610は、ある一定値時間Tの過去から現在時刻t1まで、すなわち、t1-Tからt1までの性能データの時系列データを管理データベース120から取得し、周波数分析を行う（ステップD110）。周波数分析としては、たとえばフーリエ変換などを用いることができる。これにより、周波数fごとの強度e(f)を求めることができる。周波数分析手段610は、周波数fごとの強度e(f)を周期成分格納手段620に格納する（ステップD120）。
【００２７】
周期性抽出手段630は、周波数fごとの強度e(f)から最も強度の大きい周波数fmax=argf max e(f)を求める（ステップD130）。ただし、f=0は定数成分であるため、f≠0の中から最大強度の周波数を見つける。
【００２８】
周期性抽出手段630は、このfmaxを周期性格納手段640に格納する（ステップD140）。当該性能データの主周期は、ここに格納されたfmaxの逆数で与えられる。
【００２９】
次に、図４及び図１０を使って、管理データベース120に格納された過去の性能データから、当該性能データの主周期の各位相毎の平均時系列データを生成する動作を説明する。たとえば、性能データに１日（24時間）ごとの周期性がある場合、その周期の各位相とは、例えば１日を24等分した各時刻0:00,1:00,2:00,…,22:00,23:00に相当する。ここでは、位相の間隔を１時間としたが、10分や１分のように短い間隔としても良いし、２時間、６時間、半日などの長い間隔としても良い。或る位相の平均時系列データは、例えば9:00の位相を考えると、過去何日かの9:00の性能データの平均を求めることである。
【００３０】
まず、平均時系列データ作成手段650は、ある一定値T過去から現在時刻t1までの性能データを管理データベース120から取得し、周期c=1/fmaxの各位相毎に平均λ'c(t)を求める（ステップF110）。すなわち、λ'c(t)=E(d(T=t1-T+(t mod c)+kc))を求める。ただし、t1-T<t<t1なので、k=0,1,…、かつ(t mod c)+kc<Tである。Tは時間に関する確率変数、d(T=t1-T+(t mod c)+kc)は、時間t1-T+(t mod c)+kcがk=0,1,…と変化する時間分布の場合の性能データの分布を表す。また、Eは与えられた分布の平均を表す。平均時系列データ作成手段650が、このように求めたλ'c(t)を平均時系列データ格納手段660に格納する（ステップF120）。
【００３１】
次に、図４及び図９を使って、管理データベース120に格納された過去の性能データの時系列から標準偏差を求める標準偏差の算出について説明する。
【００３２】
偏差データ作成手段670は、平均時系列データ作成手段650と同じく、ある一定値時間Tの過去から現在時刻t1まで、すなわち、t1-Tからt1までの性能データの時系列データを管理データベース120から取得する。そして、周期c=1/fmaxの各位相毎に、標準偏差σ(d(t1-T<T<t1))を求める（ステップE110）。Tは時間に関する確率変数、d(t1-T<T<t1)は、時間t1-Tからt1までの性能データの分布を表す。また、σは与えられた分布の標準偏差を表す。
【００３３】
偏差データ作成手段670は、各位相毎の標準偏差σ(d(t1-T<T<t1))を偏差データ格納手段680に格納する（ステップE120）。
【００３４】
次に、図４及び図１１を参照して、平均時系列データ格納手段660に格納された性能データの平均値の時系列データ及び偏差データ格納手段680に格納された標準偏差をもとに、各位相毎の低性能値の閾値を算出する動作について説明する。
【００３５】
低性能値閾値生成手段700は、現在時刻t1において、平均時系列データλ'c(t1)と偏差値σ(d(t1-T<T<t1))とから、与えられた適切な倍率l(0<l)を元に低性能値閾値θ(t1)=λ'c(t1)-lσ(d(t1-T<T<t1))を計算する（ステップG110）。ただし、t1は現在時刻である。次に、低性能値閾値生成手段700は、低性能値閾値θ(t1)を低性能値閾値格納手段690に格納する。
【００３６】
次に、障害判断部500のうち、性能データの劣化を発見する低性能値監視手段560の動作について、図４及び図６を参照して、説明する。
【００３７】
まず、低性能値監視手段560は、低性能値閾値格納手段690から低性能値閾値θ(t1)を取得する（図７のステップB110）。ただし、t1は現在の時刻である。ここでは、説明の便宜上、取得した低性能値閾値θ(t1)は、装置Aのある種類aの性能データに関する低性能値閾値であったとする。
【００３８】
次に低性能値監視手段560は、管理データベース120から現在時刻t1での装置Aの性能データaの値d(t1)を取得する（ステップB120）。そして、低性能値監視手段560は、d(t1)とθ(t1)とを比較する（ステップB130）。
【００３９】
（1）d(t1)＜θ(t1)の場合
この場合、低性能値監視手段560は、管理表550に装置Aの性能データaに関する行があるかを否かを調べる（ステップB140）。既に行があれば、その行の蓄積値Dの欄に値d(t1)を加算し、D←D+θ(t1)を新たな蓄積値Dとして、管理表550の欄を上書きする（ステップB160）。未だ該当する行がなければ、対象機器A、性能データ名a、現在時刻t1、性能データ値d(t1)の四つ組を管理表550に新たな行として追加する（ステップB150）。
【００４０】
（2）d(t1)＜θ(t1)でない場合
この場合、低性能値監視手段560は、管理表550に装置Aの性能データaに関する行があるか否かを調べる（ステップB170）。若し無ければ、図６の処理を終了する。若し有れば、既に性能データの値劣化から回復したということなので、その行を削除する（ステップB180）。
【００４１】
次に障害分析部500のうち、障害分析を行う判断手段580の動作について、図４及び図７のフローチャートを参照して説明する。
【００４２】
まず、判断手段580は、管理表550の行から蓄積値Dが記録されている行を取得する。たとえば、図４の管理表550の１行目には、装置A、性能データa、値低下の開始時刻t0、蓄積値Dが記録されているので、その行を取得する(ステップC110)。
【００４３】
次に、判断手段580は、積分手段540に対して、当該行における開始時刻t0から現在時刻t1までの平均時系列データλ(t)の積分計算S(t0,t1)=∫t0t1 λ(t)dtを依頼する（ステップC120）。
【００４４】
積分手段540は、平均時系列データ660から、時刻t0から現在時刻t1までの平均時系列データλ(t)を読み出して、S(t0,t1)=∫t0t1 λ(t)dtを計算し、その結果を判断手段580に返す（ステップC130）。
【００４５】
次に判断手段580は、積分手段540から返却された過去の平均時系列データλ(t)の積分値と比較して、時間t0からt1の間で性能データの累積値がDになる確率PD(t0,t1)を計算する（ステップC140）。ここでは、性能データの値の分布がポアソン分布に従うと仮定する。たとえば、性能データを管理対象システム200へのアクセス数とした場合、アクセスは、過去の状態と関係なく単位時間あたり、λ(t)回で発生すると仮定する。この仮定のもと、確率PD(t0,t1)は以下の２式が成り立つ。
【００４６】
P0(t0,t1+Δt)=P0(t0,t1)(1-λ(t1)Δt)
PD+1(t0,t1+Δt)=PD+1(t0,t1)λ(t)Δt＋PD(t0,t1)(1-λ(t)Δt)
ただし、P0(t,t)=1、PD(t,t)=0 (D>0)
【００４７】
1番目の式からP0(t0,t1)=exp(-S(t0,t1))となる。ただし、S(t0,t1)=∫t0t1 λ(t)dtとなる。また、１番目と２番目の式より、PD(t0,t1)={SD(t0,t1)/n!}exp(-S(t0,t1))が成り立つ。ただし、SD(t0,t1)は、S(t0,t1)のD乗である。判断手段580はこの式を計算して確率PD(t0,t1)を計算する。
【００４８】
次に、判断手段580は、確率閾値格納手段590に予め格納されている確率閾値P0とPD(t0,t1)とを比較する（ステップC150）。もし、Σd=0D Pd(t0,t1)<P0ならば、判断手段580は分析結果表示手段140に障害を通知する。本例は、Dが離散値であるが、連続値であっても積分を使うなど同様の方法で対処可能である。
【００４９】
図５から図１１のフローチャートで示した動作は周期的に起動される。これらのそれぞれの処理は非同期的に起動してもよい。また、たとえば、モニタ、標準偏差算出、周波数分析、平均時系列算出、低性能値閾値算出、低性能値監視、障害分析の順番で、同期的に起動してもよい。
【００５０】
次に本実施の形態の効果を説明する。
【００５１】
本実施の形態によれば、性能劣化等が外部的な状況の変化による要因か、それとも障害によるものかの判別が困難なサイレント障害を発見することができる。その理由は、過去の性能データから発見された周期性をもとに作成された性能データの期待値と、モニタリングした性能データの実測値とを比較することで、外部的な状況の周期的な変化による性能データ劣化と、障害的な変化による性能データ劣化とを区別することが可能になるためである。
【００５２】
また本実施の形態によれば、周期性のある過去のデータの履歴から将来のデータの期待値を自動的に求めることができる。その理由は、管理対象システムの性能に関する時系列データの変化の周期を検出し、この検出した周期の各位相毎に、当該位相の過去の時系列データから将来の当該位相における性能データの期待値を算出しているためである。
【実施例】
【００５３】
次に、具体的な実施例を用いて本発明の実施の形態の動作を説明する。
【００５４】
まず、モニタ110について図４及び図５を参照して、説明する。モニタ110は管理対象システム200に関する性能データを取得し（図６のステップA110）、管理データベース120に格納する（ステップA120）。たとえば、管理対象システム200がノードA、ノードB、ノードC、ノードDで構成されており、ノードAは、性能データa,b,c、ノードBは、性能データa,b,d、ノードCは、性能データb,c,d、ノードDは、性能データa,b,cを有するとする。この場合、モニタは、これら12種類の性能データについて周期的に計測する。その計測の結果、12種類の性能データは、情報データベース120に、計測時間ごとに格納される。たとえば、時刻tで計測されたノードAの性能データaであるアクセス頻度の値は、aA(t)とあらわされるとする。たとえば、このようなデータは図１２のようなグラフや図１４のようなグラフで示されているとする。この図１２のグラフのうち、時刻t0からt3で示されるアクセス数が低下している部分が、実はサイレント障害発生部分である。また、図１４のグラフの場合では周期的にアクセス数が０近くまで落ちているが、これは、夜間にアクセス数が減る環境下にあるもので、障害ではない。この両者を区別し、前者を障害と発見することが必要となる。
【００５５】
次に、蓄積データ処理部600について、図４及び図８から図１１のフローチャートを参照して説明する。
【００５６】
まず、図５及び図９を使って、管理データベース120に格納された過去の性能データの時系列から周期性を見つけ出す周波数分析について説明する。
【００５７】
周波数分析手段610は、ある一定値時間Tの過去から現在時刻t3まで、すなわち、t3-Tからt3までの性能データの時系列データを管理データベース120から取得する。このデータをたとえば図１４に示す。そして、周波数分析を行う（ステップD110）。フーリエ変換の結果e(f)を、図１５に示す。周期性抽出手段630は、e(f)から最も強度の大きい周波数fmax=argf max e(f)を求める（ステップD130）。ただし、f=0は定数成分であるため、f≠0の中から最大強度の周波数を見つける。これは、図１５で示す矢印部分にあたる。f=0の強度はこのfmaxでの強度より大きいが、f=0は含まないので対象ではない。
【００５８】
次に、図４及び図１１を参照して、管理データベース120に格納された過去の性能データから周期性を考慮したうえで、平均時系列データを抽出する動作を説明する。
【００５９】
まず、平均時系列データ作成手段650は、ある一定値T過去から現在時刻t3までの性能データを管理データベース120から取得し、周期c=1/fmax中の各位相毎に、平均λ'c(t)を求める（ステップF110）。たとえばfmaxが1/24hourとすると、c=24[hour]となる。その場合、λ'24(t)=E(λ(t1-T+(t mod 24)+24k))となり、k=0,1,…と変化していく中での平均値となる。すなわち、同じ時刻のデータの平均値となる。たとえば、tを時刻21:00とし、情報データベース120内の時刻21:00の平均値を求めると、5となったとする。
【００６０】
次に、図５及び図１０を使って、管理データベース120に格納された過去の性能データの時系列から標準偏差を求める標準偏差算出について説明する。
【００６１】
偏差データ作成手段670は、ある一定値時間Tの過去から現在時刻t3まで、すなわち、t3-Tからt3までの性能データの時系列データを管理データベース120から取得する。そして、標準偏差σ(d(t3-T<T<t3))を求める（ステップE110）。
【００６２】
一般に、標準偏差は
σ=(1/(T+1))Σt=t3-Tt3 d2(t) - ((1/(T+1))Σt=t3-Tt3 d(t))2
で求められるため、管理データベース内のデータd(t)から容易に求めることができる。ここでは例えば、標準偏差が1.3となったとする。
【００６３】
最後に、図４及び図１１を参照して、平均時系列データ格納手段660に格納された性能データの平均値の時系列データ及び偏差データ格納手段680に格納された標準偏差をもとに、低性能値の閾値を算出する動作について説明する。
【００６４】
低性能値閾値生成手段700は、現在時刻t1において、平均時系列データλ'c(t3)=5と、偏差値σ(d(t1-T<T<t1))=1.3から、与えられた適切な倍率l=2を元に低性能値閾値θ(t3)をλ'c(t3)-lσ(d(t3-T<T<t3))で計算すると、5-2*1.3=2.4となる（ステップG110）。ただし、t3は現在時刻である。次に、低性能値閾値生成手段700は、θ(t3)を低性能値閾値格納手段690に格納する。
【００６５】
次に、障害判断部500について、図５及び図７を参照して、説明する。
【００６６】
まず、低性能値監視手段560は、ある装置（たとえばA）のある性能データ（たとえばアクセス数）に関する低性能値閾値格納手段690から低性能値閾値θ(t0)を取得する（図７のステップB110）。ただし、t0は現在の時刻とする。ここで、θ(t0)は前述の低性能値閾値算出のフローチャートによって、値2.4として計算されているものとする。
【００６７】
次に、低性能値監視手段560は、管理データベース120から現在時刻t0での装置Aの性能データaの値d(t0)=aA(t0)を取得する（ステップB120）。たとえば、aA(t0)は0であったとする。低性能値監視手段560は、d(t0)とθ(t0)とを比較する（ステップB130）。今の例では、0<2.4のため、d(t0)<θ(t0)になる。
【００６８】
そこで、低性能値監視手段560は、管理表550に装置Aの性能データaに関する行があるかを調べる（ステップB140）。ここでは、未だ該当する行がないとすると、対象機器A、性能データ名a、現在時刻t0、性能データ値d(t0)=0の四つ組を管理表550に新たな行として追加する（ステップB150）。
【００６９】
次の機会（位相）、すなわち、時刻t1で再度、図６で示される低性能値監視フローが動作したとする。このとき、d(t1)=aA(t1)=1<θ(t1)=2.4とする（ステップB130）。既に、管理表550に装置Aのアクセス数データaの行は存在するので、この行の蓄積値の値をD=d(t0)=aA(t0)=0からD=aA(t0)+aA(t1)=0+1=1に更新する(ステップB160)。
【００７０】
次に障害分析部500のうち、障害分析を行う判断手段580について、図４及び図７のフローチャートを参照して説明する。
【００７１】
まず、判断手段580は、記録表550の各行を取得する。たとえば、装置Aの性能データaの値低下の開始時刻t0であり、蓄積値Dであることを取得する（ステップC110）。
【００７２】
次に、判断手段580は、積分手段540にt0から現在時刻t3までの平均時系列データλ(t)の積分計算S(t0,t3)=∫t0t3 λ(t)dtを依頼する（ステップC120）。このS(t0,t3)=∫t0t3 λ(t)dtを使って、判断手段580は、過去の平均時系列データλ(t)から比較して、時間t0からt3の間で蓄積値Dになる確率PD(t0,t3)を計算する（ステップC140）。すなわち、PD(t0,t3)={SD(t0,t3)/D!}exp(-S(t0,t3))。これは、過去のデータからはS(t0,t3)のアクセス数が期待できるのに対して、実際はt0からt3までにD回のアクセスしかなかった。このようなときの発生確率を求めていることになる。たとえば、S(t0,t3)=10の場合、Dを変化させた場合のPD(t0,t3)のグラフを図１３に示す。たとえば、確率閾値P0=0.03とし、S(t0,t3)=10、D=2とすると、PD(t0,t3)=P0(t0,t3)+P1(t0,t3)+P2(t0,t3)=0.00227であり、PD(t0,t3)<P0となる。この場合、判断手段580は分析結果表示手段140に障害を通知する。
【００７３】
なお、図１６に本明細書中で使用した主な変数の意味を示す。
【産業上の利用可能性】
【００７４】
本発明によれば、通信機器、産業機器、ソフトウェアシステムなどの機器の障害発見・分析といった用途に適用できる。
【図面の簡単な説明】
【００７５】
【図１】本発明に関連する障害分析システムのブロック図である。
【図２】本発明に関連する障害分析システムのブロック図である。
【図３】本発明に関連する障害分析システムのブロック図である。
【図４】本発明の第１の実施の形態にかかる障害分析システムのブロック図である。
【図５】本発明の第１の実施の形態にかかる障害分析システムにおけるモニタの動作を示す流れ図である。
【図６】本発明の第１の実施の形態にかかる障害分析システムにおける低性能値監視手段の動作を示す流れ図である。
【図７】本発明の第１の実施の形態にかかる障害分析システムにおける障害判断部の障害分析手順を示す流れ図である。
【図８】本発明の第１の実施の形態にかかる障害分析システムにおける周期性検出手順を示す流れ図である。
【図９】本発明の第１の実施の形態にかかる障害分析システムにおける偏差データ作成手段の動作を示す流れ図である。
【図１０】本発明の第１の実施の形態にかかる障害分析システムにおける平均時系列データ作成手段の動作を示す流れ図である。
【図１１】本発明の第１の実施の形態にかかる障害分析システムにおける低性能値閾値生成手段の動作を示す流れ図である。
【図１２】サイレント障害発生を表すアクセス数に関する時系列変化を表すグラフである。
【図１３】過去の性能データの頻度を一定にした場合の、観測性能データ値の変化に伴う、観測性能データの発生確率に関するグラフである。
【図１４】アクセス数に関する時系列変化を表すグラフである。
【図１５】アクセス数に関する時系列変化を表すグラフを周波数分析した結果である、周波数ごとの強度を表すグラフである。
【図１６】明細書中で使用した主な変数の意味の説明図である。
【符号の説明】
【００７６】
１００…利用者端末
１１０…モニタ
１２０…管理データベース
１３０…判断手段
１４０…分析結果表示手段
１５０…相関性知識データベース
１６０…知識記述エディタ
２００…管理対象システム
２１０…管理対象ノード
２２０…管理対象ノード
２３０…管理対象ノード
２４０…管理対象ノード
２９０…障害分析システム
３１０…相関学習手段
３９０…障害分析システム
４１０…知識記述エディタ
４２０…期待値データベース
４３０…異常判断手段
４９０…障害分析システム
５００…障害判断部
５４０…積分手段
５５０…管理表
５６０…低性能値監視手段
５７０…タイマー
５８０…判断手段
５９０…確率閾値格納手段
６００…蓄積データ処理部
６１０…周波数分析手段
６２０…周期成分格納手段
６３０…周期性抽出手段
６４０…周期性格納手段
６５０…平均時系列データ作成手段
６６０…平均時系列データ格納手段
６７０…偏差データ作成手段
６８０…偏差データ格納手段
６９０…低性能値閾値生成手段
７００…低性能値閾値格納手段
７９０…障害分析システム
【図１】
2010086160.tif 000003
【図２】
2010086160.tif 000004
【図３】
2010086160.tif 000005
【図４】
2010086160.tif 000006
【図５】
2010086160.tif 000007
【図６】
2010086160.tif 000008
【図７】
2010086160.tif 000009
【図８】
2010086160.tif 000010
【図９】
2010086160.tif 000011
【図１０】
2010086160.tif 000012
【図１１】
2010086160.tif 000013
【図１２】
2010086160.tif 000014
【図１３】
2010086160.tif 000015
【図１４】
2010086160.tif 000016
【図１５】
2010086160.tif 000017
【図１６】
2010086160.tif 000018