(57)【特許請求の範囲】
【請求項１】
システム障害を監視対象とする監視サーバが生成したイベントを逐次取得し、イベントを障害毎にまとめたイベントブロックを作成する第一の処理部と、
現処理時点から所定の時間窓幅内に取得したイベントブロックを訓練データとして取得し、当該イベントブロックに基づいて一時的に生成される一時障害分類木オブジェクトの集合を更新する第二の処理部であり、前記一時障害分類木オブジェクトは、(1)特徴によって障害を分類した障害分類木と、(2)障害原因判定ルールを格納する障害原因判定ルールテーブルと、(3)前記障害分類木の構築に訓練データとして使用したイベントブロックを格納する障害ノードテーブルと、(4)オブジェクトの選択用の重みとで構成される、第二の処理部と、
更新された一時障害分類木オブジェクトの集合の中から選択用の重みが最も重い一時障害分類木オブジェクトを選択し、当該選択された一時障害分類木オブジェクトと現行の障害原因判定ルールに関連する登録障害分類木オブジェクトとの比較によりオブジェクト間の変化を検知する第三の処理部であり、前記登録障害分類木オブジェクトは、(1)特徴によって障害を分類した障害分類木と、(2)障害原因判定ルールを格納する障害原因判定ルールテーブルと、(3)前記障害分類木の構築に訓練データとして使用したイベントブロックを格納する障害ノードテーブルとで構成される、第三の処理部と、
前記第三の処理部において両オブジェクトが一致していない場合、両オブジェクト間の違いが発生した原因を予測し、予測に基づいて新たな一時障害分類木オブジェクトを作成して前記一時障害分類木オブジェクトの集合に追加する第四の処理部と、
前記第三の処理部において両オブジェクトが一致していない場合、当該第三の処理部で選択された一時障害分類木オブジェクト又は前記第四の処理部で作成された一時障害分類木オブジェクトによって前記登録障害分類木オブジェクトを置き換える第五の処理部と、
を有する障害原因判定ルール変化検知装置。
【請求項２】
前記第二の処理部は、カテゴリーユーティリティに基づく分類木全体の評価、及び、新たに取得されたイベントブロックと当該イベントブロックが分類される障害ノードとの適合度とに基づいて、一時障害分類木オブジェクトの選択用の重みを決定する
ことを特徴とする請求項１に記載の障害原因判定ルール変化検知装置。
【請求項３】
前記第四の処理部は、前記登録障害分類木オブジェクトを構成する障害分類木に存在していた障害ノードが一時障害分類木オブジェクトを構成する障害分類木の対応位置に存在しない場合、関連するサービスが削除されたものと予測し、一時障害分類木オブジェクトの訓練データであるイベントから当該サービスに関連したイベントを削除したイベント集合に基づいて新たな一時障害分類木オブジェクトを作成する
ことを特徴とする請求項１に記載の障害原因判定ルール変化検知装置。
【請求項４】
前記第四の処理部は、前記登録障害分類木オブジェクトを構成する障害分類木の障害ノードについて設定されていた障害原因判定ルールの内容が、対応する一時障害分類木オブジェクトの障害原因判定ルールの内容と異なる場合、システム基盤の構成が変更されたものと予測して前記訓練データのイベントの属性を変更後の内容に変更し、当該属性変更後のイベントを含むイベントブロックに基づいて新たな一時障害分類木オブジェクトを作成する
ことを特徴とする請求項１に記載の障害原因判定ルール変化検知装置。
【請求項５】
コンピュータに、
システム障害を監視対象とする監視サーバが生成したイベントを逐次取得し、イベントを障害毎にまとめたイベントブロックを作成する第一の処理と、
現処理時点から所定の時間窓幅内に取得したイベントブロックを訓練データとして取得し、当該イベントブロックに基づいて一時的に生成される一時障害分類木オブジェクトの集合を更新する第二の処理であり、前記一時障害分類木オブジェクトは、(1)特徴によって障害を分類した障害分類木と、(2)障害原因判定ルールを格納する障害原因判定ルールテーブルと、(3)前記障害分類木の構築に訓練データとして使用したイベントブロックを格納する障害ノードテーブルと、(4)オブジェクトの選択用の重みとで構成される、第二の処理と、
更新された一時障害分類木オブジェクトの集合の中から選択用の重みが最も重い一時障害分類木オブジェクトを選択し、当該選択された一時障害分類木オブジェクトと現行の障害原因判定ルールに関連する登録障害分類木オブジェクトとの比較によりオブジェクト間の変化を検知する第三の処理であり、前記登録障害分類木オブジェクトは、(1)特徴によって障害を分類した障害分類木と、(2)障害原因判定ルールを格納する障害原因判定ルールテーブルと、(3)前記障害分類木の構築に訓練データとして使用したイベントブロックを格納する障害ノードテーブルとで構成される、第三の処理と、
前記第三の処理において両オブジェクトが一致していない場合、両オブジェクト間の違いが発生した原因を予測し、予測に基づいて新たな一時障害分類木オブジェクトを作成して前記一時障害分類木オブジェクトの集合に追加する第四の処理と、
前記第三の処理において両オブジェクトが一致していない場合、当該第三の処理で選択された一時障害分類木オブジェクト又は前記第四の処理で作成された一時障害分類木オブジェクトによって前記登録障害分類木オブジェクトを置き換える第五の処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば過去のイベントログに基づいて、障害原因解析システムで利用される障害原因解析ルールの変化を検知できる装置及び当該装置をソフトウェア的に実現するプログラムに関する。
【背景技術】
【０００２】
企業経営や社会に大きな影響を与えるシステム障害が多発している。この背景には、外部ＩＴサービスとの連携の複雑化がある。その結果、システム障害の伝播到達範囲が広域化し、一箇所のシステム障害が社会全体に大きな影響を及ぼすようになっている。このようなシステム障害による被害の拡大を防止するには、迅速かつ適切な初動対応が重要となる。
【０００３】
そこで、障害検知と適切な障害復旧手順書の提示により、初動対応を支援する障害原因解析システムが提案されている（特許文献１）。このシステムは、特定のシステム障害発生時に監視系が生成するイベントパターンとその障害に対する復旧手順書とを対応付けた障害原因判定ルールを事前に登録し、当該障害原因判定ルールと監視系が生成するイベントパターン（ストリーム）とのマッチングにより、障害検知と対応する適切な復旧手順書の提供を実現する。
【０００４】
しかし、障害原因判定ルールをユーザが記述することは困難である。そこで、監視系の生成するイベントログから障害原因判定ルールを自動生成する方法が提案されている（特許文献２及び３）。これらの方法は、システム障害発生時に発生するイベントの中から特徴のあるイベントを特定し、その振る舞いを解析することによりルールを生成することを基本とする。なお、特許文献２には、特定イベントの発生頻度を利用する方法が開示されている。また、特許文献３には、イベントの生起パターンを利用する方法が記述されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００４／０６１６８１号
【特許文献２】特開２００８−４１０４１号公報
【特許文献３】特開２００６−４３４６号公報
【非特許文献】
【０００６】
【非特許文献１】Fisher, Douglas H. “Knowledge acquisition via incremental clustering”, Machine Learning 2, 139-172, 1987
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、ＩＴサービスの運用時には、一度作成した障害原因判定ルールが無効になる変化が生じ得る。この種の変化が発生した場合、なるべく関連する障害が発生する前に、障害原因判定ルールを修正することが求められる。この様な変化には次の場合がある。
【０００８】
（１）ＩＴサービスの削除
不要となったＩＴサービスを削除した場合、当該ＩＴサービスに関連するシステム障害は、それ以降発生しなくなる。この場合、このシステム障害に関連した障害原因判定ルールは無効となる。
【０００９】
（２）ＩＴ基盤の構成変更
ネットワーク構成の変更、ハードウェアの変更その他のＩＴ基盤の構成変更を行った場合、当該変更に関連するイベントの属性値をもつ障害原因判定ルールは無効になる。
【００１０】
この様な変化は、繰り返し発生する障害に反映される。従って、その際のイベントを学習することで変更を検知することができる。しかし、この変化を検知するまでに要する時間は、障害の内容により異なる。頻出して発生する障害は短時間で検知することができるのに対し、発生頻度の低い障害は検知までに時間を要する。
【００１１】
もし、頻出する障害によって検知された変化が発生頻度の低い障害に対する障害原因判定ルールにも影響する場合、理想的には、頻出する障害に対する障害原因判定ルールを修正するだけでなく、影響のある出現頻度の低い障害が発生する前にその障害原因判定ルールを修正することが求められる。
【００１２】
しかし、従来の障害原因判定ルールの自動生成技術は、前述した２つの変化を検知し、関連のある全ての障害原因判定ルールの修正を実現する方法を提供していない。
【課題を解決するための手段】
【００１３】
そこで、本発明者は、障害原因判定ルールを運用状況に応じて更新するための仕組みを提供する。具体的には、システム障害の発生時に、監視対象サーバ群の状態に基づいて監視サーバが生成したイベントを取得してイベントブロックを作成し、作成したイベントログを訓練データに用いて一時障害分類木オブジェクトの集合を更新する処理と、当該集合のうちで重みが最も重い一時障害分類木オブジェクトを選択し、選択された一時障害分類木オブジェクトと登録障害分類木オブジェクトとを比較する処理と、両者が一致しない場合、双方の違いから変化を予測し、当該予測に基づいた一時障害分類木オブジェクトを作成し、作成された一時障害分類木オブジェクトを一時障害分類木オブジェクト集合に追加する処理と、選択した一時障害分類木オブジェクトによって登録障害分類木オブジェクトを置換する処理とを有する仕組みを提供する。
【発明の効果】
【００１４】
本発明によれば、障害原因判定ルールに関わる変化を検知することができる。また、本発明によれば、まだ観測されていない障害に対応する障害原因判定ルールについても、関連性のある障害の発生に伴って予測的に更新することができる。
【図面の簡単な説明】
【００１５】
【図１】障害原因解析システムのシステム構成例を示す図。
【図２】ログＤＢが保持するイベントログの具体例を説明する図。
【図３−１】障害原因判定ルールＤＢが保持する登録障害分類木オブジェクトの具体例を示す図。
【図３−２】登録障害分類木オブジェクトを構成する障害分類木と障害原因判定ルールテーブルの具体例を示す図。
【図３−３】登録障害分類木オブジェクトを構成する障害ノードテーブルの具体例を示す図。
【図４】障害原因判定ルール変化検知コンピュータのシステム構成例を示す図。
【図５】障害原因判定ルール変化検知プログラムの画面例を示す図。
【図６】障害原因解析プロセスの概要を示すフローチャート。
【図７】障害原因判定ルール生成プロセスの概要を示すフローチャート。
【図８】イベントブロックの具体例を説明する図。
【図９】イベントブロックの特徴テーブル例を示す図。
【図１０】障害原因判定ルール変化検知プロセスの実行手順を示すフローチャート。
【図１１】障害原因判定ルール変化検知装置が生成する一時障害分類木オブジェクト集合を説明する図。
【図１２−１】障害分類木の障害ノードの消失検知を説明する図。
【図１２−２】消失した障害ノードに対応する障害原因判定ルールを説明する図。
【図１３−１】障害原因判定ルールの属性値の変化検知を説明する図。
【図１３−２】属性値の変化が検出された障害原因判定ルールにおける属性値の変化を説明する図。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、後述する装置構成や処理動作の内容は発明を説明するための一例である。本発明は、後述する装置構成同士や処理動作同士の任意の組み合わせ、後述する装置構成や処理動作に既知の技術を追加する組み合わせ、後述する装置構成や処理動作の一部を既知の技術で置換する組み合わせも包含する。
【００１７】
（障害原因解析システムのシステム構成）
図１に、障害原因判定ルール変化検知コンピュータ１０７を実装する障害原因解析システムの構成例を示す。図１に示す障害原因解析システムは、監視対象サーバ群１０１と、監視サーバ１０２と、ログデータベース（ＤＢ）１０３と、障害原因判定ルール生成コンピュータ１０４と、障害原因解析コンピュータ１０５と、障害原因判定ルールＤＢ１０６と、障害原因判定ルール変化検知コンピュータ１０７と、復旧手順書データベース（ＤＢ）１０８と、復旧手順書閲覧コンピュータ１０９とを有している。
【００１８】
このうち、監視サーバ１０２は、監視対象サーバ群１０１の状態（死活など）を監視し、状態に応じたイベントを生成する機能を提供する。監視サーバ１０２が生成したイベントはログデータベース（ＤＢ）１０３に格納される。障害原因判定ルール生成コンピュータ１０４は、ログＤＢ１０３からイベントログを読み出し、障害原因判定ルールを生成する機能を提供する。障害原因判定ルール生成コンピュータ１０４が生成した障害原因判定ルールは、障害原因判定ルールＤＢ１０６に格納される。障害原因解析コンピュータ１０５は、障害原因判定ルールＤＢ１０６が格納する障害原因判定ルールに基づいてイベントを解析し、障害に対する復旧手順書を特定する機能を提供する。
【００１９】
障害原因判定ルール変化検知コンピュータ１０７は、監視サーバ１０２が生成したイベントを解析し、障害原因判定ルールＤＢ１０６に格納されている障害原因判定ルールに関わる変化を検知する機能を提供する。ここでの検知には、予測的な検知も含まれる。
【００２０】
復旧手順書データベース（ＤＢ）１０８は、障害時の復旧手順に関する文書を格納する。ここでの文書には、障害発生時のトラブルシューティングを記述したマニュアル（ハードウェアかソフトウェアかを問わない）だけでなく、過去の障害に対する保守担当者の対応記録、報告書その他の障害から復旧するための手順に関する文書も含まれる。復旧手順書閲覧コンピュータ１０９は、障害原因解析コンピュータ１０５によって特定された復旧手順書を画面上に表示する機能を提供する。
【００２１】
（イベントテーブルの具体例）
図２に、ログＤＢ１０３に格納されるイベントテーブル２００の具体例を示す。イベントテーブル２００は、イベントを一意に特定する識別子(ID)２０１、イベントが発生した日時を特定する発生日時２０２、個々のイベントの属性値の集合であるイベント２０３から構成される。この形態例の場合、イベント２０３の属性は、<種類>、<ソース>、<イベント番号>、<ユーザ>、<コンピュータ>で定義される。このうち、<種類>はイベントの重要度を示している。<ソース>はイベントを発生させたプロセスやアプリケーション等の発生源を示している。<イベント番号>はイベントの内容を特定する番号を示している。<ユーザ>はイベントの発生源となったプロセスやアプリケーションを実行していたユーザを示している。<コンピュータ>はイベントの発生源となった監視対象サーバ群１０１内のサーバを示している。
【００２２】
（障害原因判定ルールＤＢの具体例）
図３−１〜図３−３に、障害原因判定ルールＤＢ１０６の構成例を示す。障害原因判定ルールＤＢ１０６は、障害原因解析コンピュータ１０５に登録されている障害原因判定ルールと、それに関連する情報を登録障害分類木オブジェクト３００として格納しているＤＢである。登録障害分類木オブジェクト３００は、図３−１に示すように、障害分類木３１０と、障害原因判定ルールテーブル３２０と、障害ノードテーブル３３０とから構成される。
【００２３】
障害分類木３１０は、障害原因解析コンピュータ１０５に登録されている障害原因判定ルールの生成時に作成される。障害分類木３１０では、障害時に発生した単数又は複数のイベントの集合（以下、「イベントブロック」という）が共通に有する特徴に基づいて障害が分類され、分類木として表現される。障害分類木３１０のノードを障害ノードと呼ぶ。同じ障害ノードに分類された障害同士は、発生したイベント及び発生の仕方が類似しているので、同じ障害原因による障害であると考えられる。図３−２の（１）に、障害分類木３１０の構造例を示す。
【００２４】
障害原因判定ルールテーブル３２０は、障害原因解析コンピュータ１０５に登録されている障害原因判定ルールを格納するテーブルである。障害原因判定ルールテーブル３２０は、図３−２の（２）に示すように、障害分類木３１０の障害ノード３２１と、対象障害ノードに分類される障害に適用される障害原因判定ルール３２２から構成される。障害原因判定ルール３２２は、単数又は複数の判定イベント３２３と、判定時間３２４と、復旧手順書３２５とで構成される。判定イベント３２３は、対象障害ノードを特徴付けるイベントの属性の集合である。判定時間３２４は、判定イベント３２３で指定した全てのイベントが発生する時間間隔である。復旧手順書３２５は、判定時間３２４内に判定イベント３２２が発生したときに復旧手順書閲覧コンピュータ１０９に表示される文書である。
【００２５】
１つの障害ノード３２１に対して複数の判定イベント３２３が指定されている場合は、障害原因判定ルールテーブル３２０で指定された順番に判定イベントが出現するものとする。図３−２の（２）の場合、「障害ノード１−１」に対する障害原因判定ルール３２２として、（「警戒」、「process71」、「80」、「user2」、「server9」）の属性値を有する判定イベントの発生後に、（「*」、「process39」、「*」、「user4」、「server8」）の属性値を有する判定イベントが判定時間「２分９秒」以内に発生したら、「復旧手順A.doc」を復旧手順閲覧コンピュータ１０９に表示するというルールが設定されている。ここで属性値「*」は、値が不定であることを意味し、任意の値を採り得ることを示す。
【００２６】
障害ノードテーブル３３０は、障害分類木３１０を構築する際に訓練データとして使用したイベントブロックを格納する。図３−３に、障害ノードテーブル３３０の一例を示す。障害ノードテーブル３３０は、障害ノード３２１と、当該障害ノードに分類されたイベントブロック３３１と、当該イベントブロック３２１内に含まれるイベント２０３から構成される。
【００２７】
（障害原因判定ルール変化検知コンピュータの構成例）
図４に、障害原因判定ルール変化検知コンピュータ１０７の構成例を示す。障害原因判定ルール変化検知コンピュータ１０７は、コンピュータ本体４００と、入力装置４３０と、表示装置４３１と、通信装置４３２とから構成される。なお、通信装置４３２は、監視サーバ１０２、ログＤＢ１０３及び障害原因判定ルールＤＢ１０６と通信する。
【００２８】
コンピュータ本体４００は、データ演算をするＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４１０、ハードディスク駆動装置４２０、これらデバイス間のデータ転送を実現するＣＰＵバス４０７、これらデバイスとＣＰＵバス４０７とを結合するインターフェース４０３〜４０６で構成される。
【００２９】
ＲＡＭ４１０には、ＣＰＵ４０１に演算処理をさせる障害原因判定ルール変化検知プログラム４１１の実行領域と、検算時に一時的に生成させるデータを格納する作業領域４１２とが少なくとも確保される。また、ハードディスク駆動装置４２０の記憶領域には、障害原因判定ルール変化検知プログラムの格納領域としてのプログラム格納部４２１と、監視サーバ１０２及び障害原因判定ルールＤＢ１０６から取得したデータを一時的に格納しておくデータ格納部４２２が少なくとも確保される。
【００３０】
図５に、障害原因判定ルール変化検知コンピュータ１０７に接続される表示装置４３１に表示されるＧＵＩ画面例を示す。障害原因判定ルール変化検知プログラム画面５００は、障害原因判定ルール３２２（図３−２）が満たすべき最小のイベントブロックサポート率を入力する最小イベントブロックサポート率入力部５０１、障害原因判定ルール３２２の判定イベント３２３が満たすべき最小の有効な属性数を入力する最小有効属性数入力部５０２、変化を検知するために一時的に障害分類木作成する際に訓練データとして使用するイベントの時間範囲である時間窓幅入力部５０３と、障害原因判定ルール検知プロセスを開始させるための開始ボタン５０５から構成される。
【００３１】
ここで、最小イベントブロックサポート率は、検知対象の障害ノード毎に適用され、対象障害ノードに分類された全てのイベントブロックのうちで、生成した障害原因判定ルールを適用することができるイベントブロック数の割合を意味する。図５の例の場合、「障害原因判定ルール」として検出されるためには、少なくとも６０％のイベントブロックに適用されなければならないことを表している。また、有効な属性とは、属性値が不定「*」以外の属性値を有する属性を意味する。図５の場合、有効な属性数の最小値は「５」である。
【００３２】
（障害原因解析動作）
図６に、障害原因解析システム全体の障害原因解析プロセスの概略を示す。
【００３３】
（ステップ６０１）
障害原因判定ルール生成コンピュータ１０４は、ログＤＢ１０３からイベントログを取得して障害原因判定ルール３２２を生成し、障害原因判定ルールＤＢ１０６に保存する。この処理内容の詳細は後述する。
【００３４】
（ステップ６０２）
障害原因解析コンピュータ１０５は、障害原因判定ルール生成コンピュータ１０４による障害原因判定ルールＤＢ１０６の更新を検知すると、障害原因判定ルールＤＢ１０６から障害原因判定ルールテーブル３２０の更新後の障害原因判定ルール３２２を取得する。この際、取得された障害原因判定ルール３２２は、データ格納部４２２に登録される。
【００３５】
（ステップ６０３）
監視サーバ１０２は、監視対象サーバ群１０１を常に監視している。監視サーバ１０２は、監視対象サーバ群１０１内のあるサーバに障害に起因する異常を発見すると、当該サーバの状態からイベントを生成する。監視サーバ１０２は、生成したイベントをログＤＢ１０３に保存すると共に、障害原因解析コンピュータ１０５及び障害原因判定ルール変化検知コンピュータ１０７にそのイベントを送信する。
【００３６】
（ステップ６０４）
障害原因解析コンピュータ１０５は、受信したイベントと障害原因判定ルール３２２とをマッチングする。受信したイベントが障害原因判定ルール３２２とマッチした場合、障害原因解析コンピュータ１０５は、その障害原因判定ルール３２２の復旧手順書３２５を、復旧手順書ＤＢ１０８から取得し、復旧手順書閲覧コンピュータ１０９に送信する。一方、受信したイベントが障害原因判定ルール３２２とマッチしなかった場合、障害原因解析コンピュータ１０５は、何もしない。
【００３７】
（ステップ６０５）
復旧手順書閲覧コンピュータ１０９は、障害原因解析コンピュータ１０５から受信した復旧手順書３１５を表示装置上に表示する。
【００３８】
（ステップ６０６）
障害原因判定ルール変化検知コンピュータ１０７は、監視サーバ１０２からイベントを受信すると、設定された時間窓内に出現したイベント集合から一時的な障害分類木（以下、「一時障害分類木」という。）を作成し、障害原因判定ルールＤＢ１０６に格納されている障害分類木と比較する。ここでの比較には、木構造の比較だけでなく、各イベントが割り当てられる障害ノードの比較も含まれる。変化が検出された場合、障害原因判定ルール変化検知コンピュータ１０７は、障害原因判定ルールに関わる変化が生じたものと判定し、障害原因判定ルールＤＢ１０６の登録障害分類木オブジェクト３００を更新する。この処理内容の詳細は後述する。
【００３９】
（ステップ６０７）
障害原因解析コンピュータ１０５は、障害原因判定ルール検証コンピュータ１０７により障害原因判定ルールＤＢ１０６の更新を検知すると、障害原因判定ルールＤＢ１０７から障害原因判定ルール３１２を取得し、現在利用している障害原因判定ルールと置換する。この置換処理により、障害原因解析コンピュータ１０５は、常に、最新の障害原因判定ルールに従ってイベントを解析することができる。
【００４０】
（障害原因判定ルール生成動作）
図７に、障害原因判定ルール生成コンピュータ１０４による障害原因判定ルールの生成プロセスの概略を示す。
【００４１】
（ステップ７０１）
障害原因判定ルール生成コンピュータ１０４は、ログＤＢ１０３のイベントテーブル２０３からイベントを取得する。
【００４２】
（ステップ７０２）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０１で取得したイベントを障害毎にまとめたイベントブロックのテーブルであるイベントブロックテーブル８００（図８）を作成する。イベントブロックの作成には、例えば以下のルールを適用する。あるイベントの発生日時２０２と一つ前のイベントの発生日時２０２との時間差が与えられた閾値以内の場合、当該イベントは一つ前のイベントブロックに分類する。一方、当該時間差が閾値以上の場合、当該イベントを新規のイベントブロックに分類する。
【００４３】
図８に、図２のイベントテーブル２００に基づいて作成したイベントブロックテーブル８００の具体例を示す。イベントブロックテーブル８００は、イベントブロックを一意に特定するイベントブロックＩＤ８０１、各イベントブロックに含まれるイベントを特定するイベントＩＤ２０１、各イベントの発生した日時を特定する発生日時２０２、発生したイベントを構成する属性値の集合であるイベント２０３から構成される。
【００４４】
（ステップ７０３）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０２で作成されたイベントブロックテーブル８００に基づいて各イベントブロックの特徴を抽出し、イベントブロックの特徴テーブル９００（図９）を作成する。ここでの特徴は、各イベントブロックに分類されたイベント集合に頻出する属性を意味する。
【００４５】
図９に、図８のイベントブロックテーブル８００から作成したイベントブロックの特徴テーブル９００の具体例を示す。イベントブロックの特徴テーブル９００は、イベントブロックを特定するイベントブロックＩＤ８０１、各イベントブロックに対する特徴である属性リスト９０１から構成される。この例において、属性リスト９０１は、イベント２０３の各属性に対してそのイベントブロック内で最も頻出する属性値と、次に頻出する属性値から構成される。例えば図９の場合、イベントブロックＩＤ「１」のイベントブロックに属するイベント集合では、属性「種類」について「エラー」が最も多く、「致命的」が２番目に多いことが分かる。
【００４６】
（ステップ７０４）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０３で作成したイベントブロックの特徴テーブル９００をクラスタリングする。クラスタリングでは、登録障害分類木オブジェクト３００（図３−１）の障害分類木３１０の作成と、作成された障害分類木３１０の各障害ノードに対してイベントブロックテーブル８００のイベントブロックを分類する障害ノードテーブル３３０（図３−３）の作成とが行われる。
【００４７】
障害分類木３１０の同じ障害ノードに分類されたイベントブロックは、障害時のイベントの出現の仕方が類似している。従って、当該イベントブロックは、同じ障害原因により発生した障害とみなすことが出来る。クラスタリングのアルゴリズムには、例えば非特許文献１で説明されている概念クラスタリングＣＯＢＷＥＢを利用する。
【００４８】
（ステップ７０５）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０４で作成した障害ノードテーブル３３０（図３−３）の各障害ノード３２１内に頻出するイベントを発見する。この頻出イベントは、全ての属性値が一致する必要は無く、一部の属性値は不定「*」でも良い。ただし、イベントを構成する属性のうち不定値「*」以外の属性値数の満たすべき最小値は、事前に最小有効属性数として与えておく（図５）。
【００４９】
また、頻出イベントの頻度は、その頻出イベントが含まれるイベントブロック数で決まる。頻出イベントが満たすべき最小のイベントブロック数は、その障害ノード内の全イベントブロック数に対する最小サポートイベントブロック率として事前に与えておく（図５）。
【００５０】
（ステップ７０６）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０５で求めた頻出イベントがどのようなパターン（出現の順番）であるかを発見する。障害原因判定ルール生成コンピュータ１０４は、発見した頻出イベントをその出現順に障害原因判定ルールテーブル３２０の判定イベント３２３に格納する。発見された判定イベント３２３が複数の場合、障害原因判定ルール生成コンピュータ１０４は、当該複数のパターンが出現する時間間隔の最大値を障害原因判定ルールテーブル３２０の判定時間３２４に格納する。
【００５１】
（ステップ７０７）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０６で求めた障害原因判定ルール３２２の判定イベント３２３の属性値の一部を検索キーに用い、障害ノードに分類された障害に対応する障害復旧手順書を復旧手順書ＤＢ１０８から取得する。障害原因判定ルール生成コンピュータ１０４は、取得した障害復旧手順書のファイル名を、図３の障害原因判定ルールテーブル３２０の復旧手順書３２５に格納する。このステップで障害原因判定ルールテーブル３２０が完成する。以上のステップで、登録障害分類木オブジェクト３００が完成する。
【００５２】
（ステップ７０８）
障害原因判定ルール生成コンピュータ１０４は、ステップ７０７までに作成した登録障害分類木オブジェクト３００を障害原因判定ルールＤＢ１０６に登録する。
【００５３】
（障害原因判定ルールの変化を検知する動作の詳細）
図１０に、障害原因判定ルール変化検知プログラム４１１を通じて実行される障害原因判定ルールの変化検知プロセスの概要を示す。
【００５４】
（ステップ１０００）
このプログラムは、表示装置４３１に表示される障害原因判定ルール変化検知プログラム画面５００（図５）の最小イベントブロックサポート率入力部５０１にサポート率、最小有効属性数入力部５０２に有効属性数、時間窓幅入力部５０３に時間が入力された後、開始ボタン５０５に対するクリック操作が検出されることで開始される。ここでのクリック操作は、障害原因判定ルール変化検出コンピュータ１０７を構成する入力装置４３０に対するユーザ操作を通じて入力される。障害原因判定ルール変化検知プログラム４１１は、障害原因判定ルール変化検知コンピュータ１０７で実行される。
【００５５】
（ステップ１００１）
障害原因判定ルール変化検知プログラム４１１は、該当する操作入力を検出すると、最小イベントブロックサポート率入力部５０１、最小有効属性数入力部５０２、時間窓幅入力部５０３に入力された数値を読み取り、ＲＡＭ４１０の作業領域４１２に格納する。更に、障害原因判定ルール変化検知プログラム４１１は、通信装置４３２を介して障害原因判定ルールＤＢ１０６から登録障害分類木オブジェクト３００を取得し、一時的にハードディスク駆動装置４２０のデータ格納部４２２に保存した後、ＲＡＭ４１０の作業領域４１２に格納する。
【００５６】
（ステップ１００２）
障害原因判定ルール変化検知プログラム４１１は、一時障害分類木オブジェクト集合１１００（図１１）を作成する。一時障害分類木オブジェクト集合１１００は、障害解析に使用中の障害原因判定ルールの変更を検出するため、一時的に作成されるオブジェクトの集合である。
【００５７】
障害原因判定ルール変化検知プログラム４１１は、ステップ１００１で取得した登録障害分類木オブジェクト３００を一時障害分類木オブジェクト１１１０（図１１）に変換し、一時障害分類木オブジェクト集合１１００に格納する。
【００５８】
登録障害分類木オブジェクト３００から一時障害分類木オブジェクト１１１０への変換は、登録障害分類木オブジェクト３００を構成する障害分類木３１０、障害原因判定ルールテーブル３２０及び障害ノードテーブル３３０のそれぞれを、一時障害分類木オブジェクト１１１０の障害分類木１１２０、障害原因判定ルールテーブル１１４０、障害ノードテーブル１１５０に代入する処理と、一時障害分類木オブジェクト１１１０の重み１１３０に値「１」を設定する処理とによって実現する。
【００５９】
（ステップ１００３）
障害原因判定ルール変化検知プログラム４１１は、監視サーバ１０２からイベントを受信すると、イベントブロックを作成してその特徴を抽出する。イベントブロックの作成処理及び特徴抽出処理の内容は、図７に示すステップ７０２及びステップ７０３の内容と同様である。なお、監視サーバ１０２からのイベントは、通信装置４３２を通じて取得される。
【００６０】
（ステップ１００４）
障害原因判定ルール変化検知プログラム４１１は、ステップ１００３で抽出されたイベントブロックの特徴を訓練データとして、一時障害分類木オブジェクト集合１１００内の全ての一時障害分類木オブジェクト１１１０を更新する。以下、一時障害分類木オブジェクト１１１０の更新方法を詳細に説明する。
【００６１】
（障害分類木、障害原因判定ルールテーブル、障害ノードテーブルの更新）
最初に、障害原因判定ルール変化検知プログラム４１１は、図５の障害原因判定ルール変化検知プログラム画面５００の時間窓幅入力部５０３に入力された時間窓幅を取得する。次に、当該プログラムは、一時障害原因オブジェクト１１１０の障害ノードテーブル１１５０から現在の日時を起点として時間窓幅内に含まれるイベントを取得する。取得したイベントから図７のステップ７０２からステップ７０７の手順に従い、障害分類木１１２０、障害原因判定ルールテーブル１１４０、障害ノードテーブル１１５０を作成する。このとき、図５の障害原因判定ルール変化検知プログラム画面５００で入力された最小イベントブロックサポート率、最小有効属性数を考慮する。
【００６２】
（重みの更新）
次に、障害原因判定ルール変化検知プログラム４１１は、次の２つの指標を利用して、一時障害分類木オブジェクト選択用の重み１１３０を計算する。このとき、事前に与えられた閾値以下の重みをもつ一時障害分類木オブジェクト１１１０は削除する。
【００６３】
（１）カテゴリーユーティリティ
概念クラスタリングＣＯＢＷＥＢは、非特許文献１の１４７頁の「式３−３」で定義されたカテゴリーユーティリティ（Category Utility）が最大になるように、分類木である概念木を作成する。障害原因判定ルール変化検知プログラム４１１は、一時障害分類木オブジェクト１１１０の障害分類木１１２０に対して当該数値計算を適用し、算出された値を重みとする。
【００６４】
（２）障害ノードへの適合度
ただし、カテゴリーユーティリティは一時障害分類木オブジェクト１１１０における障害分類木１１２０の全体を評価する指数であり、ステップ１００３で作成した新しい変化を伴っている可能性のある最新のイベントブロックの影響が反映され難い。このため、カテゴリーユニットだけの指標では変化の検知が遅れてしまう。
【００６５】
そこで、最新のイベントブロックと、当該イベントブロックが分類された障害ノードとの適合度を計算する。最新のイベントブロックにおいて、ｉ番目の属性のうち最も頻出する属性値をa1、次に頻出する属性値をa2とすると、適合度は（１）式によって計算することができる。
【００６６】
【数１】
0005514643.tif 000002
【００６７】
ここで、Nev は、障害ノード内に分類されるイベントブロック数の総数である。Nattはイベントの属性数である。本明細書の例の場合、図２に示すように（種類、ソース、イベント番号、ユーザ、コンピュータ）の５個である。また、Pa(i,j)(a1,a2)は、障害ノードに分類されるイベントブロック内において、イベントのｊ番目の属性のうち最も頻出する属性値がa1で、次に頻出する属性値がa2であるイベントブロックが出現する確率を意味している。
【００６８】
例えば、障害ノード内に１０個のイベントブロックがあり、属性「種類」に関して、イベントブロック内で最も頻出する属性値と次に頻出する属性値のペアが（「エラー」,「致命的」）が５個、（「エラー」,「警戒」）が３個、（「致命的」,「警戒」）が２個の場合、Pa(i,j)(a1,a2)は、
【数２】
0005514643.tif 000003
は上記のよう与えられる。
【００６９】
（ステップ１００５）
障害原因判定ルール変化検知プログラム４１１は、一時障害分類木オブジェクト集合１１００から最も重い重み１１３０を持つ一時障害分類木オブジェクト１１１０を選択し、それと登録障害分類木オブジェクト３００と比較する。オブジェクト同士が一致する場合、障害原因判定ルール変化検知プログラム４１１は何もせず、ステップ１００３に戻る。一方、オブジェクト同士が一致しない場合、障害原因判定ルール変化検知プログラム４１１は、ステップ１００６を実行する。
【００７０】
なお、障害原因判定ルール変化検知プログラム４１１は、障害分類木オブジェクト同士を比較する際、まず最初に障害分類木同士を比較し、障害ノード間の対応関係の有無を判断する。次に、障害原因判定ルール変化検知プログラム４１１は、対応する障害ノードに設定された障害原因判定ルール同士を比較する。
【００７１】
この際、障害原因判定ルール変化検知プログラム４１１は、比較処理に先立って、登録障害分類木オブジェクト３００の障害ノードテーブル３３０から各障害ノードに対するイベントブロックを取得し、これらを一時障害分類木オブジェクト１１１０の障害分類木１１２０に従って分類する。一時障害分類木オブジェクトは、最新のイベントブロックに基づいて作成されているが、分類対象のイベントブロックを登録障害分類木オブジェクト３００と共通化することで障害ノード間の対応関係の変化の有無の比較を可能とする。
【００７２】
（ステップ１００６）
このステップは、ステップ１００５で、登録障害分類木オブジェクト３００と一時障害分類木オブジェクト１１１０が一致しない場合に実行される。
【００７３】
障害原因判定ルール変化検知プログラム４１１は、ステップ１００５で選択された一時障害分類木オブジェクト１１１０と登録分類木オブジェクト３００の間で生じた変化の原因の違いを検知する。変化の原因が障害ノードの消失と予測された場合、障害原因判定ルール変化検知プログラム４１１は、ステップ１００８を実行する。一方、変化の原因が障害原因判定ルールの変化と予測された場合、障害原因判定ルール変化検知プログラム４１１は、ステップ１００９を実行する。変化の原因がこれらのいずれでもない場合、障害原因判定ルール変化検知プログラム４１１は何もせず、ステップ１００９に進む。
【００７４】
ここで、障害原因判定ルール変化検知プログラム４１１は、（１）障害ノードの消失及び（２）障害原因判定ルールの変化の検知を以下のように行う。
【００７５】
（１）障害ノードの消失検知
図１２−１に、障害ノードの消失検知の具体例を説明する図を示す。
図１２−１の(1) は、２００９年１月〜３月のイベントから作成された登録障害分類木オブジェクト３００の障害分類木１２００である。「障害ノード２」１２０１には、図１２−２の(A-1) に示すように、障害原因判定ルール１２２０が設定されている。
【００７６】
図１２−１の（2） は、２００９年１０月〜１２月のイベントから作成された一時障害分類木オブジェクト１１１０の障害分類木１２１０である。この一時障害分類木オブジェクト１１１０は、ステップ１００５で、登録分類木オブジェクト３００との比較のために、一時障害分類木オブジェクト集合１１００の中から選択されたものである。
【００７７】
まず、障害原因判定ルール変化検知プログラム４１１は、障害分類木１２００の木構造と障害分類木１２１０の木構造を比較する。図１２−１の場合、障害分類木１２００には存在した「障害ノード２」１２０１が、障害分類木１２１０には存在していない。この場合、障害原因判定ルール変化検知プログラム４１１は、障害ノードが消失したと予測（判定）する。このことは、「障害ノード２」１２０１に属していたイベントオブジェクトが、一時障害分類木オブジェクト１１１０の障害分類木１２１０のいずれの障害ノードにも分類されないことを意味する。
【００７８】
（２）障害原因判定ルールの変化検知
図１３−１に、障害原因判定ルールの変化検知の具体例を説明する図を示す。
図１３−１の（1） は、２００９年１月から３月のイベントから作成された登録障害分類木オブジェクト３００の障害分類木１３００である。「障害ノード１−１」１３０１には、図１３−２の(A-1) に示すように、障害原因判定ルール１３２０が設定されている。
【００７９】
図１３−１の（2） は、２００９年１０月から１２月のイベントから作成された一時障害分類木オブジェクト１１１０の障害分類木１３１０である。「障害ノード１−１’」１３１１には、図１３−２の（B-1） に示すように、障害原因判定ルール１３３０が設定されている。この一時障害分類木オブジェクト１１１０は、ステップ１００５で、登録分類木オブジェクト３００との比較のために、一時障害分類木オブジェクト集合１１００の中から選択されたものである。
【００８０】
まず、障害原因判定ルール変化検知プログラム４１１は、障害分類木１３００と障害分類木１３１０を比較する。この例の場合、障害分類木１３００の木構造と障害分類木１３１０の木構造は同じである。従って、障害原因判定ルール変化検知プログラム４１１は、障害ノード毎にそれぞれに属するイベントブロックを一時障害分類木オブジェクトの障害分類木１３１０の特徴に従って分類し、いずれの障害ノードに属するか判定する。ある障害ノードに属する全てのイベントブロックが割り当てられる障害ノードが、一時障害分類木オブジェクトの障害分類木１３１０のある障害ノードに分類された場合、障害原因判定ルール変化検知プログラム４１１は、分類元の障害ノードと分類先の障害ノードは対応関係にあると判定する。
【００８１】
図１３−１の場合、登録障害分類木オブジェクト３００の障害ノードテーブル３３０に格納されている「障害ノード１−１」１３０１と、一時障害分類木オブジェクト１１０の「障害ノード１−１’」１３１１とが対応関係にあると判定されたものとする。
【００８２】
次に、障害原因判定ルール変化検知プログラム４１１は、「障害ノード１−１」１３０１の障害原因判定ルール１３２０と、「障害ノード１−１’」１３１１の障害原因判定ルール１３３０とを比較する。この比較により違いが検出された場合、障害原因判定ルール変化検知プログラム４１１は、障害原因判定ルールが変化したと判定する。
【００８３】
図１３−２の場合、障害原因判定ルール１３２０を構成する判定イベントの５番目のイベントの属性「コンピュータ」の属性値は「server8」１３２１である。一方、障害原因判定ルール１３３０を構成する判定イベントの５番目のイベントの属性「コンピュータ」の属性値は「server25」１３３１である。すなわち、属性値が変化している。この場合、障害原因判定ルール変化検知プログラム４１１は、障害原因判定ルールが変化したと判定する。
【００８４】
（ステップ１００７）
このステップは、ステップ１００６で、「障害ノードの消失」と判定された場合に実行される。
【００８５】
障害原因判定ルール変化検知プログラム４１１は、「障害ノードの消失」の原因を予測し、その予測に基づいて一時障害分類木オブジェクト１１１０を生成する。
【００８６】
予測に基づく一時障害分類木オブジェクト１１１０の生成方法を図１２−１及び図１２−２の具体例に基づいて説明する。図１２−１の例では、登録障害分類木オブジェクト３００の障害分類木１２００に属する「障害ノード２」１２０１が一時障害分類木オブジェクト１１０１の障害分類木１２１０では消失している。これは、「障害ノード２」１２０１に関わるＩＴサービスが削除されたためと予測できる。すなわち、「障害ノード２」１２０１に設定された障害原因判定ルール１２２０の属性「ソース」の属性値「process71」と「process39」による障害は、今後発生しないと考えられる。
【００８７】
この場合、障害原因判定ルール変化検知プログラム４１１は、ステップ１００５で選択した一時障害分類木オブジェクト１１１０の障害ノードテーブル１１５０から、属性「ソース」の属性値が「process71」と「process39」以外のイベントを取得する。次に、これら取得されたイベントを対象とし、図７のステップ７０２からステップ７０７の手順に従って、障害分類木、障害原因判定ルール及び障害ノードテーブルを作成する。このとき、図５の障害原因判定ルール変化検知プログラム画面５００で入力された最小イベントブロックサポート率と最小有効属性数を考慮する。
【００８８】
最後に、新規の一時障害分類木オブジェクト１１１０を作成し、障害分類木１１２０、障害原因判定ルールテーブル１１４０及び障害ノードテーブル１１５０のそれぞれに、作成した障害分類木、障害原因判定ルール、障害ノードテーブルを格納する。このとき、重み１１３０には「１」を設定する。作成した一時障害分類木オブジェクト１１１０は、一時障害分類木オブジェクト集合１１００に追加する。
【００８９】
（ステップ１００８）
このステップは、ステップ１００６で、「障害原因判定ルールの変化」と判定された場合に実行される。
【００９０】
障害原因判定ルール変化検知プログラム４１１は、障害原因判定ルールの変化の原因を予測し、その予測に基づく一時障害分類木オブジェクト１１１０を生成する。
【００９１】
予測に基づく一時障害分類木オブジェクト１１１０の生成方法を図１３−１及び図１３−２の具体例に基づいて説明する。図１３−１の例では、登録障害分類木オブジェクト３００の障害分類木１３００を構成する「障害ノード１−１」１３０１と、一時障害分類木オブジェクト１１００の障害分類木１３１０を構成する「障害ノード１−１’」１３１１とが対応している。また、それぞれの障害ノードに対する障害原因判定ルール１３２０と１３３０とを比較すると、５番目の判定イベントの属性「コンピュータ」の属性値が「server8」１３２１から「server25」１３３１に変化している。これは、「server8」のコンピュータがハードウェア故障などの理由により、「server25」のコンピュータに置き換えられたためと予測できる。
【００９２】
この場合、障害原因判定ルール変化検知プログラム４１１は、ステップ１００５で選択した一時障害分類木オブジェクト１１１０の障害ノードテーブル１１５０から全てのイベントを取得し、属性「コンピュータ」の属性値が「server8」である全てのイベントの属性「コンピュータ」に属性値「server25」を設定する。
【００９３】
次に、これら修正されたイベントを対象とし、図７のステップ７０２からステップ７０７の手順に従って、障害分類木、障害原因判定ルール及び障害ノードテーブルを作成する。このとき、図５の障害原因判定ルール変化検知プログラム画面５００で入力された最小イベントブロックサポート率と最小有効属性数を考慮する。
【００９４】
最後に、新規の一時障害分類木オブジェクト１１１０を作成し、障害分類木１１２０、障害原因判定ルール１１４０及び障害ノードテーブル１１５０のそれぞれに、作成した障害分類木、障害原因判定ルール、障害ノードテーブルを格納する。このとき、重み１１３０には「１」を設定する。作成した一時障害分類木オブジェクト１１１０は、一時障害分類木オブジェクト集合１１００に追加する。
【００９５】
（ステップ１００９）
障害原因判定ルール変化検知プログラム４１１は、通信装置４３２を介して障害原因判定ルールＤＢ１０６の登録障害分類木オブジェクト３００を、ステップ１００５で選択した一時障害分類木オブジェクト１１１０で置換する。置換方法は、一時障害分類木オブジェクト１１１０の障害分類木１１２０、障害原因判定ルールテーブル１１４０、障害ノートテーブル１１５０のそれぞれを、登録障害分類木オブジェクト３００の障害分類木３１０、障害原因判定ルール３２０、障害ノードテーブル３３０に代入することで行う。
【００９６】
なお、ステップ１００５で選択した一時障害分類木オブジェクト１１１０には、ステップ１００７で作成された一時障害分類木オブジェクト、ステップ１００８で作成された一時障害分類木オブジェクトも含まれる。
【００９７】
（まとめ）
本実施形態の動作は以下の順番に進行する。
（１）システム障害を監視対象とする監視サーバが生成したイベントを逐次取得し、イベントを障害毎にまとめたイベントブロックを作成する（ステップ１００３）。
（２）現処理時点から所定の時間窓幅内に取得したイベントブロックを訓練データとして取得し、当該イベントブロックに基づいて一時障害分類木オブジェクトの集合を更新する（ステップ１００４）。
（３）更新された一時障害分類木オブジェクトの集合の中から選択用の重みが最も重い一時障害分類木オブジェクトを選択し、当該選択された一時障害分類木オブジェクトと現行の障害原因判定ルールに関連する登録障害分類木オブジェクトとの比較によりオブジェクト間の変化を検知する（ステップ１００５）。
（４）ステップ１００５で両オブジェクトが一致しないと検知された場合、両オブジェクト間の違いから変化の原因を予測し、予測に基づいた一時障害分類木オブジェクトを作成して一時障害分類木オブジェクトの集合に追加する（ステップ１００６〜１００８）。
（５）ステップ１００５で両オブジェクトが一致しないと検知された場合、当該ステップ１００５で選択された一時障害分類木オブジェクト又はステップ１００７又は１００８で作成された一時障害分類木オブジェクトによって登録障害分類木オブジェクトを置き換える（ステップ１００９）。
【００９８】
このように、本実施形態の場合には、使用中の障害分類木と一時的に作成された障害分類木同士の比較及び使用中の障害原因判定ルールと一時的に作成された障害原因判定ルール同士の比較に基づいて変化の原因を予測し、原因が予測できた場合には当該原因の内容に従って判定イベントの特定の属性値を一斉に書き換える。なお、原因が予測できない場合には、現時点の一時障害分類木オブジェクトの内容に、登録分類木オブジェクトの内容を書き換える。
【００９９】
結果的に、少なくとも障害分類木オブジェクトの変化が検知された時点において、登録分類木オブジェクトの内容を変更できる。しかも、障害分類木オブジェクトの変化の原因を予測できる場合には、予測された原因に応じて関連する全ての判定イベントの属性値を一斉に書き換えることができる。このことは、出現頻度の高い障害が出現頻度の低い障害と関連がある場合に、出現頻度の高い発生周期で出現頻度の低い障害に対応する障害原因判定ルールを事前に変更できることを意味する。
【符号の説明】
【０１００】
１０１…監視対象サーバ群
１０２…監視サーバ
１０３…ログデータベース（ＤＢ）
１０４…障害原因判定ルール生成コンピュータ
１０５…障害原因解析コンピュータ
１０６…障害原因判定ルールＤＢ
１０７…障害原因判定ルール変化検知コンピュータ
１０８…復旧手順書データベース（ＤＢ）
１０９…復旧手順書閲覧コンピュータ
【図１】
0005514643.tif 000004
【図２】
0005514643.tif 000005
【図３−１】
0005514643.tif 000006
【図３−２】
0005514643.tif 000007
【図３−３】
0005514643.tif 000008
【図４】
0005514643.tif 000009
【図５】
0005514643.tif 000010
【図６】
0005514643.tif 000011
【図７】
0005514643.tif 000012
【図８】
0005514643.tif 000013
【図９】
0005514643.tif 000014
【図１０】
0005514643.tif 000015
【図１１】
0005514643.tif 000016
【図１２−１】
0005514643.tif 000017
【図１２−２】
0005514643.tif 000018
【図１３−１】
0005514643.tif 000019
【図１３−２】
0005514643.tif 000020