(57)【特許請求の範囲】
【請求項１】
障害時に監視サーバが生成したイベントをイベントログデータベースから自動的に取得する第１の処理部と、
自動的に取得されたイベントを障害毎のイベントブロックに自動的に分割し、そのイベントブロックの特徴に基づいて障害を自動的にクラスタリングし、障害クラスタを生成する第２の処理部と、
障害クラスタ内のイベントブロックに頻出する頻出イベントを自動的に発見する第３の処理部と、
発見された頻出イベントを時系列で並べた頻出イベント列から頻出イベントパターンを自動的に発見する第４の処理部と、
発見された頻出イベントパターンの属性値に基づいて検索キーワードを自動的に作成し、復旧手順書のデータベースから対応する復旧手順書を自動的に検索する第５の処理部と、
得られた頻出イベントパターンと復旧手順書とを組み合わせて障害原因判定ルールを自動的に生成する第６の処理部と
を有する障害原因解析システム向けルール生成装置。
【請求項２】
前記第２の処理部は、一つ前のイベントの発生時刻との差が時間窓単位以内であるイベントを、一つ前のイベントが属するイベントブロックに分類する
ことを特徴とする請求項１に記載の障害原因解析システム向けルール生成装置。
【請求項３】
前記第２の処理部は、イベントブロックに含まれるイベントに頻出する属性値、イベントブロックの時間幅（イベントブロック内の最初のイベントと最後のイベントの発生時間の差）、イベントブロック内のイベント数のいずれか一つ又は複数をイベントブロックの特徴とする
ことを特徴とする請求項１又は２に記載の障害原因システム向けルール生成装置。
【請求項４】
前記第３の処理部は、値が不定の属性値を含まない最小有効属性数と、最小サポートイベントブロック数を満たす頻出イベントを発見する
ことを特徴とする請求項１〜３のいずれか一項に記載の障害原因解析システム向けルール生成装置。
【請求項５】
前記第３の処理部は、発見した同一の頻出イベントに対応するイベントブロック内の複数のイベントを同色又は同じ記号で表現し、頻出イベントの障害クラスタ内での分布を視覚化する
ことを特徴とする請求項１〜４のいずれか一項に記載の障害原因解析システム向けルール生成装置。
【請求項６】
前記第４の処理部は、最小サポートイベントブロック数を満たす頻出イベントパターンを発見する
ことを特徴とする請求項１〜５のいずれか一項に記載の障害原因解析システム向けルール生成装置。
【請求項７】
前記第５の処理部は、頻出イベントパターンに含まれる高い重要度を持つイベントの属性値、頻出する属性値、最初のイベントの属性値のいずれか一つ又は複数の属性値と、対応する属性名とを組み合わせて検索キーワードを生成する
ことを特徴とする請求項１〜６のいずれか一項に記載の障害原因解析システム向けルール生成装置。
【請求項８】
コンピュータに、
イベントログデータベースから障害時に監視サーバが生成したイベントを取得する第１の処理と、
取得したイベントを障害毎のイベントブロックに分割し、そのイベントブロックの特徴を基に障害をクラスタリングし、障害クラスタを生成する第２の処理と、
障害クラスタ内のイベントブロックに頻出する頻出イベントを発見する第３の処理と、
発見した頻出イベントを時系列で並べた頻出イベント列から、頻出イベントパターンを発見する第４の処理と、
発見した頻出イベントパターンの属性値に基づいて検索キーワードを作成し、復旧手順書のデータベースから対応する復旧手順書を検索する第５の処理と、
得られた頻出イベントパターンと復旧手順書とを組み合わせて障害原因判定ルールを生成する第６の処理と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害原因解析システムに利用される障害原因判定ルールを、過去のイベントログに基づいて生成する装置及びそのプログラムに関する。
【背景技術】
【０００２】
システム障害発生時における復旧作業の遅延は、企業の業績や社会インフラに大きな影響を与える。システム障害の迅速な復旧には、初動時の対応すなわち障害原因の早期特定と復旧手順の決定が重要である。
【０００３】
現在、障害発生時における迅速な復旧を支援する目的で、障害原因解析システムが提案されている(特許文献１)。この解析システムは、ユーザ自身が主に手作業で事前に作成・登録した障害原因判定ルールを使用する。障害発生時、この解析システムは、事前に作成された障害原因判定ルールに基づいて、サーバ等のIT基盤を監視している監視サーバが生成したイベントを自動的に解析し、解析結果に応じた適切な復旧手順を復旧担当者に自動的に提示する。なお、障害原因判定ルールは、特定の障害時に発生するイベントの発生パターンと復旧手順とを対応付けたデータ構造を有する。障害原因判定ルールのうち、障害を特定するイベントの発生パターンを定義する句を「条件句 (Condition)」といい、その障害に対する復旧手順を定義する句を「行為句(Action)」という。
【０００４】
その一方で、人手による障害原因判定ルールの作成には困難が伴う。このため、イベントログから障害原因判定ルールの条件句を自動生成する方法が提案されている（特許文献２〜４）。各特許文献は、障害発生時における個々のイベントの振る舞いを解析し、障害原因判定ルールの条件句を求める手法が開示されている。例えば特許文献２には、特定イベントの発生頻度を利用する方法が記載されている。また、特許文献３には、イベントの生起パターンを利用する方法が記載さている。また、特許文献４には、正常値と比較した属性値の異常度の利用により、発生した障害を特徴付けるイベントを定義し、その結果を判定ルールに反映させる手法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００４／０６１６８１号
【特許文献２】特開２００８−４１０４１号公報
【特許文献３】特開２００６−４３４６号公報
【特許文献４】特開２００９−２１７３８２号公報
【非特許文献】
【０００６】
【非特許文献１】Fisher, Douglas H. “Knowledge acquisition via incremental clustering”, Machine Learning 2, 139-172, 1987
【発明の概要】
【発明が解決しようとする課題】
【０００７】
復旧時間の短縮には、障害原因が同じ障害には同じ適切な対応手順を定めることと、一旦定めた対応手順の見直しと改善とが必要となる。このため、自動生成技術によって生成される障害原因判定ルールは、障害原因が同じ障害に対して共通に適用でき、その障害に対して適切な対応手順を提示することが要求される。
【０００８】
しかし、前述した障害原因判定ルールの自動生成技術には、次の２つの課題がある。
（１）障害原因が同じ障害への適用保障
特許文献２から４に係る条件句の自動生成技術では、障害発生時、発生した個々のイベントに基づいて、障害に対する条件句を作成している。しかし、これらの方法は、障害原因が同じ障害に対して同じ対応手順を適用できる保障がない。実際、障害原因は同じでも、個々の障害には、当該障害と無関係のイベントが何らかの理由により発生することがある。このため、個々の障害について発生するイベントから導出される条件句を、他の障害に対して適用できない場合がある。
（２）不完全な障害原因判定ルールの生成
特許文献２から４に係る自動生成技術は、障害発生時のイベントの振舞いを解析し、障害原因判定ルールの条件句のみを自動的に生成するものであり、行為句は生成しない。このため、従来システムでは、行為句についてはユーザ自身が作成する必要がある。しかし、作成される行為句の内容はユーザのスキルに依存し、適切な復旧手順が選択されない場合がある。
【課題を解決するための手段】
【０００９】
そこで、本発明者は、(1) 障害に伴って発生する単数又は複数のイベント（イベントブロック）をその特徴に基づいてクラスタリングし（このとき、同じクラスタに属する障害はイベント及びイベントパターンが類似していることになるので、同じ原因による障害と判断できる）、(2) 同じクラスタに属するイベントブロックに頻出するイベントに基づいて障害原因判定ルールの条件句を生成し、(3) 生成された条件句で指定されたイベントの属性値に基づいて検索キーを生成し、(4) 生成された検索キーを用いて検索された復旧手順書を障害原因判定ルールの行為句とすることで、完全な障害原因判定ルールを自動生成することを特徴とする発明を提供する。
【発明の効果】
【００１０】
本発明によれば、障害原因が同じ障害に対して共通に適用でき、しかも、障害原因判定ルールの条件句と行為句の両方で構成される障害原因判定ルールを自動的に生成することができる。
【図面の簡単な説明】
【００１１】
【図１】障害原因解析システムのシステム構成例を示す図。
【図２】ログＤＢが保持するイベントログの具体例を説明するテーブル図。
【図３】障害原因判定ルール生成コンピュータのシステム構成例を示す図。
【図４】障害原因解析プロセスの概要を示すフローチャート。
【図５】障害原因判定ルールの具体例を説明する図。
【図６】障害原因判定ルール生成プロセスの実行手順例を示すフローチャート。
【図７】障害原因判定ルール生成コンピュータにおける初期状態のＧＵＩ例を示す図。
【図８】障害原因判定ルール生成コンピュータにおいて障害クラスタを表示したＧＵＩ例を示す図。
【図９】障害原因判定ルール生成コンピュータにおいて頻出イベントを表示したＧＵＩ例を示す図。
【図１０】障害原因判定ルール生成コンピュータにおいて障害原因判定ルール作成のＧＵＩ例を示す図。
【図１１】障害クラスタリングプロセスの実行手順例を示すフローチャート。
【図１２】イベントブロックの具体例を説明する図。
【図１３】イベントブロックの特徴の具体例を説明する図。
【図１４】復旧手順書の検索プロセスの実行手順例を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、後述する装置構成や処理動作の内容は発明を説明するための一例であり、本発明は、後述する装置構成や処理動作に既知の技術を組み合わせた発明や後述する装置構成や処理動作の一部を既知の技術と置換した発明も包含する。
【００１３】
（障害原因解析システムのシステム構成）
図１に、障害原因判定ルール生成装置を実装する障害原因解析システムの構成例を示す。障害原因解析システムは、監視対象サーバ群１０１と、これらサーバの状態(死活など)を監視し、その状態に応じたイベントを生成する監視サーバ１０２、監視サーバ１０２が生成したイベントを格納するログデータベース（ＤＢ）１０３、監視サーバ１０２が生成したイベントを障害原因判定ルールに基づいて解析する障害原因解析コンピュータ１０４、障害発生時のトラブルシューティングが記述されたハードウェアやソフトウェアなどのマニュアルや保守担当者による過去の障害時の復旧作業に関する報告書などの障害時の復旧手順に関する文書が格納された復旧手順書データベース（ＤＢ）１０５、障害原因解析コンピュータ１０４が障害原因判定ルールに基づきイベントを解析して、復旧手順書を特定し、復旧手順書ＤＢ１０５から取得した復旧手順書を障害復旧担当者が閲覧するために表示する復旧手順書閲覧コンピュータ１０６と、ログＤＢ１０３からイベントログを取得し障害原因判定ルールを生成する障害原因判定ルール生成コンピュータ１０７から構成される。
【００１４】
図２に、ログＤＢ１０３に格納されているイベントのテーブル例を示す。テーブルはイベントを一意に特定する識別子（ＩＤ）２０１、イベントが発生した時間を特定する発生日時２０２、個々のイベントの属性値の集合であるイベント２０３から構成される。この形態例において、イベント２０３の属性は次のように定義する。
【００１５】
（<種類>, <ソース>, <イベント番号>, <ユーザ>, <コンピュータ>）
<種類>は、イベントの緊急度を意味する。<ソース>は、イベントを発生させたプロセス、アプリケーションなどの発生源を意味する。<イベント番号>は、イベントの内容を特定する番号を意味する。<ユーザ>は、イベントの発生源となったプロセスやアプリケーションを実行していたユーザを意味する。<コンピュータ>は、イベントの発生源となった監視対象サーバ群１０１内のサーバを意味する。
【００１６】
図５に、障害原因判定ルールの一例を示す。この例は、判定時間２分９秒以内に、属性値タプル（警戒, process71, 80, user2, server9）を持つイベントの後に属性値タプル（*, process39, *, user4, server8）を持つイベントが発生したならば、復旧手順書「○○システム復旧手順書.doc」を復旧担当者に提示することを意味している。ここで、属性値”*”は値が不定であることを示している。また、この障害原因判定ルールでは、イベントパターン５０１と判定時間５０２の項目を合わせたものがルールの条件句であり、復旧手順書５０３の項目がルールの行為句に相当する。
【００１７】
図３に、障害原因判定ルール生成コンピュータ１０７の構成例を示す。障害原因判定ルール生成コンピュータ１０７は、コンピュータ本体３００と、入力装置３３０と、表示装置３３１と、通信装置３３２とから構成される。ここで、通信装置３３２は、ログＤＢ１０３と復旧手順書ＤＢ１０５と障害原因解析コンピュータ１０４との通信を行う。コンピュータ本体３００は、データ演算を実行するＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３１０、ハードディスク駆動装置３２０、これらデバイス間のデータ転送を実現するＣＰＵバス３０７、前述したデバイスとＣＰＵバス３０７とを結合するインターフェース３０３〜３０６で構成される。
【００１８】
ＲＡＭ３１０には、ＣＰＵ３０１に演算処理を実行させる障害原因判定ルール生成プログラム３１１の実行領域と、検算時に一時的に生成させるデータを格納する作業領域３１２とが少なくとも確保される。以下、「障害原因判定ルール生成プログラム３１１」を、単に「プログラム３１１」ともいう。また、ハードディスク駆動装置３２０の記憶領域には、障害原因判定ルール生成プログラムの格納領域としてのプログラム格納部３２１と、ログＤＢ１０３及び復旧手順書ＤＢ１０５から取得したデータを一時的に格納しておくデータ格納部３２２が少なくとも確保される。
【００１９】
図７及び図１０に、障害原因判定ルール生成コンピュータ１０７に接続される表示装置３３１に表示される障害原因判定ルール生成プログラムの条件入力及び計算結果出力用のＧＵＩ画面例を示す。障害原因判定ルール生成プログラム画面７００は、障害のクラスタリングの実行及び結果を表示する障害クラスタリングタブ７０１と、障害原因判定ルールを表示するルール作成タブ１００１から構成される。これらの画面は、プログラム３１１を通じて表示装置３３１の画面上に表示される。
【００２０】
障害クラスタリングタブ７０１は、障害のクラスタリング処理に関連する情報要素をまとめて表示する領域（障害クラスタリング部７１０）と、個々の障害クラスタに関連する情報要素をまとめて表示する領域（障害クラスタ詳細部７２０）とから構成される。
【００２１】
障害クラスタリング部７１０は、イベントブロックの分離基準を与える時間窓単位入力部７１１と、イベントブロックをクラスタリングする際に画面上のポインタを通じてクリック操作されるクラスタリング開始ボタン７１２と、障害をクラスタリングした結果得られた障害の分類木である障害分類木の表示部７１３とから構成される。ここで、イベントブロックとは、１つの障害時に発生する単数又は複数のイベントの集合を意味する。図７の例の場合、プログラム３１１は、障害によって発生したイベントを、その発生日時と一つ前のイベントの発生日時との差が１０分以内であれば、一つ前のイベントと同じ障害によって発生したイベントを見なし、同じイベントブロックに分類する。逆に、発生日時の差が１０分以上の場合、プログラム３１１は、発生したイベントを、一つ前のイベントとは異なる障害によって発生したイベントとみなし、新規のイベントブロックに分類する。
【００２２】
障害クラスタ詳細部７２０は、障害分類木表示部７１３に表示された障害分類木の中から選択されたノードに分類される複数の障害（以後、「障害クラスタ」という。）に含まれる頻出イベントを計算する条件を入力する最小有効属性数入力部７２１と、最小サポート イベントブロック数入力部７２２と、頻出イベントの計算を開始する際に画面上のポインタを通じてクリック操作される頻出イベント発見ボタン７２３と、障害分類木表示部７１３で選択された障害クラスタ内に含まれるイベントブロックの情報を表示するイベントブロックテーブル７３０と、頻出イベントの情報を表示する頻出イベントテーブル７４０から構成される。ここで、有効属性数は、頻出イベントの「＊」以外の属性値の数であり、最小有効属性数は頻出イベントが満たすべき最小の有効属性数のことである。また、最小サポート イベントブロック数とは、頻出イベントが含まれているべき最小のイベントブロック数である。前述の通り、”*”は属性値が不定であることを示す。
【００２３】
イベントブロックテーブル７３０は、指定された障害クラスタ内のイベントブロック名を表示する障害のイベントブロック７３１、イベントブロック内のイベントの属性値を表示するイベント７３２、各イベントに対応する頻出イベントのラベルを表示する頻出イベントラベル７３３から構成される。頻出イベントテーブル７４０は、頻出イベントを一意に特定するラベルを表示する頻出イベントラベル７４１、頻出イベントの属性値を表示するイベント７４２、イベントブロックテーブル７３０内のイベントブロックのうち頻出イベントが含まれるイベントブロック数を表示するサポートイベントブロック数７４３から構成される。
【００２４】
ルール作成タブ１００１は、最終的に障害原因解析コンピュータ１０４に登録する障害原因判定ルールに関連する要素をまとめた最終的な障害原因判定ルール部１０１０と、障害原因判定ルールの条件句の決定に関連する要素をまとめたイベントパターン候補部１０３０と、障害原因判定ルールの行為句の決定に関連する要素をまとめた復旧手順書検索部１０５０とから構成される。
【００２５】
障害原因判定ルール部１０１０は、最終的な障害原因判定ルールの決定後、障害原因解析コンピュータ１０４に登録する際に画面上のポインタを通じてクリック操作される決定ボタン１０１１と、障害原因判定ルールの内容を表示する障害原因判定ルールテーブル１０２０から構成される。障害原因判定ルールテーブル１０２０は、イベントが出現するパターンを表示するイベントパターン１０２１と、そのパターンが出現する時間間隔である判定時間１０２２と、判定時間１０２２内にそのイベントパターンが出現したときに復旧手順書閲覧コンピュータ１０６に表示させる復旧手順書名を表示する復旧手順書１０２３から構成される。
【００２６】
イベントパターン候補部１０３０は、障害原因判定ルールの条件句のイベントパターン１０２１及び判定時間１０２２の候補を表示するイベントパターンテーブル１０４０と、イベントパターンテーブル１０４０の中から選択された候補を障害原因判定ルールのイベントパターン１０２１及び判定時間１０２２として決定する際に画面上のポインタを通じてクリック操作される決定ボタン１０３１から構成される。イベントパターンテーブル１０４０は、イベントパターン候補を一意に識別する番号を表示する候補１０４１と、対応する頻出イベントのラベルを表示する頻出イベントラベル１０４２と、イベントパターンのイベントの属性値を表示するイベントパターン１０４３と、その判定時間を表示する判定時間１０４４と、このイベントパターンが含まれるイベントブロック数を表示するイベントブロックサポート数１０４５から構成される。
【００２７】
復旧手順書候補部１０５０は、検索キーワードを入力する検索キーワード入力部１０５２、復旧手順書ＤＢ１０５に対して復旧手順書を検索する際に画面上のポインタを通じてクリック操作される検索ボタン１０５３、検索された復旧手順書一覧を表示する復旧手順書テーブル１０６０と、復旧手順書テーブル１０６０の中から選択された復旧手順書を障害原因判定ルールの復旧手順書１０６３として決定する際に画面上のポインタを通じてクリック操作される決定ボタン１０５１から構成される。復旧手順書テーブル１０６０は、検索された復旧手順書名を表示する復旧順書１０６１と、検索された復旧手順書のスコアを表示するスコア１０６２から構成される。
【００２８】
(障害原因解析動作)
図４に、障害原因解析システムの全体で実行される障害原因解析プロセスの概要を示す。最初に、障害原因判定ルール生成コンピュータ１０７は、ログＤＢ１０３からイベントログを取得して障害原因判定ルールを生成し、障害原因解析コンピュータ１０４に登録する（ステップ４０１）。図５に、障害原因判定ルール生成コンピュータ１０７によって生成された障害原因判定ルールの例を示す。
【００２９】
監視サーバ１０２は、監視対象サーバ群１０１を監視し、その状態に応じたイベントを生成する（ステップ４０２）。この後、監視サーバ１０２は、生成したイベントを障害原因解析コンピュータ１０４に送信し、同時に、生成したイベントをイベントログＤＢ１０３に格納する。ここで、生成されるイベントは、図２に示すイベントログテーブルのイベント２０３を構成する属性値の集合である。
【００３０】
障害原因解析コンピュータ１０４は、監視サーバ１０２が発生させたイベントを受信し（ステップ４０３）、登録されている障害原因判定ルールの条件句のパターンと、受信したイベントの出現パターンとのマッチング処理を実行する（ステップ４０４）。
【００３１】
イベントの出現パターンが障害原因判定ルールの条件句と一致している場合、障害原因解析コンピュータ１０４は、その障害原因判定ルールの復旧手順書を復旧手順書ＤＢ１０５から取得し（ステップ４０６）、復旧手順書閲覧コンピュータ１０６に送信する（ステップ４０７）。その後、復旧手順閲覧コンピュータ１０６は、受信した復旧手順書を表示する（ステップ４０８）。
【００３２】
なお、イベントの出現パターンが障害原因判定ルールの条件句と一致しない場合、障害原因解析コンピュータ１０４は、ステップ４０２に戻る。
【００３３】
(障害原因判定ルール生成動作)
（a）動作の概要
（ステップ６００）
図６に、障害原因判定ルール生成プログラム３１１を通じて実行される障害原因判定ルール生成プロセスの概要を示す。このプログラム３１１は、表示装置３３１に表示される初期状態の障害原因判定ルール生成プログラム画面７００（図７）の時間窓単位入力部７１１に単位時間が入力された後、クラスタリング開始ボタン７１２に対するクリック操作が検出されることで開始される。ここでのクリック操作は、障害原因判定ルール生成コンピュータ１０７を構成する入力装置３３０に対するユーザ操作を通じて入力される。プログラム３１１は、障害原因判定ルール生成コンピュータ１０７で実行される。
【００３４】
（ステップ６０１）
障害原因判定ルール生成プログラム３１１は、該当する操作入力を検出すると、時間窓単位入力部７１１に入力された数値又は内容を読み取り、ＲＡＭ３１０の作業領域３１２に格納する。さらに、障害原因判定ルール生成プログラム３１１は、障害原因判定ルール生成プログラム３１１に記述された障害クラスタリング処理の処理手順に従い、障害クラスタリング処理を実行する。この処理内容の詳細は後述する。
【００３５】
（ステップ６０２）
障害原因判定ルール生成プログラム３１１は、障害クラスタリングの実行結果を、表示装置３３１を通して障害原因判定ルール生成プログラム画面７００上に表示する。図８は、障害クラスタリングの処理結果を障害原因判定ルール生成プログラム画面７００に表示した様子の具体例を示している。障害クラスタ表示部７１３には、障害クラスタリングの実行結果が概念木で表示され、概念木のノードである選択された障害クラスタ７１４に含まれるイベントブロックの情報がイベントブロックテーブル７３０に表示される。図８の表示例の場合、ユーザにより選択された障害クラスタ７１４（障害クラスタ３）は、2008/10/11と、2008/10/25と、2008/12/02とに発生した障害から構成されること、各障害時に３個、２個、３個のイベントがそれぞれ発生したことが分かる。
【００３６】
（ステップ６０３）
障害原因判定ルール生成プログラム３１１は、次に頻出イベント発見処理を実行する。この頻出イベント発見処理は、表示装置３３１に表示された障害原因判定ルール生成プログラム画面７００（図８）を構成する障害クラスタ表示部７３１において特定の障害クラスタ７１４がユーザによって選択され、かつ、当該選択された障害クラスタ７１４に関するイベントブロック情報がイベントブロックテーブル７３０に表示された状態で、入力部
（最小有効属性数入力部７２１と最小サポートイベントブロック数入力部７２２）に数値が入力された後、クラスタリング開始ボタン７１２に対するクリック操作が検出されることで開始される。ここでの選択、数値の入力及びクリック操作は、障害原因判定ルール生成コンピュータ１０７を構成する入力装置３３０に対するユーザ操作を通じて入力される。
【００３７】
（ステップ６０４）
障害原因判定ルール生成プログラム３１１は、当該操作入力を検出すると、図８の障害原因判定ルール生成プログラム画面７００内の入力部（最小有効属性数入力部７２１と最小サポートイベントブロック数入力部７２２）に入力された数値及びイベントブロックテーブル７３０に表示された内容を読み取り、ＲＡＭ３１０の作業領域３１２に格納する。さらに、障害原因判定ルール生成プログラム３１１は、障害原因判定ルール生成プログラム３１１に記述された頻出イベント発見処理の処理手順に従い、作業領域３１２に格納されたイベントブロックテーブルのイベントから頻出イベントを発見する。
【００３８】
ここで、頻出イベントとは、イベントブロックテーブル７３０に含まれるイベントのうち、最小サポートイベントブロック数入力部７２２に入力されたイベントブロック数を満たす頻度で出現しているイベントである。ただし、頻出イベントは、イベントブロックテーブル７３０に含まれるイベントの属性値と完全一致する必要はなく、一部の属性は不定（＊）としても良い。このとき、頻出イベントの有効属性数（＊以外の属性値の数）は、最小有効属性数入力部７２１の最小有効属性数を満たす必要がある。
【００３９】
（ステップ６０５）
障害原因判定ルール生成プログラム３１１は、頻出イベント発見処理の実行結果を、表示装置３３１を通して障害原因判定ルール生成プログラム画面７００に表示する。図９は、頻出イベント発見処理の実行結果を、障害原因判定ルール生成プログラム画面７００を構成するイベントブロックテーブル７３０及び頻出イベントテーブル７４０に表示した具体例を示している。
【００４０】
頻出イベントテーブル７４０には、頻出イベントを構成する属性値がイベント７４２に対し、各頻出イベントを一意に特定する色、模様及びラベル７４１等が付された状態で表示される。なお、図９の場合、頻出イベントテーブル７４０における頻出イベントは、各頻出イベントに対応するサポートイベントブロック数７４３の数値順（図９は降順）に表示される。さらに、イベントブロックテーブル７３０のイベント７３２には、頻出イベントテーブル７４０で頻出イベントに付されているのと同じ色や模様が付されると共に、対応する頻出イベントラベル７３３が割り当てられる。これにより、頻出イベントがイベントブロック内にどのように分布しているかを、画面表示からユーザが直感的かつ容易に理解できるようになる。もし、分布の仕方が不自然であれば、ユーザは条件入力部（最小有効属性数入力部７２１と最小サポートイベントブロック数入力部７２２）の値を変更して、頻出イベントを求め直しても良い。
【００４１】
（ステップ６０６）
障害原因判定ルール生成プログラム３１１における頻出イベントパターン発見処理は、入力装置３３０に対するユーザ操作を通じ、表示装置３３１に表示された図９に示す障害原因判定ルール生成プログラム画面７００のルール作成タブ１００１がクリックされることで開始される。
【００４２】
（ステップ６０７）
障害原因判定ルール生成プログラム３１１は、当該操作入力を検出すると、図９に示す障害原因判定ルール生成プログラム画面７００を構成するイベントブロックテーブル７３０と頻出イベントテーブル７４０に表示された内容を読み取り、ＲＡＭ３１０の作業領域３１２に格納する。さらに、障害原因判定ルール生成プログラム３１１は、頻出イベントパターン発見処理の処理手順に従い、作業領域３１２に格納されたイベントブロックテーブルの頻出イベントラベル７３３から頻出イベントパターンを発見する。ここで、障害原因判定ルール生成プログラム３１１は、イベントブロックテーブル７３０に表示される各障害を構成する頻出イベントに割り当てられた頻出イベントラベルを、イベント７３２の属性”時刻”の順番に並べた頻出イベント列を作成することにより、頻出イベントパターンを発見する。すなわち、頻出イベントパターンは、頻出イベントラベルを出現時間順に並べたパターンとして特定される。図９の例の場合、頻出イベント列は”CAB”,”AB”,”ACB”である。次に、障害原因判定ルール生成プログラム３１１は、最小サポートイベントブロック数入力部７２２で指定されたイベントブロック数を満たすイベントラベルが頻出する出現パターンを求める。図９の例では”AB”,“CB”となる。このイベントラベルのパターンを、頻出イベントテーブル７４０の頻出イベント７４２で置換したものが、頻出イベントパターンとなる。
【００４３】
（ステップ６０８）
障害原因判定ルール生成プログラム３１１は、頻出イベントパターン発見処理の実行結果を、表示装置３３１を通して障害原因判定ルール生成プログラム画面７００上に表示する。図１０は、頻出イベントパターン発見処理の実行結果を、障害原因判定ルール生成プログラム画面７００を構成するイベントパターン候補テーブル１０４０に表示した具体例を示している。
【００４４】
（ステップ６０９）
障害原因判定ルール生成コンピュータ１０７は、ユーザが入力装置３３０の操作を通じて、表示装置３３１に表示された図１０の障害原因判定ルール生成プログラム画面７００を構成するイベントパターンテーブル１０４０内のイベントパターン候補を選択した操作を検出すると、選択されたイベントパターン候補１０４６の内容を読み取り、ＲＡＭ３１０の作業領域３１２に格納する。さらに、障害原因判定ルール生成プログラム３１１は、障害原因判定ルール生成プログラム３１１に記述された復旧手順書検索処理の処理手順に従い、作業領域３１２に格納されたイベントパターン候補の内容をもとに復旧手順書の検索処理を実行し、検索された復旧手順書を作業領域３１２に格納する。この処理内容の詳細は後述する。
【００４５】
（ステップ６１０）
障害原因判定ルール生成プログラム３１１は、作業領域３１２に格納されている復旧手順書検索の実行結果を、表示装置３３１を通して障害原因判定ルール生成プログラム画面７００上に表示する。図１０は、復旧手順書の検索結果を、障害原因判定ルール生成プログラム画面７００を構成する復旧手順書テーブル１０６０に表示した具体例を示している。
【００４６】
（ステップ６１１）
障害原因判定ルール生成プログラム３１１の障害原因判定ルール作成処理は、入力装置３３０に対するユーザの操作入力を通じ、表示装置３３１に表示される障害原因判定ルール生成プログラム画面７００（図１０）に対して以下の操作入力を通じて実行される。
【００４７】
まず、イベントパターン候補部１０３０を構成するイベントパターン候補テーブル１０４０の中からイベントパターン候補が選択された後、決定ボタン１０３１がクリック操作される。この操作により、選択されたイベントパターン候補１０４６の内容が、障害原因判定テーブル１０２０のイベントパターン１０２１及び判定時間１０２２に表示される。
【００４８】
次に、復旧手順書候補部１０５０を構成する復旧手順書テーブル１０６０の中から対応付ける復旧手順書が選択された後、決定ボタン１０５１がクリック操作される。この操作により、選択した復旧手順書１０６３の内容が、障害原因判定テーブル１０２０の復旧手順書１０２３に表示される。
【００４９】
最後に、最終的な障害原因判定ルール部１０１０内の決定ボタン１０１１がクリック操作されると、障害原因判定ルール生成プログラム３１１は、作成された障害原因判定ルールの登録処理を開始する。なお、画面上での選択、クリック操作は、障害原因判定ルール生成コンピュータ１０７を構成する入力装置３３０に対するユーザ操作を通じて入力される。
【００５０】
なお、本実施例の場合には、条件句の選択及び選択された条件句に対応付ける行為句の選択をユーザが行っているが、復旧手順書候補部１０５０の復旧手順書テーブル１０６０に表示される個別の復旧手順所のうちスコア１０６２が最も高いものを各条件句に自動的に対応付ければ、障害原因判定ルール作成処理を自動化できる。スコア１０６２は、検索キーワード１０５２と復旧手順書１０６１内の文書との統計的な一致度合いを表し、スコアが高いほど検索キーワードが復旧手順書１０６１の文書中に多く出現していることを意味する。
【００５１】
（ステップ６１２）
障害原因判定ルール生成プログラム３１１は、前述した一連の操作入力を検出すると、図１０の障害原因判定ルール生成プログラム画面７００内の障害原因判定ルールテーブルに表示された内容を読み取り、ＲＡＭ３１０の作業領域３１２に格納する。さらに、障害原因判定ルール生成プログラム３１１は、障害原因判定ルール登録処理の処理手順に従い、作業領域３１２に格納された障害原因判定ルールテーブルの内容を、通信装置３３２を通して障害原因解析コンピュータ１０４に送信し、障害原因判定ルール（条件句と行為句を対応付けたルール）を障害原因解析コンピュータ１０４に登録する。
【００５２】
(b)詳細動作
（１）障害クラスタリング
ここでは、ステップ６０１で実行される障害クラスタリング処理の詳細動作を説明する。図１１に、障害クラスタリング処理で実行される処理手順の概要を示す。
【００５３】
（ステップ１１０１）
障害クラスタリング処理の開始後、障害原因判定ルール生成プログラム３１１は、通信装置３３２を介してログＤＢ１０３にアクセスし、障害に関わるイベント（イベント２０３の属性「種類」が、「致命的」、「緊急」、「エラー」などの値をとるイベントで、「情報」のような障害とは関係ない値をとるイベントは含まない）を発生時刻順に取得する。この後、障害原因判定ルール生成プログラム３１１は、取得したイベントを、ハードディスク駆動装置３２０のデータ格納部３２２に一時的に保存し、続いて、ＲＡＭ３１０の作業領域３１２に格納する。ここで、イベントとは、図２に表示されるイベントＩＤ２０１、イベントの発生日時２０２、イベントの属性値２０３から構成される。
【００５４】
（ステップ１１０２）
障害原因判定ルール生成プログラム３１１は、作業領域３１２に格納されている最近取得したイベントの発生日時２０２と一つ前のイベントの発生日時２０２との差が、障害原因判定ルール生成プログラム画面７００内の時間窓単位入力部７１１で指定された時間以内か否か判定する。時間以内の場合、障害原因判定ルール生成プログラム３１１はステップ１１０４を実行し、時間以内でない場合、障害原因判定ルール生成プログラム３１１はステップ１１０３を実行する。
【００５５】
（ステップ１１０３）
ステップ１１０３において、障害原因判定ルール生成プログラム３１１は、新規イベントブロックを作成し、最近取得したイベントを新規に作成したイベントブロックに分類する。例えば図２のイベントログの場合、イベントＩＤ２０１が“５”のイベントの発生日時２０２  「2009/05/23 12:23:35」と、直前のイベントＩＤ２０１が“４”のイベントの発生日時２０２  「2009/05/23 10:30:34」との時間差が、時間窓単位入力部７１１で指定された時間「１０分」以上である。従って、障害原因判定ルール生成プログラム３１１は、イベントＩＤ２０１が“５”と“４”のイベントを別の障害によって発生したイベントと見なし、イベントＩＤ２０１が“５”のイベントを新規のイベントブロックに分類する。
【００５６】
（ステップ１１０４）
ステップ１１０４において、障害原因判定ルール生成プログラム３１１は、最近取得したイベントを一つ前のイベントと同じイベントブロックに追加する。例えば図２のイベントログの場合、イベントＩＤ２０１が“４”のイベントの発生日時２０２  「2009/05/23 10:30:34」と、直前のイベントＩＤ２０１が“３”のイベントの発生日時２０２  「2009/05/23 10:27:26」との時間差が、時間窓単位入力部７１１で指定された時間「１０分」以内である。従って、障害原因判定ルール生成プログラム３１１は、イベントＩＤが“４”と“３”のイベントを一つの障害によって連続的に発生したイベントと見なし、同じイベントブロックに分類する。
【００５７】
（ステップ１１０５）
障害原因判定ルール生成プログラム３１１は、イベントログＤＢ１０３に未取得のイベントが残っているか確認する。残っている場合、障害原因判定ルール生成プログラム３１１はステップ１１０１を実行し、残っていない場合、ステップ１１０６を実行する。
【００５８】
図１２は、図２のイベント（イベントＩＤ２０１が１から１７）をステップ１１０１からステップ１１０５の手順に従ってイベントブロックごとに分類した後のイベントブロックテーブル１２００である。イベントブロックテーブル１２００は、イベントブロックを一意に識別するイベントブロックＩＤ１２０１、イベントＩＤ２０１、イベントの発生日時２０２、イベントの属性２０３から構成される。
【００５９】
（ステップ１１０６）
障害原因判定ルール生成プログラム３１１は、作成したイベントブロックテーブル１２００において、イベントブロック毎に特徴を抽出する。図１３は、図１２に示すイベントブロックテーブル１２００から作成したイベントブロック特徴テーブル１３００の一例である。イベントブロック特徴テーブル１３００は、イベントブロックＩＤ１２０１、イベントブロック内のイベントの属性値の特徴である属性リスト１３０１、イベントブロック内に含まれるイベント数１３０２、イベントブロック内の最後のイベントと最初のイベントの発生日時２０２の差である時間幅１３０３から構成される。属性リスト１３０１は、イベントブロックに含まれるイベントの各属性２０３に対して最も頻出する属性値と２番目に頻出する属性値から構成される。
【００６０】
（ステップ１１０７）
障害原因判定ルール生成プログラム３１１は、ステップ１１０６で求めたイベントブロック特徴テーブル１３００に基づいてイベントブロックをクラスタリングする。クラスタリング手法には、例えば非特許文献１に記載された概念クラスタリングＣＯＢＷＥＢ等を使用すると良い。クラスタリングを実行すると、障害の概念木が生成される。
【００６１】
（２）復旧手順書検索
ここでは、ステップ６０９で実行される復旧手順書検索処理の詳細動作を説明する。図１４に、復旧手順書検索処理で実行される処理手順の概要を示す。
【００６２】
（ステップ１４０１）
復旧手順書検索処理の開始後、障害原因判定ルール生成プログラム３１１は、ＲＡＭ３１０の作業領域３１２に格納されているイベントパターン候補１０４６から属性値の特徴を抽出する。特徴を抽出する方法としては、検索に有効な属性に対して、属性“種類”の重要度がより高いイベントの属性値、イベントパターン候補の最初のイベントの属性値、頻出する属性値などから決める。イベントパターン候補１０４６では、検索に有効である属性”ソース”及び”イベント番号”に対して、属性”種類”の属性値が確定しており、最初に出現する頻出イベントラベルＡのイベントの属性値から、（process71, 80）が特徴となる。
【００６３】
（ステップ１４０２）
障害原因判定ルール生成プログラム３１１は、ステップ１４０１で抽出した属性値の特徴とその属性名を組み合わせた検索キーワード”ソース  process71 イベント番号 80”を生成する。このとき、組み合わせる属性名は、復旧手順書で良く使用される名前を利用して”プロセス名 prcess71 エラーコード 80”とすることもできる。また復旧手順書の言語を考慮して、”process name process71 error 80“とすることもできる。
【００６４】
（ステップ１４０３）
障害原因判定ルール生成プログラム３１１は、通信装置３３２を介して復旧手順書ＤＢ１０５にアクセスし、ステップ１４０２で生成した検索キーワードを用いて復旧手順書ＤＢ１０５を検索する。さらに、障害原因判定ルール生成プログラム３１１は、通信装置３３２を介して実行された検索処理でヒットした復旧手順書を復旧手順書ＤＢ１０５から取得し、一時的にハードディスク駆動装置３２０のデータ格納部３３２に保存した後、ＲＡＭ３１０の作業領域３１２に格納する。
【００６５】
(効果)
以上説明したように、本実施形態に係る障害原因判定ルール生成装置（プログラム）を実装する障害原因解析システムにおいては、以下の処理動作が実行される。
（１）障害時に監視サーバ１０２が生成したイベントをログＤＢ１０３から取得する。
（２）取得したイベントを障害毎のイベントブロックに分割し、そのイベントブロックの特徴に基づいて障害をクラスタリングし、障害クラスタを生成する。イベントブロックは、障害との関連性が高い１つ又は複数のイベントで構成される。障害クラスタは、同じ障害から発生した可能性の高いイベントブロックの集合である。
（３）障害クラスタ内のイベントブロックに頻出する頻出イベントを発見する。
（４）発見した頻出イベントを時系列で並べた頻出イベント列から頻出イベントパターンを発見する。
（５）発見した頻出イベントパターンの属性値に基づいて検索キーワードを作成し、復旧手順書のデータベースから対応する復旧手順書を検索する。
（６）得られた頻出イベントパターンと復旧手順書とを組み合わせて障害原因判定ルールを生成する。
【００６６】
すなわち、障害原因が同じ可能性が高い障害ブロックに基づいて障害判定ルール(頻出イベント)を発見することにより、障害に関連する可能性の高い障害原因判定ルールを条件句として作成することができる。また、作成された条件句に、統計的に高い行為句を組み合わせることにより、障害の復旧に適した障害原因判定ルールを自動的に生成することができる。
【図１】
0005395719.tif 000002
【図２】
0005395719.tif 000003
【図３】
0005395719.tif 000004
【図４】
0005395719.tif 000005
【図５】
0005395719.tif 000006
【図６】
0005395719.tif 000007
【図７】
0005395719.tif 000008
【図８】
0005395719.tif 000009
【図９】
0005395719.tif 000010
【図１０】
0005395719.tif 000011
【図１１】
0005395719.tif 000012
【図１２】
0005395719.tif 000013
【図１３】
0005395719.tif 000014
【図１４】
0005395719.tif 000015