(57)【要約】【課題】プロセスに関する知識やログを用いなくとも計算機の障害を検知可能な方法を提供する【解決手段】プロセス監視部２は、ＯＳ２１上のプロセスの情報を監視し、ＣＰＵや、メモリなど各種リソースの使用状況といったモニタリング情報を取得する。順位・グループ情報生成部３は、全てのプロセスについて、モニタリング情報から各種リソースの使用状況の順位付けや、使用状況の度合いに応じたグループ分けを行う。単語生成部４は、得られた順位・グループ情報とプロセス名とから特徴量抽出に用いる単語集を生成する。収集部１１は、生成された単語を収集し、障害時間帯推定部１２は、収集された単語から特徴的なキーワードを抽出し、障害を起こした計算機とその時間帯とを推定する。表示部１３は、障害の発生した計算機と時間帯とを表示する。【選択図】図１
2010108266.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機の各々で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するプロセス監視手段と、
前記プロセス監視手段により取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行う順位・グループ情報生成手段と、
前記順位・グループ情報生成手段により得られた、プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成する単語生成手段と、
前記単語生成手段により生成された単語を前記複数の計算機毎に収集する収集手段と、
前記収集手段により収集された、前記複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定する障害時間帯推定手段と
を備えることを特徴とする障害検知装置。
【請求項２】
前記単語生成手段は、プロセス名と順位情報、またはプロセス名とグループ情報、またはプロセス名とモニタリング情報とを所定の区切り文字で接続することで、前記プロセス毎の単語を生成することを特徴と請求項１記載の障害検知装置。
【請求項３】
複数の計算機の各々で実行されるプロセス毎にプログラムパスを取得するプログラムパス取得手段を備え、
前記単語生成手段は、
前記プログラムパス取得手段により取得されたプログラムパスと、順位情報と、グループ情報と、モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成することを特徴と請求項１記載の障害検知装置。
【請求項４】
前記単語生成手段は、プログラムパスと順位情報、またはプログラムパスとグループ情報、またはプログラムパスとモニタリング情報とを所定の区切り文字で接続することで、前記プロセス毎の単語を生成することを特徴と請求項３記載の障害検知装置。
【請求項５】
前記障害時間帯推定手段は、前記収集手段により収集された、前記複数の計算機のプロセス毎の単語について、どの程度特徴的であるかを示す指標を求め、該指標に基づいて所定の時間帯毎の特徴値を取得し、各時間帯での特徴値の大小に基づいて、障害の発生と、障害が発生した計算機と、障害発生時間帯とを推定することを特徴と請求項１乃至４のいずれかに記載の障害検知装置。
【請求項６】
前記障害時間帯推定手段は、前記指標を用いて、障害検知の対象となる期間を前記所定の時間帯毎に重み付けすることで、前記所定の時間帯毎の特徴値を取得することを特徴と請求項５記載の障害検知装置。
【請求項７】
複数の計算機の各々で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するステップと、
前記取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行うステップと、
前記プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成するステップと、
前記生成された単語を前記複数の計算機毎に収集するステップと、
前記収集された複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定するステップと
を含むことを特徴とする障害検知方法。
【請求項８】
複数の計算機の各々で実行されるプロセスを監視して障害の発生を検知する障害検知装置のコンピュータに、
複数の計算機の各々で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するステップと、
前記取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行うステップと、
前記プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成するステップと、
前記生成された単語を前記複数の計算機毎に収集するステップと、
前記収集された複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定するステップと
を実行させることを特徴とする障害検知プログラム。
【請求項９】
計算機で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するプロセス監視手段と、
前記プロセス監視手段により取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行う順位・グループ情報生成手段と、
前記順位・グループ情報生成手段により得られた、プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成する単語生成手段と
を具備することを特徴とする単語集作成装置。
【請求項１０】
複数の計算機の各々で実行されるプロセス毎にプログラムパスを取得するプログラムパス取得手段を備え、
前記単語生成手段は、
前記プログラムパス取得手段により取得されたプログラムパスと、順位情報と、グループ情報と、モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成することを特徴と請求項９記載の単語集作成装置。
【請求項１１】
計算機で実行されるプロセス毎のリソース使用状況とプロセスのモニタリング情報とに基づいてプロセス毎の順位付け、またはグループ分けが行われることにより得られた、プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報とを、前記モニタリング情報とに基づいて生成されたプロセス毎の特徴量抽出に用いる単語を、複数の計算機毎に収集する収集手段と、
前記収集手段により収集された、前記複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定する障害時間帯推定手段と
を備えることを特徴とする障害発生分析装置。
【請求項１２】
前記障害時間帯推定手段は、前記収集手段により収集された、前記複数の計算機のプロセス毎の単語について、どの程度特徴的であるかを示す指標を求め、該指標に基づいて所定の時間帯毎の特徴値を取得し、各時間帯での特徴値の大小に基づいて、障害の発生と、障害が発生した計算機と、障害発生時間帯とを推定することを特徴と請求項１１記載の障害発生分析装置。
【請求項１３】
前記障害時間帯推定手段は、前記指標を用いて、障害検知の対象となる期間を前記所定の時間帯毎に重み付けすることで、前記所定の時間帯毎の特徴値を取得することを特徴と請求項１２記載の障害発生分析装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害検知装置、障害検知方法及び障害検知プログラムに関し、特に、クラスタ型システムなど同一のハードウェアおよびソフトウェアから構成された、同一のジョブを実行する一連の計算機群から構成される障害検知装置、障害検知方法、障害検知プログラム、単語集作成装置、及び障害発生分析装置に関する。
【背景技術】
【０００２】
従来から、クラスタ型システムに代表される、同一のハードウェア及びソフトウェアで構成され、同一のジョブを実行する計算機群を前提とした効率的な障害検知方法がいくつか提案されている。
【０００３】
特許文献１に開示された障害検知装置においては、障害検知対象となる計算機同士でツリー構造を構成し、ツリー構造で接続されたノード同士で互いに障害を監視し合うことによって、全対全の監視に比較して計算機一台当たりの監視対象の計算機を減らすことで、効率的に障害を検出する。
【０００４】
また、非特許文献１に開示された障害検知装置においては、クラスタを構成する各ノードのｓｙｓｌｏｇを特徴量アルゴリズムにかけ、ノード毎にこの特徴量を比較することによって、異常な特徴量を示すノードにおいて障害が発生したものと推定する。この方法では、ｓｙｓｌｏｇを機械的に処理するだけで障害発生の時間帯を検知できるため、障害検知のためにプロセスの振舞いや、特徴といったプロセスに関する特別な知識、及び事前の学習を必要としない。
【特許文献１】特開２００３−２７１４７１号公報
【非特許文献１】Bad Words: Finding Faults In Spirit’s Syslogs, Cluster Computing and the Grid, 2008. CCGRID ’08. 8th IEEE International Symposium on (2008), pp. 765-770.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように、上述した従来の障害検知装置では、特許文献１のように、ツリー構造で接続された計算機同士で互いに障害を検知する方法や、非特許文献１のように、ｓｙｓｌｏｇの特徴量を時間帯で比較することによって障害の起こった計算機と時間帯を推定する手法があった。
【０００６】
特許文献１の方法によれば、計算機同士が全対全で監視する場合に比べ、ツリー構造による監視では、一台の計算機が監視しなければならない計算機の数が少ない。このため、障害検知による負荷が軽減される。しかしながら、障害を判定するためには、プロセスの正常な振舞いについての知識が必須である。つまり、障害検知のためには、あらかじめ知識データベースを学習などによって作成しておく手間が必要になるという問題がある。
【０００７】
また、非特許文献１の方法によれば、ｓｙｓｌｏｇの特徴量のみを用いて障害検知を行うため、あらかじめプロセスについての知識データベースを作成する必要が無い。しかしながら、この方法で障害検知できるプロセスは、サービスプロセス（デーモン）などのｓｙｓｌｏｇへログを出力するプロセスに限定されてしまうという問題がある。
【０００８】
本発明は、このような事情を考慮してなされたものであり、その目的は、プロセスに関する知識や、ログを用いなくとも、計算機の障害を検知することができる障害検知装置、障害検知方法、障害検知プログラム、単語集作成装置、及び障害発生分析装置を提供することにある。
【課題を解決するための手段】
【０００９】
上述した課題を解決するために、本発明は、複数の計算機の各々で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するプロセス監視手段と、前記プロセス監視手段により取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行う順位・グループ情報生成手段と、前記順位・グループ情報生成手段により得られた、プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成する単語生成手段と、前記単語生成手段により生成された単語を前記複数の計算機毎に収集する収集手段と、前記収集手段により収集された、前記複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定する障害時間帯推定手段とを備えることを特徴とする障害検知装置である。
【００１０】
また、上述した課題を解決するために、本発明は、複数の計算機の各々で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するステップと、前記取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行うステップと、前記プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成するステップと、前記生成された単語を前記複数の計算機毎に収集するステップと、前記収集された複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定するステップとを含むことを特徴とする障害検知方法である。
【００１１】
また、上述した課題を解決するために、本発明は、複数の計算機の各々で実行されるプロセスを監視して障害の発生を検知する障害検知装置のコンピュータに、複数の計算機の各々で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するステップと、前記取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行うステップと、前記プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成するステップと、前記生成された単語を前記複数の計算機毎に収集するステップと、前記収集された複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定するステップとを実行させることを特徴とする障害検知プログラムである。
【００１２】
また、上述した課題を解決するために、本発明は、計算機で実行されるプロセスを監視し、プロセス毎のリソース使用状況と、プロセスのモニタリング情報とを取得するプロセス監視手段と、前記プロセス監視手段により取得されたリソース使用状況とモニタリング情報とに基づいて、プロセス毎の順位付け、またはグループ分けを行う順位・グループ情報生成手段と、前記順位・グループ情報生成手段により得られた、プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報と、前記モニタリング情報とに基づいて、プロセス毎の特徴量抽出に用いる単語を生成する単語生成手段とを具備することを特徴とする単語集作成装置である。
【００１３】
また、上述した課題を解決するために、本発明は、計算機で実行されるプロセス毎のリソース使用状況とプロセスのモニタリング情報とに基づいてプロセス毎の順位付け、またはグループ分けが行われることにより得られた、プロセス毎の順位付けを示す順位情報と、グループ分けを示すグループ情報とを、前記モニタリング情報とに基づいて生成されたプロセス毎の特徴量抽出に用いる単語を、複数の計算機毎に収集する収集手段と、前記収集手段により収集された、前記複数の計算機のプロセス毎の単語に基づいて、障害が発生した計算機と障害発生時間帯とを推定する障害時間帯推定手段とを備えることを特徴とする障害発生分析装置である。
【発明の効果】
【００１４】
この発明によれば、プロセスに関する特別な知識を不要とし、またログを用いなくとも、計算機の障害を検知することができるという利点が得られる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態を、図面を参照して説明する。
【００１６】
Ａ．第１実施形態
まず、本発明の第１実施形態について説明する。
図１は、本発明の第１実施形態による障害検知装置の構成を示すブロック図である。図において、障害検知装置は、単語集作成部１と障害発生分析部１０とから構成される。単語集作成部１は、プロセス監視部２、順位・グループ情報生成部３、及び単語生成部４を備える。障害発生分析部１０は、収集部１１、障害時間帯推定部１２、及び表示部１３を備える。
【００１７】
単語集作成部１は、障害検知の対象となる全ての計算機２０−１、２０−２、２０−３上で動作し、各計算機２０−１〜２０−３上で動作するプロセスの動作状況を表す単語集を生成する。障害発生分析部１０は、全ての計算機２０−１〜２０−３から単語集を定期的に収集し、障害が発生した計算機とその時間帯を分析する。
【００１８】
プロセス監視部２は、ＯＳ２１上で動作するプロセスの情報を監視し、ＣＰＵや、メモリなどの各種リソースの使用状況、及びプロセスの実行ユーザＩＤ、実行グループＩＤといったモニタリング情報を取得する。順位・グループ情報生成部３は、ＯＳ２１上で動作する全てのプロセスについて、各種リソースの使用状況またはモニタリング情報に従って、プロセスの順位付けや、グループ分けを行う。単語生成部４は、得られた順位・グループ情報と実行ユーザＩＤ、実行グループＩＤ、及びプロセス名とから特徴量抽出に用いる単語を生成する。
【００１９】
収集部１１は、単語生成部４において生成された単語を全ての計算機２０−１〜２０−３から収集する。障害時間帯推定部１２は、収集された単語から特徴的なキーワードを抽出し障害の発生した計算機と時間帯を推定する。表示部１３は、推定された時間帯をユーザに対して表示する。
【００２０】
図２は、プロセス監視部２によって監視されるプロセス情報の一例を示す図である。上述したプロセス監視部２は、ＯＳ２１上で動作するプロセスの各種リソース使用状況や、プロセスの実行ユーザＩＤ、実行グループＩＤを、ＯＳ２１の提供するインタフェースを通じて監視する。監視対象のリソースとしては、ＣＰＵや、メモリの使用率などがある。ＯＳ２１の提供するインタフェースとしては、／ｐｒｏｃファイルシステムや、システムコールなどがある。
【００２１】
図３、図４は、順位・グループ情報生成部３による順位付け及びグループ分けの一例を示す図である。順位・グループ情報生成部３は、プロセス監視部２を通じて、ＯＳ２１上で動作する全てのプロセスの各種リソース使用状況を取得し、リソースそれぞれについて順位付け、もしくはグループ分けをする。プロセスのリソース使用状況が、図２に示す通りであった場合、ＣＰＵリソース使用状況の順位付けは、図３に示す通りになる。また、ＣＰＵリソース使用率の度合いによって、例えば、「ｈｉｇｈ（３０％以上）」、「ｍｉｄ（１０％以上３０％未満」、「ｌｏｗ（１０％未満）」などの閾値を適切に決めることで、図４に示すようにグループ分けすることができる。
【００２２】
単語生成部４は、プロセス名と、順位・グループ情報生成部３で得られた順位や、グループ情報、プロセスの実行ユーザＩＤ、実行グループＩＤなどとを適切な区切り文字で接続することによって、計算機２０−１〜２０−３で動作するプロセスの情報を表す単語集を生成する。例えば、図３のＣＰＵ使用率から単語集を作成した場合、プロセス「ｆｉｒｅｆｏｘ」は、ＣＰＵ使用率が１位であるため、区切り文字を「：」とすると、生成される単語は、ｆｉｒｅｆｏｘ：ｃｐｕ１である。同様に、ｅｍａｃｓ：ｃｐｕ２、ｘｔｅｒｍ：ｃｐｕ３という単語を生成し、最終的には｛ｆｉｒｅｆｏｘ：ｃｐｕ１，ｅｍａｃｓ：ｃｐｕ２，ｘｔｅｒｍ：ｃｐｕ３｝という３つの単語から成る単語集を生成する。
【００２３】
また、図４のグループ情報を用いる場合、プロセス「ｆｉｒｅｆｏｘ」は、ＣＰＵグループが「ｈｉｇｈ」であるため、生成される単語は、ｆｉｒｅｆｏｘ：ｃｐｕｈｉｇｈである。同様に、ｅｍａｃｓ：ｃｐｕｈｉｇｈ、ｘｔｅｒｍ：ｃｐｕｌｏｗという単語を生成し、最終的には｛ｆｉｒｅｆｏｘ：ｃｐｕｈｉｇｈ，ｅｍａｃｓ：ｃｐｕｈｉｇｈ，ｘｔｅｒｍ：ｃｐｕｌｏｗ｝という３つの単語から成る単語集を生成する。
【００２４】
また、図示しなかったが、実行ユーザＩＤから単語集を作成した場合、プロセス「ｆｉｒｅｆｏｘ」の実行ユーザＩＤは、ｙａｓｕｈｉｔｏであるため、生成される単語は、ｆｉｒｅｆｏｘ：ｙａｓｕｈｉｔｏである。同様に、ｅｍａｃｓ：ｙａｓｕｈｉｔｏ、ｘｔｅｒｍ：ｙｕｔａｒｏという単語を生成し、最終的には｛ｆｉｒｅｆｏｘ：ｙａｓｕｈｉｔｏ，ｅｍａｃｓ：ｙａｓｕｈｉｔｏ，ｘｔｅｒｍ：ｙｕｔａｒｏ｝という３つの単語から成る単語集を生成する。
【００２５】
収集部１１は、全ての計算機２０−１〜２０−３から単語集を収集する。また、単語集毎に単語集を生成した計算機のＩＤ（ホスト名など）、及び収集した時間帯情報を付加する。時間帯の幅は、例えば、１時間や、１５分など任意に設定して良い。
【００２６】
障害時間帯推定部１２は、収集部１１にて収集された単語集について、既存のＩＤＦ法、もしくはｌｏｇ．ｅｎｔｒｏｐｙ法を用いてキーワード抽出を行う。キーワード抽出では、収集された単語集に表れる単語ｉについて、この単語ｉがどの程度特徴的かという指標ｇ（ｉ）を求める。次に、求められた指標ｇ（ｉ）を使って障害検知の対象となる期間をある一定の時間帯毎に重み付けし、時間帯毎の特徴値を得る。特徴値が大きい時間帯は、他の時間帯に比較して異常であり、障害が発生したものと推測する。
【００２７】
一般的に、特徴値を大きくする傾向のある単語の特徴として、全体のうちごく少数の計算機のみで表れるということが挙げられる。例えば、特定の計算機のみで実行されるプロセスや、異常なＣＰＵ使用率を示すプロセス、実行ユーザＩＤが他の計算機と異なるプロセスなどからは、特徴的な単語が生成されるため、特徴値が異常値を示しやすい。
【００２８】
障害時間帯推定部１２は、前処理として、次のような疎行列であるＭ×Ｎ行列を作成する。Ｍ×Ｎ行列の要素をｘ（ｉ，ｊ）とすると、ｘ（ｉ，ｊ）を「単語ｉがノード時間帯ｊに出現した回数」と定義する。ここで、ノード時間帯とは、計算機毎の時間帯を一意に定めるＩＤである。つまり、行列の列数Ｎ＝（ノード数）×（時間帯の数）となる。Ｍ×Ｎ行列を生成した後、ＩＤＦ法、もしくはｌｏｇ．ｅｎｔｒｏｐｙ法を用いて、指標ｇ（ｉ）を次のように算出する。
【００２９】
以下、ＩＤＦ法を用いた場合のキーワード抽出方法について説明する。ＩＤＦ法では、指標ｇ（ｉ）は、次式（１）で求められる。
【００３０】
【数１】
2010108266.tif 000003
【００３１】
ここで、ｎは全ノード時間帯の数、ｄｆｉは単語ｉが出現するノード時間帯の数である。求められたｇ（ｉ）を重み付けに用いると、ノード時間帯ｊの特徴値｜ｘｊ｜は、次式（２）で求められる。
【００３２】
【数２】
2010108266.tif 000004
【００３３】
ＩＤＦ法の特徴として、多くのノード時間帯に出現する単語の重要度が下がり、特定のノード時間帯にしか出現しない単語の重要度が上がる。
【００３４】
次に、ｌｏｇ．ｅｎｔｒｏｐｙ法を用いた場合のキーワード抽出方法について説明する。ｌｏｇ．ｅｎｔｒｏｐｙ法では、ｇ（ｉ）は、次式（３）で求められる。
【００３５】
【数３】
2010108266.tif 000005
【００３６】
ここで、ｐｉｊは、単語ｉが出現した全回数のうち、ノード時間帯ｊに出現した回数の割合であり、次式（４）で表わされる。
【００３７】
【数４】
2010108266.tif 000006
【００３８】
求められたｇ（ｉ）を重み付けに用いると、ノード時間帯ｊの特徴値｜ｘｊ｜は、次式（５）で求められる。
【００３９】
【数５】
2010108266.tif 000007
【００４０】
ｌｏｇ．ｅｎｔｒｏｐｙ法の特徴として、全てのノード時間帯に同じ回数ずつ出現する単語の重要度は、「０」であり、１つのノード時間帯にのみ出現する単語の重要度は、「１」である。つまり、特定のノード時間帯に偏って出現する単語ほど、その重みは、「１」に近付く。
【００４１】
表示部１３は、障害時間帯推定部１２において、ある閾値以上の特徴値が検出された場合、その計算機と時間帯とをユーザに対して表示する。表示方法としては、ディスプレイに表示する他、ファイルに出力する、電子メールを送る、他のプログラムに内容を送信するなど、結果をユーザが認知できる任意の方法で良い。
【００４２】
次に、本第１実施形態の動作を説明する。
図５は、本第１実施形態による単語集作成部１の動作を説明するためのフローチャートである。まず、ステップＳａ１において、プロセス監視部２は、ＯＳ２１上で動作するプロセスの各種リソース使用状況を、ＯＳ２１が提供するインタフェースを通じて監視し、取得する（ステップＳａ１）。
【００４３】
次に、順位・グループ情報生成部３は、プロセス監視部２を通じて、ＯＳ２１上で動作する全てのプロセスの各種リソース使用状況を取得し、リソースそれぞれについて順位付け、もしくはグループ分けをする（ステップＳａ２）。次に、単語生成部４は、プロセス名と順位・グループ情報生成部３で得られた順位、もしくはグループ情報とを適切な区切り文字で接続することによって、計算機で動作するプロセスの情報を表す単語集を生成する（ステップＳａ３）。
【００４４】
次に、図６は、本第１実施形態による障害発生分析部１０の動作を説明するためのフローチャートである。収集部１１は、一定時間毎に起動され、障害検知対象となる全ての計算機の単語集作成部１で生成された単語集を収集する（ステップＳｂ１）。次に、障害時間推定部１２は、収集部１１にて収集された単語集について、ＩＤＦ法、もしくはｌｏｇ．ｅｎｔｒｏｐｙ法を用いて、障害を起こした計算機と時間帯との推定を行う（ステップＳｂ２）。
【００４５】
次に、障害時間推定部１２は、障害が発見されたかを判定し（ステップＳｂ３）、障害が検知された場合には、表示部１３は、障害が発生した計算機と時間帯とをユーザに対して表示する（ステップＳｂ４）。その後、ステップＳｂ１へ戻り、上述した処理を繰り返す。一方、ステップＳｂ３で、障害が検知されなかった場合には、そのままステップＳｂ１へ戻り、上述した処理を繰り返す。
【００４６】
上述した第１実施形態によれば、プロセスが出力するログを用いることなく、ＯＳから得られるプロセスの情報のみを用いて障害検知することができる。このため、大部分のユーザプロセスなどログを出力しない種類のプロセスについて障害を検知することが可能となる。また、障害検知のための知識データベースを必要としないため、あらかじめ知識データベースを作成する必要がなく、未知の障害にも対応可能である。
【００４７】
Ｂ．第２実施形態
次に、本発明の第２実施形態について説明する。
図７は、本発明の第２実施形態による障害検知装置の構成を示すブロック図である。なお、図において、図１と同一部分には同一符号を付し、その詳細な説明を省略する。本第２実施形態では、第１実施形態の構成に加えて、プログラムパス取得部５を備えている。また、第１実施形態における単語生成部４に変えて、単語生成部６を備えている。
【００４８】
プログラムパス取得部５は、ＯＳ２１上で実行されているプロセスそれぞれについて、ＯＳ２１のインタフェースを通じてプログラムパスを取得する。例えば、プロセス「ｆｉｒｅｆｏｘ」のプログラムパスは、／ｕｓｒ／ｂｉｎ／ｆｉｒｅｆｏｘ、プロセス「ｘｔｅｒｍ」のプログラムパスは、／ｕｓｒ／ｂｉｎ／ｘｔｅｒｍなどという情報を取得する。
【００４９】
単語生成部６は、プログラムパス取得部５で得られたプログラムパスと順位・グループ情報生成部３で得られた順位や、グループ情報、プロセスの実行ユーザＩＤ、実行グループＩＤなどとを適切な区切り文字で接続することによって、計算機で動作するプロセスの情報を表す単語集を生成する。
【００５０】
例えば、図３のＣＰＵ使用率から単語集を作成した場合、プロセス「ｆｉｒｅｆｏｘ」は、プログラムパス取得部５により、プログラム／ｕｓｒ／ｂｉｎ／ｆｉｒｅｆｏｘを実行したものであることが分かり、また、ＣＰＵ仕用率が１位であるため、区切り文字を「：」とすると、生成される単語は、／ｕｓｒ／ｂｉｎ／ｆｉｒｅｆｏｘ：ｃｐｕ１となる。同様に、／ｕｓｒ／ｂｉｎ／ｅｍａｃｓ：ｃｐｕ２、／ｕｓｒ／ｂｉｎ／ｘｔｅｒｍ：ｃｐｕ３という単語を生成し、最終的には、｛／ｕｓｒ／ｂｉｎ／ｆｉｒｅｆｏｘ：ｃｐｕ１，／ｕｓｒ／ｂｉｎ／ｅｍａｃｓ：ｃｐｕ２，／ｕｓｒ／ｂｉｎ／ｘｔｅｒｍ：ｃｐｕ３｝という３つの単語から成る単語集を生成する。
【００５１】
次に、本第２実施形態の動作について説明する。
図８は、本第２実施形態による単語集作成部１の動作を説明するためのフローチャートである。プロセス監視部２は、ＯＳ２１上で動作するプロセスの各種リソース使用状況を、ＯＳ２１の提供するインタフェースを通じて監視し、取得する（ステップＳｃ１）。次に、順位・グループ情報生成部３は、プロセス監視部２を通じて、ＯＳ２１上で動作する全てのプロセスの各種リソース使用状況を取得し、リソースそれぞれについて順位付け、もしくはグループ分けをする（ステップＳｃ２）。
【００５２】
次に、プログラムパス取得部５は、ＯＳ２１上で実行されているプロセスそれぞれについて、ＯＳ２１のインタフェースを通じてプログラムパスを取得する（ステップＳｃ３）。単語生成部６は、プログラムパス取得部５で得られたプログラムパス名と、順位・グループ情報生成部３で得られた順位、もしくはグループ情報とを適切な区切り文字で接続することによって、計算機で動作するプロセスの情報を表す単語集を生成する（ステップＳｃ４）。生成された単語集は、収集部１１への入力として渡され、以下、第１実施形態と同様の手順で障害が推定される。
【００５３】
上述した第２実施形態によれば、単語の生成が、プロセス名ではなく、プロセスを生成したプログラムパスを用いて行われることによって、例えば、同じプロセス名でもプログラムパスが異なる場合を区別することができる。このため、悪意のあるユーザが偽装したプログラムが実行された場合を障害検出結果に反映することができる。このため、第１実施形態で検知できる障害の精度をさらに向上させることができる。
【産業上の利用可能性】
【００５４】
本発明の障害検知装置は、ソフトウェア及びハードウェア構成がほとんど同様なパーソナルコンピュータや、ワークステーション、サーバなどの計算機群に対して適用することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の第１実施形態による障害検知装置の構成を示すブロック図である。
【図２】プロセス監視部２によって監視されるプロセス情報の一例を示す図である。
【図３】順位・グループ情報生成部３による順位付け及びグループ分けの一例を示す図である。
【図４】順位・グループ情報生成部３による順位付け及びグループ分けの一例を示す図である。
【図５】本第１実施形態による単語集作成部１の動作を説明するためのフローチャートである。
【図６】本第１実施形態による障害発生分析部１０の動作を説明するためのフローチャートである。
【図７】本発明の第２実施形態による障害検知装置の構成を示すブロック図である。
【図８】本第２実施形態による単語集作成部１の動作を説明するためのフローチャートである。
【符号の説明】
【００５６】
１  単語集作成部
２  プロセス監視部
３  順位・グループ情報生成部
４  単語生成部
５  プログラムパス取得部
６  単語生成部
１０  障害発生分析部
１１  収集部
１２  障害時間推定部
１３  表示部
２０−１〜２０−３  計算機
２１  ＯＳ
【図１】
2010108266.tif 000008
【図２】
2010108266.tif 000009
【図３】
2010108266.tif 000010
【図４】
2010108266.tif 000011
【図５】
2010108266.tif 000012
【図６】
2010108266.tif 000013
【図７】
2010108266.tif 000014
【図８】
2010108266.tif 000015