(57)【要約】      （修正有）【課題】内部監視の結果に基づいて情報処理システムの障害を検知することができる障害監視装置を提供する。【解決手段】障害監視装置１００は、情報処理システム２００に対して定期的にアクセスし、その応答の成否を時系列に蓄積する外部監視手段１０と、情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段２０と、情報処理システムの障害を判定する障害判定手段３０とを含む。障害判定手段は、応答の成否の時系列情報を外部メトリクスデータに変換する手段３２と、内部状態の時系列情報を内部メトリクスデータに変換する手段３４と、外部メトリクスデータの値を出力とし、該値に時間的に対応する内部メトリクスデータの値を入力とする教師データを生成する手段３５と、教師データを使用して情報処理システムの障害を判定するための障害判定条件を機械学習する学習器３６と、障害判定条件が設定される判定器３７とを含む。【選択図】図２
2018156348.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムの障害を検知するための障害監視装置であって、
前記情報処理システムに対して定期的にアクセスし、その応答の成否を時系列に蓄積する外部監視手段と、
前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段と、
前記情報処理システムの障害を判定する障害判定手段と、
を含み、
前記障害判定手段は、
前記応答の成否の時系列情報を外部メトリクスデータに変換する手段と、
前記内部状態の時系列情報を内部メトリクスデータに変換する手段と、
前記外部メトリクスデータの値を出力とし、該値に時間的に対応する前記内部メトリクスデータの値を入力とする教師データを生成する手段と、
前記教師データを使用して前記情報処理システムの障害を判定するための障害判定条件を機械学習する学習器と、
前記障害判定条件が設定される判定器であって、前記内部メトリクスデータを入力として受け取り、前記情報処理システムの障害に係る判定結果を出力する判定器と、
を含む障害監視装置。
【請求項２】
前記教師データを生成する手段は、
前記外部メトリクスデータの１の値を出力とし、該値に時間的に対応する前記内部メトリクスデータの２以上の値の代表値を入力とする教師データを生成する、
請求項１に記載の障害監視装置。
【請求項３】
障害監視装置は、
ユーザによるアクセス操作を疑似的に再現するアクセスと応答期待値の組み合せを実行順に記述した監視シナリオを備え、
前記外部監視手段は、
前記情報処理システムに対して各前記アクセスを順番に実行し、該アクセスに対する応答結果と該アクセスに係る前記応答期待値の比較に基づいて前記応答の成否を判定する、
請求項１または２に記載の障害監視装置。
【請求項４】
情報処理システムの障害を検知するための障害監視装置であって、
前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段と、
前記情報処理システムの障害を判定する障害判定手段と、
を含み、
前記障害判定手段は、
前記内部状態を内部メトリクスデータに変換する手段と、
所定の教師データを使用した機械学習により取得された障害判定条件が設定される判定器であって、前記内部メトリクスデータを入力として受け取り、前記情報処理システムの障害に係る判定結果を出力する判定器を含み、
前記所定の教師データは、
外部メトリクスデータの値を出力とし、該値に時間的に対応する内部メトリクスデータの値を入力とする教師データであって、
前記外部メトリクスデータは、
所定の情報処理システムに対して定期的に実行したアクセスに対する応答の成否に係るメトリクスの時系列情報であり、
前記内部メトリクスデータは、
前記所定の情報処理システムを構成する各要素の内部状態に係るメトリクスの時系列情報である、
障害監視装置。
【請求項５】
情報処理システムの障害を検知するための障害監視システムであって、
前記情報処理システムに対して定期的にアクセスし、その応答の成否を時系列に蓄積する外部監視手段と、
前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段と、
前記情報処理システムの障害を判定する障害判定手段と、
を含み、
前記障害判定手段は、
前記応答の成否の時系列情報を外部メトリクスデータに変換する手段と、
前記内部状態の時系列情報を内部メトリクスデータに変換する手段と、
前記外部メトリクスデータの値を出力とし、該値に時間的に対応する前記内部メトリクスデータの値を入力とする教師データを生成する手段と、
前記教師データを使用して前記情報処理システムの障害を判定するための障害判定条件を機械学習する学習器と、
を含む障害監視システム。
【請求項６】
情報処理システムの障害を検知するための障害監視システムであって、
前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段と、
前記情報処理システムの障害を判定する障害判定手段と、
を含み、
前記障害判定手段は、
前記内部状態を内部メトリクスデータに変換する手段と、
所定の教師データを使用した機械学習により取得された障害判定条件が設定される判定器であって、前記内部メトリクスデータを入力として受け取り、前記情報処理システムの障害に係る判定結果を出力する判定器を含み、
前記所定の教師データは、
外部メトリクスデータの値を出力とし、該値に時間的に対応する内部メトリクスデータの値を入力とする教師データであって、
前記外部メトリクスデータは、
所定の情報処理システムに対して定期的に実行したアクセスに対する応答の成否に係るメトリクスの時系列情報であり、
前記内部メトリクスデータは、
前記所定の情報処理システムを構成する各要素の内部状態に係るメトリクスの時系列情報である、
障害監視システム。
【請求項７】
情報処理システムの障害を検知するためのコンピュータを、
前記情報処理システムに対して定期的にアクセスし、その応答の成否を時系列に蓄積する外部監視手段、
前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段、
前記情報処理システムの障害を判定する障害判定手段、
として機能させるためのプログラムであって、
前記障害判定手段は、
前記応答の成否の時系列情報を外部メトリクスデータに変換する手段と、
前記内部状態の時系列情報を内部メトリクスデータに変換する手段と、
前記外部メトリクスデータの値を出力とし、該値に時間的に対応する前記内部メトリクスデータの値を入力とする教師データを生成する手段と、
前記教師データを使用して前記情報処理システムの障害を判定するための障害判定条件を機械学習する学習器と、
を含む、プログラム。
【請求項８】
情報処理システムの障害を検知するためのコンピュータを、
前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段、
前記情報処理システムの障害を判定する障害判定手段、
として機能させるためのプログラムであって、
前記障害判定手段は、
前記内部状態を内部メトリクスデータに変換する手段と、
所定の教師データを使用した機械学習により取得された障害判定条件が設定される判定器であって、前記内部メトリクスデータを入力として受け取り、前記情報処理システムの障害に係る判定結果を出力する判定器を含み、
前記所定の教師データは、
外部メトリクスデータの値を出力とし、該値に時間的に対応する内部メトリクスデータの値を入力とする教師データであって、
前記外部メトリクスデータは、
所定の情報処理システムに対して定期的に実行したアクセスに対する応答の成否に係るメトリクスの時系列情報であり、
前記内部メトリクスデータは、
前記所定の情報処理システムを構成する各要素の内部状態に係るメトリクスの時系列情報である、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害監視装置、障害監視システムおよびプログラムに関する。
【背景技術】
【０００２】
従来、複数のサーバやモジュールから構成される情報処理システムの障害をネットワークを介して遠隔監視する障害監視システムが知られている。
【０００３】
例えば、特許文献１は、情報処理システムの構成要素とログに出力されるメッセージパターンの関連性を事前学習し、運用時において、出力されるメッセージパターンと学習したメッセ―ジパターンを照合することにより、構成要素が異なる情報処理システムの障害を適切に検知することができる障害検知装置を開示する。
【０００４】
ここで、情報処理システムを遠隔監視する手法には、外部から定期的に情報処理システムにアクセスし、その応答結果を元に判定する外部監視（例えば、死活監視やサービス監視など）と、情報処理システムを構成する各要素の内部状態を取得して判定する内部監視（例えば、リソース監視やログ監視など）という２つの手法がある。
【０００５】
内部監視によれば、情報処理システムを構成する各要素の内部状態（例えば、ＣＰＵ使用率、ディスク空き容量、プロセス数など）を所定の閾値に照らすことで、個々の要素の状態を把握することができるが、情報処理システム全体として見た場合、それが正常に動作しているかどうかは、個々の要素の状態から一義的に判定することができない。この点、外部監視によれば、情報処理システムに発生した障害を直接的に検知することができるが、定期的なアクセスに伴って情報処理システムに負荷が生じる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上記に鑑みてなされたものであり、内部監視の結果に基づいて情報処理システムの障害を検知することができる障害監視装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明者は、内部監視の結果に基づいて情報処理システムの障害を検知することができる障害監視装置の構成につき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
【０００８】
すなわち、本発明によれば、情報処理システムの障害を検知するための障害監視装置であって、前記情報処理システムに対して定期的にアクセスし、その応答の成否を時系列に蓄積する外部監視手段と、前記情報処理システムを構成する各要素の内部状態を時系列に蓄積する内部監視手段と、前記情報処理システムの障害を判定する障害判定手段と、を含み、前記障害判定手段は、前記応答の成否の時系列情報を外部メトリクスデータに変換する手段と、前記内部状態の時系列情報を内部メトリクスデータに変換する手段と、前記外部メトリクスデータの値を出力とし、該値に時間的に対応する前記内部メトリクスデータの値を入力とする教師データを生成する手段と、前記教師データを使用して前記情報処理システムの障害を判定するための障害判定条件を機械学習する学習器と、前記障害判定条件が設定される判定器であって、前記内部メトリクスデータを入力として受け取り、前記情報処理システムの障害に係る判定結果を出力する判定器と、を含む障害監視装置が提供される。
【発明の効果】
【０００９】
上述したように、本発明によれば、内部監視の結果に基づいて情報処理システムの障害を検知することができる障害監視装置が提供される。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の障害監視装置の構成図。
【図２】本実施形態の障害監視装置の機能ブロック図。
【図３】本実施形態の監視シナリオを示す図。
【図４】本実施形態の内部監視設定を示す図。
【図５】本実施形態の障害監視装置が実行する処理を示すフローチャート。
【図６】本実施形態の外部監視情報を示す図。
【図７】本実施形態の障害監視装置が実行する処理を示すフローチャート。
【図８】本実施形態の内部状態情報を示す図。
【図９】本実施形態の障害監視装置が実行する処理を示すフローチャート。
【図１０】本実施形態の外部および内部メトリクスデータを示す図。
【図１１】本実施形態の判定エンジン（ニューラルネットワーク）を示す図。
【図１２】本実施形態の障害監視システムのシステム構成図。
【図１３】本実施形態の障害監視装置（コンピュータ）のハードウェア構成図。
【発明を実施するための形態】
【００１１】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【００１２】
図１は、本発明の実施形態である障害監視装置１００の概略構成を示す。本実施形態の障害監視装置１００は、複数のサーバやモジュールから構成される情報処理システム２００の状態を遠隔監視するための装置であり、障害監視装置１００と監視対象となる情報処理システム２００は、ＬＡＮ、ＶＡＮなどとして参照されるネットワーク５０を介して相互通信可能に接続されている。
【００１３】
図１に示すように、本実施形態の障害監視装置１００は、外部監視手段１０と、内部監視手段２０と、障害判定手段３０とを含んで構成されている。
【００１４】
外部監視手段１０は、情報処理システム２００に対して外部監視を実行する手段であり、ネットワーク５０を介して情報処理システム２００に定期的にアクセス処理を実行し、その応答結果を受信する。ここで、外部監視としては、ＵＲＬ監視、ＰＩＮＧ監視、ＦＴＰ監視、ＰＯＰ監視、ＳＭＴＰ監視、ポート監視などを挙げることができる。外部監視手段１０は、受信した応答結果から外部監視情報（後述する）を生成して障害判定手段３０へ送る。
【００１５】
内部監視手段２０は、情報処理システム２００に対して内部監視を実行する手段であり、ネットワーク５０を介して情報処理システム２００を構成する各要素（サーバ、モジュール）の内部状態を収集する。ここで、内部監視としては、ＣＰＵ監視、ディスク監視、プロセス監視、ログ監視などを挙げることができ、内部状態としては、ＣＰＵ使用率、ディスク空き容量、指定されたプロセスの有無やプロセスの数、ログファイルに出力されるキーワードの有無などを挙げることができる。内部監視手段２０は、収集した内部状態から内部状態情報（後述する）を生成して障害判定手段３０へ送る。
【００１６】
障害判定手段３０は、情報処理システム２００の障害を判定する手段であり、外部監視手段１０から受領した外部監視情報と、内部監視手段２０から受領した内部状態情報に基づいて障害判定条件を学習し、学習した障害判定条件に基づいて情報処理システム２００の障害を判定する。
【００１７】
以上、本実施形態の障害監視装置１００の概略構成を説明してきたが、続いて、上述した各手段の機能構成を図２に基づいて説明する。
【００１８】
外部監視手段１０は、外部監視エンジン１２と、記憶手段１４とを含んで構成されている。ここで、記憶手段１４には、後述する監視シナリオが格納されており、外部監視エンジン１２は、記憶手段１４に格納された監視シナリオに基づいて監視対象となる情報処理システム２００に対して定期的にアクセス処理を実行し、情報処理システム２００からの応答を受信する。そして、外部監視エンジン１２は、情報処理システム２００からの応答結果に基づいて外部監視情報を生成し、障害判定手段３０に送る。
【００１９】
図３は、記憶手段１４に格納される監視シナリオ３００を例示的に示す。監視シナリオ３００は、ユーザによるアクセス操作を疑似的に再現するアクセス処理に必要な情報と応答期待値の組み合せを、その実行順に記述したものであり、図３に示すように、シナリオ番号を格納するためのフィールド３０１と、処理番号を格納するためのフィールド３０２と、監視対象にアクセスする通信プロトコルを格納するためのフィールド３０３と、監視対象のアドレスを格納するためのフィールド３０４と、監視対象にアクセスする際に必要なオプション情報（ユーザアカウント、ファイル名など）を格納するためのフィールド３０５と、正常時の応答期待値を格納するためのフィールド３０６とを含んで構成されている。
【００２０】
内部監視手段２０は、内部監視エンジン２２と、記憶手段２４とを含んで構成されている。ここで、記憶手段２４には、内部監視を行うための設定集である内部監視設定が格納されており、内部監視エンジン２２は、記憶手段２４に格納された内部監視設定に基づいて監視対象となる情報処理システム２００を構成する各要素（サーバ、モジュール）にアクセスして、それぞれの内部状態を収集する。なお、情報処理システム２００に監視エージェント２０２を常駐させている場合、内部監視エンジン２２は、監視エージェント２０２から内部状態を収集する。そして、内部監視手段２０は、収集した各種の内部状態に基づいて内部状態情報を生成し、障害判定手段３０に送る。
【００２１】
図４は、記憶手段２４に格納される内部監視設定４００を例示的に示す。図４に示すように、内部監視設定４００には、収集する内部状態（メモリ使用率、ログ出力、トラフィック…）に対応付けて、「監視対象」、「監視タイミング」、「待ち時間」、「再実行回数」、「検索文字列」、「出力形式」といった項目の設定値が記述されている。
【００２２】
障害判定手段３０は、外部監視情報変換エンジン３２と、内部状態情報変換エンジン３４と、教師データ生成手段３５と、学習エンジン３６と、判定エンジン３７と、記憶手段３８とを含んで構成されている。
【００２３】
外部監視情報変換エンジン３２は、外部監視手段１０から受領した外部監視情報を外部メトリクスデータ（後述する）に変換し、これを記憶手段３８に蓄積する。
【００２４】
内部状態情報変換エンジン３４は、内部監視手段２０から受領した内部状態情報を内部メトリクスデータ（後述する）に変換し、これを記憶手段３８に蓄積する。
【００２５】
教師データ生成手段３５は、記憶手段３８に蓄積された内部メトリクスデータと外部メトリクスデータに基づいて教師データを生成し、これを記憶手段３８に蓄積する。
【００２６】
学習エンジン３６は、教師あり機械学習を行う学習器であり、好ましくは、多層のニューラルネットワークである。学習エンジン３６は、記憶手段３８に蓄積された教師データを使用して障害判定条件を学習し、学習した障害判定条件を記憶手段３８に保管する。
【００２７】
判定エンジン３７は、学習エンジン３６と同じ構成を有する判定器である。運用時において、判定エンジン３７には、記憶手段３８から読み出した障害判定条件が設定され、判定エンジン３７は、内部状態情報変換エンジン３４が生成する内部メトリクスデータを入力として受け取り、情報処理システム２００の障害に係る判定結果を出力する。
【００２８】
以上、本実施形態の障害監視装置１００の機能構成について説明したが、本実施形態では、障害監視装置１００を構成するコンピュータが、所定のプログラムを実行することにより、上述した各手段として機能する。
【００２９】
続いて、上述した各機能手段が実行する処理の内容を順を追って説明する。
【００３０】
まず、外部監視手段１０（外部監視エンジン１２）が実行する処理の内容を図５に示すフローチャートに基づいて説明する。
【００３１】
まずステップ１０１では、監視シナリオ３００からシナリオを１つ読み込む。具体的には、監視シナリオ３００（図３参照）のレコードの中から、最も若いシナリオ番号が付された複数のレコードを読み込む。
【００３２】
続くステップ１０２では、先のステップ１０１で読み込んだ複数のレコードのうち、最も若い処理番号が付されたレコードの情報に基づいて、情報処理システム２００に対してアクセス処理を実行する。具体的には、該当するレコードのフィールド３０２に格納されるプロトコルに従い、必要に応じて、フィールド３０５に格納されるオプション情報を使用して、フィールド３０４に格納されるアドレスを宛先とするアクセス処理を実行する。
【００３３】
その後、所定時間、情報処理システム２００からの応答を待機した後に、続くステップ１０３で、応答を受信したか否かを判断する。その結果、応答を受信した場合は（ステップ１０３、Ｙｅｓ）、処理はステップ１０４に進み、応答を受信しなかった場合は（ステップ１０３、Ｎｏ）、処理はステップ１０８に進む。
【００３４】
続くステップ１０４では、情報処理システム２００から受信した応答結果に基づいて、その応答の成否と応答時刻を外部監視情報（後述する）に蓄積した後、処理はステップ１０５に進む。一方、続くステップ１０８では、「タイムアウト・エラー」を、同じく、外部監視情報に蓄積した後、処理はステップ１０５に進む。
【００３５】
図６は、外部監視情報５００を例示的に示す。外部監視情報５００は、外部監視の実行結果（応答の成否と応答時刻）を時系列に蓄積するためのデータ構造であり、一時記憶に保持される。外部監視情報５００は、図６に示すように、「シナリオ番号」を格納するためのフィールド５０１と、「処理番号」を格納するためのフィールド５０２と、「成否」を格納するためのフィールド５０３と、「応答時刻」を格納するためのフィールド５０４とを含む。
【００３６】
ここで、先のステップ１０４では、外部監視情報５００に新規のレコードを追加し、先のステップ１０２で実行したアクセス処理に係るレコードの「シナリオ番号」および「処理番号」を、追加したレコードのフィールド５０１および５０２に格納する。また、当該アクセス処理に係るレコードに格納された「応答期待値」と受信した応答結果を比較し、両者が一致する場合は、成（successl）をフィールド５０３に格納し、一致しない場合は、否（fail）をフィールド５０３に格納する。さらに、当該応答を受信した時刻を応答時刻としてフィールド５０４に格納する。
【００３７】
同様に、先のステップ１０８では、先のステップ１０２で実行したアクセス処理に係るレコードの「シナリオ番号」および「処理番号」をフィールド５０１および５０２に格納した上で、否（fail）をフィールド５０３に格納する。さらに、タイムアウトした時刻を応答時刻としてフィールド５０４に格納する。
【００３８】
続くステップ１０５では、先のステップ１０１で読み込んだシナリオを構成する処理のうち、実行していない次の処理があるか否かを判断する。その結果、次の処理がある場合は（ステップ１０５、Ｙｅｓ）、処理はステップ１０２に戻って、先のステップ１０１で読み込んだ複数のレコードのうち、次に若い処理番号が付されたレコードに基づいて、上述したのと同様の処理を実行する。以降、先のステップ１０１で読み込んだシナリオを構成する全ての処理が実行されるまで、ステップ１０２〜１０５を繰り返す。
【００３９】
その後、ステップ１０５の判断において、次の処理がないと判断した場合は（ステップ１０５、Ｎｏ）、処理はステップ１０６に進み、監視シナリオ３００に記述されたシナリオのうち、実行していない次のシナリオがあるか否かを判断する。その結果、次のシナリオがある場合は（ステップ１０６、Ｙｅｓ）、処理はステップ１０１に戻って、次に若いシナリオ番号が付された複数のレコードを読み込む。以降、監視シナリオ３００に記述された全てのシナリオが実行されるまで、ステップ１０１〜１０６の処理を繰り返す。その後、ステップ１０６の判断において、次のシナリオがないと判断した場合は（ステップ１０６、Ｎｏ）、処理はステップ１０７に進む。
【００４０】
続くステップ１０７では、一時記憶から外部監視情報５００を読み出して障害判定手段３０に送り、処理を終了する。なお、外部監視エンジン１２は、上述した一連の処理を定期的に実行する（たとえば、５分ごと）。
【００４１】
以上、外部監視手段１０が実行する処理の内容を説明してきたが、次に、内部監視手段２０（内部監視エンジン２２）が実行する処理の内容を図７に示すフローチャートに基づいて説明する。
【００４２】
まずステップ２０１では、記憶手段２４から内部監視設定４００（図４参照）を読み込む。
【００４３】
続くステップ２０２では、内部監視設定４００に記述された複数の監視対象（モジュール）のそれぞれに対して、設定された監視タイミングで内部状態を取得するための内部監視処理を実施する。
【００４４】
その後、所定時間、各モジュールからの応答を待機した後に、続くステップ２０３で、内部状態を取得したか否かを判断する。その結果、内部状態を取得した場合は（ステップ２０３、Ｙｅｓ）、処理はステップ２０４に進み、内部状態を取得しなかった場合は（ステップ２０３、Ｎｏ）、処理はステップ２０６に進む。
【００４５】
続くステップ２０４では、監視対象（モジュール）から取得した内部状態を、内部状態情報（後述する）に蓄積した後、処理はステップ２０５に進む。一方、続くステップ２０６では、「タイムアウト・エラー」を、同じく、内部状態情報に蓄積した後、処理はステップ２０５に進む。
【００４６】
図８は、内部状態情報６００を例示的に示す。内部状態情報６００は、内部監視処理で取得した内部状態を時系列に蓄積するためのデータ構造であり、一時記憶に保持される。内部状態情報６００は、図８に示すように、「監視対象」を格納するためのフィールド６０１と、「内部状態の種類」を格納するためのフィールド６０２と、「内部状態の値」を格納するためのフィールド６０３と、「取得時刻」を格納するためのフィールド６０４とを含む。
【００４７】
ここで、先のステップ２０４では、内部状態情報６００に新規のレコードを追加し、先のステップ２０２で実行した内部監視処理の実行先である監視対象をフィールド６０１に格納し、当該監視対象から取得した内部状態の種類をフィールド６０２に格納し、当該内部状態の値をフィールド６０３に格納し、当該内部状態を取得した時刻をフィールド６０４に格納する。同様に、先のステップ２０６では、先のステップ２０２で実行した内部監視処理の実行先である監視対象をフィールド６０１に格納し、当該監視対象から取得した内部状態の種類をフィールド６０２に格納し、監視対象ごとに指定したエラーを意味する、監視対象ごとに指定した値（ゼロ値、NULL値、NoData値、Error値等）をフィールド６０３に格納し、タイムアウトした時刻をフィールド６０４に格納する。
【００４８】
続くステップ２０５では、一時記憶から内部状態情報６００を読み出して障害判定手段３０に送る。以降、ステップ２０２〜２０５の処理を繰り返し実行する。
【００４９】
一方、情報処理システム２００に監視エージェント２０２を常駐させている場合、内部監視手段２０は、上述したステップ２０２〜２０５に並行して、ステップ２０７〜２０９を実行する。
【００５０】
まずステップ２０７では、監視エージェント２０２から送信される内部状態を待機し（ステップ２０７、Ｎｏ）、監視エージェント２０２から内部状態を取得すると（ステップ２０７、Ｙｅｓ）、処理はステップ２０８に進む。
【００５１】
続くステップ２０８では、監視エージェント２０２から取得した内部状態を、上述したのと同様の手順で、内部状態情報６００に蓄積した後、処理はステップ２０９に進む。
【００５２】
続くステップ２０９では、一時記憶から内部状態情報６００を読み出して障害判定手段３０に送る。以降、ステップ２０７〜２０９の処理を繰り返し実行する。
【００５３】
以上、内部監視手段２０が実行する処理の内容を説明してきたが、次に、障害判定手段３０が機械学習時に実行する処理の内容を図９（ａ）に示すフローチャートに基づいて説明する。
【００５４】
まずステップ３０１では、外部監視情報変換エンジン３２が、外部監視手段１０から受領した外部監視情報５００の各レコードの値を数値のメトリクスに変換することにより、外部メトリクスデータを生成する。具体的には、外部監視情報５００の各レコードのフィールド５０１の値（シナリオ番号）を十の桁とし、フィールド５０２の値（処理番号）を一の桁とした整数を「メトリクス１」とし、フィールド５０３の値（成否）に対応する二値（success：１／fail：０）を「メトリクス２」とする。その上で、上述した２つのメトリクス（「メトリクス１」、「メトリクス２」）にフィールド５０４の値（応答時刻）を対応付ける。なお、上述した桁数へのマッピングはあくまで説明のための例示であり、実際には、シナリオ数や処理数に応じて適切なマッピングを行うことになる。
【００５５】
図１０（ａ）は、上述した手順で生成される外部メトリクスデータ７００を例示的に示す。図１０（ａ）に示すように、外部メトリクスデータ７００においては、「メトリクス１」および「メトリクス２」が時刻（すなわち、外部監視の応答時刻）に対応付けられている。
【００５６】
続くステップ３０２では、内部状態情報変換エンジン３４が、内部監視手段２０から受領した内部状態情報６００の各レコードの値を数値のメトリクスに変換することにより、内部メトリクスデータを生成する。具体的には、フィールド６０４の値（取得時刻）が一致するＮ個（Ｎは１以上の整数）のレコードのフィールド６０３の値（内部状態の値）を、それぞれ、「メトリクス１」、「メトリクス２」、「メトリクス３」、「メトリクス４」…「メトリクスＮ」とした上で、Ｎ個のメトリクスにフィールド６０４の値（取得時刻）を対応付ける。
【００５７】
図１０（ｂ）は、上述した手順で生成される内部メトリクスデータ８００を例示的に示す。図１０（ｂ）に示すように、内部メトリクスデータ８００においては、Ｎ個のメトリクスが時刻（すなわち、内部状態の取得時刻）に対応付けられている。
【００５８】
続くステップ３０３では、教師データ生成手段３５が、内部メトリクスデータ８００に含まれる１のレコードの値を入力とし、外部メトリクスデータ７００に含まれる１のレコードの値を出力とする教師データを生成する。
【００５９】
具体的には、外部メトリクスデータ７００の各レコードに格納された時刻と内部メトリクスデータ８００の各レコードに格納された時刻を比較し、外部メトリクスデータ７００の１のレコードの時刻から見て、直近の時刻が格納された内部メトリクスデータ８００のレコードを選出し、この２つのレコードの値の組を教師データとする。
【００６０】
なお、本実施形態では、別法として、外部メトリクスデータ７００の１のレコードの時刻を起点とした過去の所定期間内（例えば、数秒内）の時刻が格納された内部メトリクスデータ８００のＭ個（Ｍは２以上の整数）のレコードを選出するようにしてもよい。この場合、選出したＭ個のレコードのそれぞれに含まれるＮ個のメトリクスのそれぞれの値について、適切な代表値（平均値、中央値、最大値、最小値など）を算出し、外部メトリクスデータ７００の１のレコードの値と算出したＮ個の代表値の組を教師データとする。すなわち、本実施形態では、外部メトリクスデータ７００に含まれる１の値を出力とし、当該値に時間的に対応する内部メトリクスデータの値を入力とすればよい。
【００６１】
続くステップ３０４では、学習エンジン３６が、先のステップ３０３で生成した教師データを使用して機械学習を実行する。図１１は、多層のニューラルネットワークとして構成された学習エンジン３６が、内部メトリクスデータ８００の１の値を入力とし、外部メトリクスデータ７００の１の値を出力とする教師データを使用して機械学習が実行される様子を模式的に示す。この場合、機械学習の実行により、ニューラルネットワークの隠れ層に障害判定条件が取得される。ここで、本実施形態における障害判定条件とは、下記（１）〜（４）の情報のセットを意味する。なお、下記（１）、（２）は、人為的に決定される設計事項であり、上述した教師データを使用して機械学習によって下記（３）、（４）の最適値が自動生成されることになる。
（１）ニューラルネットワークのネットワーク構造
（２）ノードの活性化関数
（３）重み値
（４）バイアス値
【００６２】
続くステップ３０５では、学習エンジン３６が、取得された障害判定条件を記憶手段３８に保存して、処理を終了する。
【００６３】
以上、障害判定手段３０が機械学習時に実行する処理の内容を説明してきたが、次に、障害判定手段３０が運用時に実行する処理の内容を図９（ｂ）に示すフローチャートに基づいて説明する。
【００６４】
運用時においては、学習エンジン３６と同じ多層のニューラルネットワークとして構成された判定エンジン３７に対して、学習によって取得された障害判定条件が設定されていることが前提となる。
【００６５】
まずステップ４０１では、内部状態情報変換エンジン３４が、機械学習時と同様の手順で、内部監視手段２０から受領した内部状態情報６００に基づいて内部メトリクスデータを生成する。具体的には、受領した内部状態情報６００の各レコードのフィールド６０４の値（取得時刻）が一致するＮ個のレコードのフィールド６０３の値（内部状態の値）を、それぞれ、「メトリクス１」、「メトリクス２」、「メトリクス３」、「メトリクス４」…「メトリクスＮ」とする。なお、運用時においては、Ｎ個のメトリクスに対してフィールド６０４の値（取得時刻）を対応付ける必要はない。
【００６６】
続くステップ４０２では、内部状態情報変換エンジン３４が、先のステップ４０１で生成した内部メトリクスデータを判定エンジン３７に入力する。
【００６７】
続くステップ４０３では、判定エンジン３７が判定結果を出力して、処理を終了する。ここで、ステップ４０３では、「メトリクス１（シナリオ番号＋処理番号）」と、「メトリクス２（success：１／fail：０）」が判定結果として出力される。仮に、ステップ４０３で、メトリクス２＝１が出力された場合、監視対象の情報処理システム２００が正常状態にあることが推定される。一方、仮に、ステップ４０３で、メトリクス２＝０が出力された場合、監視対象の情報処理システム２００に障害が発生していることが推定される。
【００６８】
以上、説明したように、本実施形態によれば、運用中は、内部監視の結果のみに基づいて情報処理システムの障害検知と総合的な影響度判定を行うことができるようになるので、外部監視に伴うコスト（監視システムの維持コストや監視対象に対するアクセス負荷）の低減が期待できる。また、本実施形態では、障害判定条件が自動的に学習されるので、従来の内部監視における煩雑な手間（各監視対象の内部状態に係る閾値の個別的な設定・調整）を省くことができるようになる。
【００６９】
以上、本実施形態の障害監視装置１００について説明してきたが、本実施形態では、図２に示した各機能手段を１台のコンピュータ上で実現してもよいし、各機能手段を適切な単位でネットワーク上の２以上のコンピュータに分散配置することによって、ネットワークシステムとして実現してもよい。
【００７０】
図１２は、障害監視装置１００と同等の機能を有するネットワークシステムとして構成された障害監視システム１００ｓを例示的に示す。障害監視システム１００ｓは、上述した外部監視手段１０と同等の機能を有する外部監視システム１０ｓと、上述した内部監視手段２０と同等の機能を有する内部監視システム２０ｓと、上述した障害判定手段３０と同等の機能を有する障害判定システム３０ｓとを含み、各システム１０ｓ、２０ｓ、３０ｓは、ネットワーク５０を介して相互通信可能に接続されている。
【００７１】
最後に、図１３に基づいて本実施形態の障害監視装置１００またはこれと同等の機能を有するネットワークシステムを構成するコンピュータのハードウェア構成について説明する。
【００７２】
図１３に示すように、本実施形態の障害監視装置１００またはこれと同等の機能を有するネットワークシステムを構成するコンピュータは、装置全体の動作を制御するプロセッサ１０１と、ブートプログラムやファームウェアプログラムなどを保存するＲＯＭ１０２と、プログラムの実行空間を提供するＲＡＭ１０３と、コンピュータを上述した各機能手段として機能させるためのプログラムやオペレーティングシステム（ＯＳ）等を保存するための補助記憶装置１０４と、外部装置を接続するための入出力インタフェース１０５と、ネットワーク５０に接続するためのネットワーク・インターフェース１０６とを備えている。
【００７３】
なお、上述した実施形態の各機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などで記述されたプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの記録媒体に格納して頒布することができ、また他の装置が可能な形式でネットワークを介して伝送することができる。
【００７４】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７５】
１０…外部監視手段
１２…外部監視エンジン
１４…記憶手段
２０…内部監視手段
２２…内部監視エンジン
２４…記憶手段
３０…障害判定手段
３２…外部監視情報変換エンジン
３４…内部状態情報変換エンジン
３５…教師データ生成手段
３６…学習エンジン
３７…判定エンジン
３８…記憶手段
５０…ネットワーク
１００…障害監視装置
１０ｓ…外部監視システム
２０ｓ…内部監視システム
３０ｓ…障害判定システム
１００ｓ…障害監視システム
１０１…プロセッサ
１０２…ＲＯＭ
１０３…ＲＡＭ
１０４…補助記憶装置
１０５…入出力インタフェース
１０６…ネットワーク・インターフェース
２００…情報処理システム
２０２…監視エージェント
３００…監視シナリオ
３０１，３０２，３０３，３０４，３０５，３０６…フィールド
４００…内部監視設定
５００…外部監視情報
５０１，５０２，５０３，５０４…フィールド
６００…内部状態情報
６０１，６０２，６０３，６０４…フィールド
７００…外部メトリクスデータ
８００…内部メトリクスデータ
【先行技術文献】
【特許文献】
【００７６】
【特許文献１】特開２０１２−１４１８０２号公報
【図１】
2018156348.tif 000003
【図２】
2018156348.tif 000004
【図３】
2018156348.tif 000005
【図４】
2018156348.tif 000006
【図５】
2018156348.tif 000007
【図６】
2018156348.tif 000008
【図７】
2018156348.tif 000009
【図８】
2018156348.tif 000010
【図９】
2018156348.tif 000011
【図１０】
2018156348.tif 000012
【図１１】
2018156348.tif 000013
【図１２】
2018156348.tif 000014
【図１３】
2018156348.tif 000015