(57)【要約】  障害検出装置（１０）は、記憶部（２１）と、特定部（４２）と、登録部（４３）と、検出部（４４）とを有する。記憶部（２１）は、障害の発生を示すメッセージのパターンを記憶する。特定部（４２）は、監視対象から以前には無い新規のメッセージが出力された場合、当該新規のメッセージの出力以前は前記監視対象から出力され、当該新規のメッセージの出力以降は前記監視対象から出力されなくなった交換対象のメッセージを特定する。登録部（４３）は、記憶部（２１）に記憶されたパターンから交換対象のメッセージを含むパターンを抽出し、交換対象のメッセージを新規のメッセージに置き換えたパターンを記憶部（２１）に登録する。検出部（４４）は、監視対象から出力されるメッセージに記憶部（２１）に記憶されたパターンがあるか否かを検出する。
2014024283.tif 000002
【特許請求の範囲】
【請求項１】
障害の発生を示すメッセージのパターンを記憶する記憶部と、
監視対象から新規のメッセージが出力された場合、当該新規のメッセージの出力以前は前記監視対象から出力され、当該新規のメッセージの出力以降は前記監視対象から出力されなくなった交換対象のメッセージを特定する特定部と、
前記記憶部に記憶されたパターンから前記交換対象のメッセージを含むパターンを抽出し、交換対象のメッセージを前記新規のメッセージに置き換えたパターンを前記記憶部に登録する登録部と、
前記監視対象から出力されるメッセージに前記記憶部に記憶されたパターンがあるか否かを検出する検出部と、
を有することを特徴とする障害検出装置。
【請求項２】
前記特定部は、各メッセージの平均出現間隔および最後に出現してからの期間に基づいて、前記交換対象のメッセージを特定する
ことを特徴とする請求項１に記載の障害検出装置。
【請求項３】
前記特定部は、前記交換対象のメッセージの出現前後所定期間に出現するメッセージと、前記新規のメッセージの出現前後所定期間に出現するメッセージとの類似度を求め、類似度の高い交換対象のメッセージを特定する
ことを特徴とする請求項２に記載の障害検出装置。
【請求項４】
前記記憶部は、前記パターン毎に、出現回数および障害の発生回数を記憶し、
前記登録部は、抽出したパターンの出現回数および障害の発生回数を複写し、前記置き換えたパターンに対応付けて前記記憶部に登録し、
前記検出部により検出されたパターンの出現回数および障害の発生回数から障害の発生確率を通知する通知部をさらに有する
ことを特徴とする請求項１〜３の何れか１つに記載の障害検出装置。
【請求項５】
前記登録部は、抽出したパターンが他の新規のメッセージを含まない場合、当該パターンの出現回数および障害の発生回数を複写し、抽出したパターンが他の新規のメッセージを含む場合、当該パターンに対して複写された出現回数および障害の発生回数をさらに複写する
ことを特徴とする請求項４に記載の障害検出装置。
【請求項６】
前記記憶部に登録されたパターンでの障害の発生確率が、当該登録されたパターンの元となったパターンでの障害の発生確率より所定値以上低い場合、当該登録されたパターンを前記記憶部から削除する削除部をさらに有する
ことを特徴とする請求項５に記載の障害検出装置。
【請求項７】
コンピュータに、
監視対象から新規のメッセージが出力された場合、当該新規のメッセージの出力以前は前記監視対象から出力され、当該新規のメッセージの出力以降は前記監視対象から出力されなくなった交換対象のメッセージを特定し、
記憶部に記憶された障害の発生を示すメッセージのパターンから前記交換対象のメッセージを含むパターンを抽出し、交換対象のメッセージを前記新規のメッセージに置き換えたパターンを前記記憶部に登録し、
前記監視対象から出力されるメッセージに前記記憶部に記憶されたパターンがあるか否かを検出する
各処理を実行させることを特徴とする障害検出プログラム。
【請求項８】
コンピュータが、
監視対象から新規のメッセージが出力された場合、当該新規のメッセージの出力以前は前記監視対象から出力され、当該新規のメッセージの出力以降は前記監視対象から出力されなくなった交換対象のメッセージを特定し、
記憶部に記憶された障害の発生を示すメッセージのパターンから前記交換対象のメッセージを含むパターンを抽出し、交換対象のメッセージを前記新規のメッセージに置き換えたパターンを前記記憶部に登録し、
前記監視対象から出力されるメッセージに前記記憶部に記憶されたパターンがあるか否かを検出する
各処理を実行することを特徴とする障害検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、障害検出装置、障害検出プログラムおよび障害検出方法に関する。
【背景技術】
【０００２】
従来より、コンピュータから出力されるメッセージに基づき、コンピュータの状態を検出する技術が知られている。例えば、コンピュータに障害が発生した場合、特定のメッセージの組み合わせを出力する場合がある。管理装置は、監視対象のコンピュータから出力されるメッセージに、障害の発生を示すメッセージのパターンがある否かを監視して障害の発生を検出する。このパターンとは、障害が発生した際に出現するメッセージの組み合わせであり、予め管理装置に記憶してある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２２５９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、コンピュータは、例えば、ソフトウェアのバージョンアップなどの構成の変更により、出力されるメッセージが変化する場合がある。このように、コンピュータから出力されるメッセージが変化した場合、管理装置は、メッセージの変化を認識できない。そのため管理装置は、変化したメッセージから障害の発生を検出できなくなる。【０００５】
１つの側面では、本発明は、監視対象から出力されるメッセージが変化した場合でも、障害の発生を検出できる障害検出装置、障害検出プログラムおよび障害検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願の開示する障害検出装置は、記憶部と、特定部と、登録部と、検出部とを有する。記憶部は、障害の発生を示すメッセージのパターンを記憶する。特定部は、監視対象から新規のメッセージが出力された場合、当該新規のメッセージの出力以前は前記監視対象から出力され、当該新規のメッセージの出力以降は前記監視対象から出力されなくなった交換対象のメッセージを特定する。登録部は、前記記憶部に記憶されたパターンから前記交換対象のメッセージを含むパターンを抽出し、交換対象のメッセージを前記新規のメッセージに置き換えたパターンを前記記憶部に登録する。検出部は、前記監視対象から出力されるメッセージに前記記憶部に記憶されたパターンがあるか否かを検出する。
【発明の効果】
【０００７】
監視対象から出力されるメッセージが変化した場合でも、障害の発生を検出できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、管理装置の機能的な構成の一例を示す図である。
【図２】図２は、メッセージログの構成を模式的に示した図である。
【図３】図３は、メッセージ情報テーブルのデータ構成の一例を示す図である。
【図４】図４は、パターンテーブルのデータ構成の一例を示す図である。
【図５】図５は、メッセージＱ、Ｙ、Ｚについて、それぞれ出現前後５分間に出現するメッセージの一例を示す図である。
【図６】図６は、ベクトルｑ、ｙ、ｚの一例を示す図である。
【図７】図７は、パターンテーブルに新たなパターンを登録する一例を示す図である。
【図８】図８は、パターンテーブルに新たなパターンを登録する他の一例を示す図である。
【図９】図９は、メッセージが変化した場合の一例を示す図である。
【図１０】図１０は、通知の一例を示す図である。
【図１１】図１１は、パターンテーブルからデータを削除する一例を示す図である。
【図１２】図１２は、パターンテーブルからデータを削除する他の一例を示す図である。
【図１３】図１３は、更新処理の手順を示すフローチャートである。
【図１４】図１４は、特定処理の手順を示すフローチャートである。
【図１５】図１５は、登録処理の手順を示すフローチャートである。
【図１６】図１６は、検出処理の手順を示すフローチャートである。
【図１７】図１７は、削除処理の手順を示すフローチャートである。
【図１８】図１８は、障害検出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかる障害検出装置、障害検出プログラムおよび障害検出方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１０】
実施例１について説明する。実施例１では、障害検出装置の一例として、ネットワークシステム内の各機器から出力されるメッセージを監視する管理装置を採用した場合について説明する。【００１１】
図１は、管理装置の機能的な構成の一例を示す図である。図１に示すように、管理装置１０は、通信インタフェース（Ｉ／Ｆ）部２０と、記憶部２１と、制御部２２とを有する。【００１２】
通信Ｉ／Ｆ部２０は、図示しないネットワークなどのデータ伝送路を介して他の装置との通信を制御するインタフェースである。ネットワークには、他の装置、例えば、管理装置１０が監視対象とする機器が通信可能に接続される。監視対象とされた機器は、実行された処理に関する各種のメッセージを管理装置１０へ出力する。例えば、監視対象とされた機器は、アプリケーション等が異常時に異常に関するメッセージを出力する。通信Ｉ／Ｆ部２０は、ネットワークを介して監視対象とされた機器からメッセージを受信する。かかる通信Ｉ／Ｆ部２０の一態様としては、ＬＡＮカードなどのネットワークインタフェースカードを採用できる。【００１３】
記憶部２１は、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部２１は、上記の種類の記憶装置に限定されるものではなく、Random  Access  Memory（ＲＡＭ)、Read  Only  Memory（ＲＯＭ)であってもよい。【００１４】
記憶部２１は、制御部２２で実行されるOperating  System（ＯＳ）や監視対象とされた機器の障害の検出に用いる各種プログラムを記憶する。さらに、記憶部２１は、制御部２２で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２１は、メッセージログ３０と、メッセージ情報テーブル３１と、パターンテーブル３２とを記憶する。【００１５】
メッセージログ３０は、監視対象とされた機器から受信したメッセージを記憶したデータである。一例として、メッセージログ３０は、監視対象とされた機器から送信されて通信Ｉ／Ｆ部２０によって受信されたメッセージが後述の格納部４０によって受信順に格納される。他の一例として、メッセージログ３０は、障害の検出を行うために、後述の更新部４１、特定部４２によって参照される。【００１６】
図２は、メッセージログの構成を模式的に示した図である。図２の横軸は、時間の経過を表しており、それぞれの数値が時間を示す。図２の例では、格納された各種のメッセージをそれぞれ大文字のアルファベットで示している。例えば、図２の例では、メッセージＹ、Ｂ、Ｐ、Ｃ・・・・を経時的に受信したことを示す。【００１７】
メッセージ情報テーブル３１は、出現したメッセージに関する各種情報が記憶されたテーブルである。一例として、メッセージ情報テーブル３１は、後述の更新部４１によってデータが登録および更新される。他の一例として、メッセージ情報テーブル３１は、新しく出現した新規のメッセージを特定するために、後述の特定部４２によって参照される。【００１８】
図３は、メッセージ情報テーブルのデータ構成の一例を示す図である。図３に示すように、メッセージ情報テーブル３１は、メッセージ、出現開始日時、最終出現日時、平均出現間隔の各項目を有する。メッセージの項目は、メッセージを識別する識別情報を記憶する領域である。この識別情報は、メッセージのデータそのものとしてもよく、数字や文字などによりメッセージを一意に識別する情報としてもよい。出現開始日時の項目は、メッセージが出現を開始した時期を記憶する領域である。最終出現日時の項目は、メッセージが最後に出現した時期を記憶する領域である。平均出現間隔の項目は、メッセージの平均した出現の間隔を記憶する領域である。【００１９】
図３の例では、メッセージＱは、出現開始が４時間前であり、最後の出現が４時間前であり、平均出現間隔が４時間であることを示す。また、メッセージＺは、出現開始が１２時間前であり、最後の出現が６時間前であり、平均出現間隔が８時間であることを示す。【００２０】
パターンテーブル３２は、障害の発生を示すメッセージのパターンが記憶されたテーブルである。パターンテーブル３２には、過去の障害発生時のログ等から障害が発生した際に出現するメッセージのパターンが登録されている。一例として、パターンテーブル３２は、後述の更新部４１によって出現回数および障害回数が更新される。他の一例として、パターンテーブル３２は、パターンを生成する際に、後述の登録部４３によって参照および更新される。また、他の一例として、パターンテーブル３２は、パターンの検出を行う際に、後述の検出部４４によって参照される。【００２１】
図４は、パターンテーブルのデータ構成の一例を示す図である。図４に示すように、パターンテーブル３２は、Ｎｏ、パターン、出現回数（実測）、障害回数（実測）、出現回数（複写）、障害回数（複写）、元Ｎｏの各項目を有する。Ｎｏの項目は、パターンを識別する識別番号を記憶する領域である。パターンには、それぞれを識別する識別番号が付与される。Ｎｏの項目には、パターンに付与された識別番号が格納される。パターンの項目は、パターンとするメッセージの組み合わせを記憶する領域である。パターンの項目には、過去の障害発生時のログ等から障害が発生した際に出現するメッセージの組み合わせを示す情報が格納される。出現回数（実測）の項目は、パターンのメッセージが出現した回数を記憶する領域である。障害回数（実測）の項目は、パターンのメッセージが出現した際に、障害が発生した回数を記憶する領域である。出現回数（複写）の項目は、後述の登録部４３によって新規のメッセージに置き換えたパターンを登録した際に、置き換え元のパターンの出現回数を記憶する領域である。障害回数（複写）の項目は、後述の登録部４３によって新規のメッセージに置き換えたパターンを登録した際に、置き換え元のパターンの障害回数を記憶する領域である。元Ｎｏの項目は、置き換え元のパターンの識別番号を記憶する領域である。元Ｎｏの項目は、置き換え元のパターンがある場合、置き換え元のパターンの識別番号が格納され、置き換え元のパターンが無い場合、空白とされる。【００２２】
図４の例では、Ｎｏ「１」のパターンは、メッセージ「Ａ、Ｂ、Ｃ、Ｘ、Ｙ」の組み合わせであることを示す。また、Ｎｏ「１」のパターンは、実測の出現回数が「１００」であり、実測の障害回数が「９０」であり、複写の出現回数が「０」であり、複写の障害回数が「０」であることを示す。また、また、Ｎｏ「１」のパターンは、元Ｎｏの項目が空白であり、置き換え元のパターンが無いことを示す。【００２３】
図１に戻り、制御部２２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２２は、Application  Specific  Integrated  Circuit（ＡＳＩＣ）やField  Programmable  Gate  Array（ＦＰＧＡ）などの集積回路またはCentral  Processing  Unit（ＣＰＵ）やMicro  Processing  Unit（ＭＰＵ）などの電子回路である。制御部２２は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部２２は、格納部４０と、更新部４１と、特定部４２と、登録部４３と、検出部４４と、通知部４５と、削除部４６とを有する。【００２４】
格納部４０は、記憶部２１への各種データの格納を行う処理部である。格納部４０は、メッセージログ３０への受信されたメッセージの格納を行う。例えば、格納部４０は、通信Ｉ／Ｆ部２０によって受信されたメッセージを受け取り、受け取ったメッセージを収集する。そして、格納部４０は、収集したメッセージおよび受信日時を対応付けてメッセージの発生履歴としてメッセージログ３０に追加して格納する。【００２５】
更新部４１は、各種データの更新を行う処理部である。更新部４１は、パターンテーブル３２の更新を行う。例えば、更新部４１は、所定のタイミングで、メッセージログ３０からメッセージを順次読み出す。そして、更新部４１は、メッセージログ３０に、パターンテーブル３２に登録された何れかのパターンが出現した場合、パターンテーブル３２の出現したパターンの出現回数（実測）の値をカウントアップする。また、更新部４１は、何れかのパターンが出現した日時に障害が発生していた場合、パターンテーブル３２の出現したパターンの障害回数（実測）の値をカウントアップする。所定のタイミングは、日時や月次など一定期間毎のタイミングとしてもよく、また、管理者等が更新を指示したタイミングとしてもよい。また、パターンのメッセージが記録された日時に障害が発生していたか否かは、メッセージログ３０に記憶されたメッセージから判定してもよい。また、パターンのメッセージが記録された日時に障害が発生していたか否かは、監視対象とする機器で障害が発生していた期間を別なデータとして記憶し、当該データから判定してもよい。【００２６】
また、更新部４１は、メッセージ情報テーブル３１の更新を行う。例えば、更新部４１は、メッセージログ３０に記憶された各メッセージの受信日時に基づき、同種のメッセージ毎に出現開始日時、最後出現日時および平均出現間隔を求める。そして、更新部４１は、メッセージ情報テーブル３１に登録済みのメッセージについては、当該メッセージの最後出現日時および平均出現間隔を更新する。また、更新部４１は、メッセージ情報テーブル３１に未登録のメッセージについては、当該メッセージの出現開始日時、最後出現日時および平均出現間隔を登録する。【００２７】
特定部４２は、各種の特定を行う処理部である。特定部４２は、メッセージ情報テーブル３１に記憶された出現開始日時に基づき、新しく出現した新規のメッセージを特定する。例えば、特定部４２は、出現開始日時が現在から所定の期間以内のメッセージを新規のメッセージと特定する。あるいは、特定部４２は、出現開始日時が前回のメッセージ情報テーブル３１の更新日時以降のメッセージを新規のメッセージと特定する。【００２８】
そして、特定部４２は、新規のメッセージが特定された場合、当該新規のメッセージの出力以前は監視対象から出力され、当該新規のメッセージの出力以降は監視対象から出力されなくなった交換対象のメッセージを特定する。例えば、特定部４２は、各メッセージの平均出現間隔および最後に出現してからの期間に基づいて、交換対象のメッセージを特定する。一例として、特定部４２は、最後の出現が新規のメッセージの出現よりも前かつ最後に出現してからの期間が平均出現間隔の所定倍以上のメッセージを交換対象のメッセージと特定する。この所定倍は、１倍よりも大きければいずれでもよい。所定倍は、倍数が大きいほど出現しなくなったメッセージを精度良く特定できるが、出現しなくなったメッセージが判別可能になるまでの期間が長くなる。所定倍は、可変としてもよい。メッセージが出現する期間の分散度合が大きい場合は、倍数を大きくし、分散度合が小さい場合は、倍数を小さくしてもよい。本実施例では、所定倍を、例えば、２倍とする。【００２９】
特定部４２は、メッセージログ３０に基づき、交換対象のメッセージと新規のメッセージについて、それぞれ出現前後に出現する他のメッセージを特定する。例えば、特定部４２は、交換対象のメッセージと新規のメッセージについて、それぞれ出現前後所定期間に出現するメッセージを特定する。この所定期間は、パターンテーブル３２に記憶されたパターンの各メッセージが出力される期間に応じて定めればよい。例えば、障害の発生した際に、障害の発生を示す特定のパターンの各メッセージが５分間の間に出力される場合、所定期間は、５分間とする。本実施例では、例えば、所定期間を５分間とする。【００３０】
そして、特定部４２は、交換対象のメッセージの出現前後に出現するメッセージと、新規のメッセージの出現前後に出現するメッセージとの類似度を求め、類似度が高い交換対象のメッセージを特定する。【００３１】
例えば、図２および図３に示す状態の場合、特定部４２は、メッセージＱ、Ｚを新規のメッセージと特定する。また、特定部４２は、メッセージＹが、新規のメッセージＱ、Ｚの出現よりも前かつ最後に出現してからの期間が平均出現間隔の２倍以上であるため、交換対象のメッセージと特定する。【００３２】
ここで、本実施例では、メッセージＱ、Ｚと新規のメッセージが２つあるため、メッセージＹがメッセージＱに変化したケースと、メッセージＹがメッセージＺに変化したケースの２つのケースが考えられる。【００３３】
特定部４２は、メッセージログ３０に基づき、メッセージＱ、Ｙ、Ｚについて、それぞれ出現前後５分間に出現するメッセージを特定する。図５は、メッセージＱ、Ｙ、Ｚについて、それぞれ出現前後５分間に出現するメッセージの一例を示す図である。図５の例では、メッセージＹの前後に出力されたメッセージは、［Ａ，Ｂ，Ｙ］、［Ｂ，Ｃ，Ｙ］、［Ａ，Ｃ，Ｙ］であることを示す。また、メッセージＺの前後に出力されたメッセージは、［Ａ，Ｂ，Ｚ］、［Ａ，Ｐ，Ｚ］であることを示す。また、メッセージＱの前後に出力されたメッセージは、［Ｃ，Ｑ，Ｐ］、［Ｐ，Ｑ，Ｂ］であることを示す。【００３４】
特定部４２は、メッセージＱ、Ｙ、Ｚについて、それぞれ前後に出力された他のメッセージ毎に出現回数をカウントする。そして、特定部４２は、メッセージＱ、Ｙ、Ｚについて、各メッセージの出現回数を要素としたベクトルと見なして、ベクトル間の類似度を求める演算手法を用いて交換対象のメッセージと新規のメッセージの類似度を求める。【００３５】
例えば、出現するメッセージがＡ〜Ｚの２６種類である場合、特定部４２は、メッセージＡ〜Ｚをベクトルの要素（Ａ、Ｂ、Ｃ、・・・、Ｚ）に対応させ、図６に示すように、各メッセージの出現回数を要素の値としたベクトルｑ、ｙ、ｚを求める。図６は、ベクトルｑ、ｙ、ｚの一例を示す図である。図６に示すように、メッセージＹは、メッセージＡが２回、メッセージＢが２回、メッセージＣが２回前後に出現する。このため、ベクトルｙは、メッセージＡ、Ｂ、Ｃに対応する要素の値が「２」となっている。また、メッセージＺは、メッセージＡが２回、メッセージＢが１回、メッセージＰが１回前後に出現する。このため、ベクトルｚは、メッセージＡに対応する要素の値が「２」となり、メッセージＢ、Ｐに対応する要素の値が「１」となっている。また、メッセージＱは、メッセージＢが１回、メッセージＣが１回、メッセージＰが２回前後に出現する。このため、ベクトルｑは、メッセージＢ、Ｃに対応する要素の値が「１」となり、メッセージＰに対応する要素の値が「２」となっている。【００３６】
特定部４２は、以下の（１）式に示すベクトルｘ、ベクトルｙ間の類似度（ｘ，ｙ）を求める演算を用いて、メッセージＹとメッセージＱの類似度、およびメッセージＹとメッセージＺの類似度を求める。
類似度（ｘ，ｙ）＝ｘ・ｙ／（｜ｘ｜×｜ｙ｜）            （１）【００３７】
例えば、（１）式からベクトルｙとベクトルｑの類似度（ｙ，ｑ）は、以下の（２）式に示すように算出される。よって、メッセージＹとメッセージＱの類似度は、０．４７１４と求まる。【００３８】
【数１】
2014024283.tif 000003
【００３９】
同様に、（１）式からベクトルｙとベクトルｚの類似度（ｙ，ｚ）は、以下の（３）式に示すように算出される。よって、メッセージＹとメッセージＺの類似度は、０．７０７１と求まる。【００４０】
【数２】
2014024283.tif 000004
【００４１】
特定部４２は、類似度が所定のしきい値よりも多く、かつ類似度が最も大きいメッセージの組み合わせを特定する。このしきい値は、メッセージが変化したと見なす適切な値に設定すればよい。本実施例では、しきい値を、例えば、０．５とする。【００４２】
そして、特定部４２は、特定したメッセージの組み合わせ間でメッセージが変化したものと特定する。例えば、メッセージＹとメッセージＺの類似度は、メッセージＹとメッセージＱの類似度よりも大きく、類似度も０．５より大きい。このため、特定部４２は、新規のメッセージＹの交換対象のメッセージをメッセージＺと特定する。なお、特定部４２は、最大の類似度がしきい値以下の場合、交換対象をなしと特定する。【００４３】
図１に戻り、登録部４３は、新規のパターンの登録を行う処理部である。登録部４３は、特定部４２により交換対象のメッセージが特定された場合、パターンテーブル３２から、特定部４２により特定された交換対象のメッセージを含むパターンを抽出する。そして、登録部４３は、抽出したパターンに含まれる交換対象のメッセージを新規のメッセージに置き換えたパターンを生成する。登録部４３は、生成したパターンをパターンテーブル３２に登録する。登録部４３は、生成したパターンをパターンテーブル３２に登録する際、元Ｎｏの項目に、登録するパターンの元となったパターンのＮｏの項目の値を格納する。【００４４】
また、登録部４３は、抽出したパターンが他の新規のメッセージを含まない場合、抽出したパターンの出現回数（実測）および障害回数（実測）の値をそれぞれ登録するパターンの出現回数（複写）および障害回数（複写）に複写する。一方、登録部４３は、抽出したパターンが他の新規のメッセージを含む場合、抽出したパターンの出現回数（複写）および障害回数（複写）の値をそれぞれ登録するパターンの出現回数（複写）および障害回数（複写）に複写する。【００４５】
図７は、パターンテーブルに新たなパターンを登録する一例を示す図である。図７の例は、新規のメッセージＺに対する交換対象のメッセージがメッセージＹと特定された場合を示している。図７の例では、Ｎｏ１〜３のパターンに含まれるメッセージＹをメッセージＺに置き換えたＮｏ７〜９のパターンがパターンテーブル３２に登録されている。また、Ｎｏ１〜３のパターンは、他の新規のメッセージを含まない。このため、図７の例では、Ｎｏ１〜３のパターンの出現回数（実測）および障害回数（実測）の値がＮｏ７〜９のパターンの出現回数（複写）および障害回数（複写）に複写されている。【００４６】
図８は、パターンテーブルに新たなパターンを登録する他の一例を示す図である。図８の例は、新規のメッセージＺに対する交換対象のメッセージがメッセージＹと特定され、さらに、新規のメッセージＧに対する交換対象のメッセージがメッセージＣと特定された場合を示している。図８の例では、図７と同様に、Ｎｏ１〜３のパターンに含まれるメッセージＹをメッセージＺに置き換えたＮｏ７〜９のパターンがパターンテーブル３２に登録されている。また、図８の例では、Ｎｏ１〜３、７〜９のパターンに含まれるメッセージＣをメッセージＧに置き換えたＮｏ１０〜１５のパターンがパターンテーブル３２に登録されている。Ｎｏ７〜９のパターンは、他の新規のメッセージであるメッセージＺが含まれる。このため、図８の例では、Ｎｏ７〜９のパターンの出現回数（複写）および障害回数（複写）の値がＮｏ１０〜１２のパターンの出現回数（複写）および障害回数（複写）にそれぞれ複写されている。一方、Ｎｏ１〜３のパターンは、他の新規のメッセージを含まない。このため、図８の例では、Ｎｏ１〜３のパターンの出現回数（複写）および障害回数（複写）の値がＮｏ１３〜１５のパターンの出現回数（複写）および障害回数（複写）にそれぞれ複写されている。【００４７】
図１に戻り、検出部４４は、受信したメッセージからパターンの検出を行う処理部である。検出部４４は、受信したメッセージにパターンテーブル３２に記憶された何れかのパターンがあるか否か検出を行う。例えば、検出部４４は、メッセージを受信した場合、現在時点から所定期間前までに発生したメッセージをメッセージログ３０から抽出する。なお、この所定期間は、上述のように、パターンテーブル３２に記憶されたパターンの各メッセージが出力される期間に応じて定めればよい。本実施例では、例えば、所定期間を５分間とする。【００４８】
そして、検出部４４は、パターンテーブル３２に記憶されたパターンを順に読み出し、所定期間前までに発生したメッセージに、読み出したパターンの全てのメッセージが含まれるか否か判定する。ここで、監視対象から出力されるメッセージは、監視対象での処理の順序等により、順番が入れ替わる場合がある。このため、検出部４４は、受信したメッセージおよび抽出したメッセージにパターンの全てのメッセージが含まれるか否か判定することにより、メッセージの順序を判断せず、パターンの全てのメッセージが所定期間内に受信されたか否かを判定する。【００４９】
例えば、監視対象の構成の変更などにより、監視対象から出力されるメッセージが変化した場合でも、パターンテーブル３２には、変化したメッセージを含んだパターンが登録されている。このため、管理装置１０は、監視対象から出力されるメッセージが変化した場合でも、障害の発生を検出できる。【００５０】
図９は、メッセージが変化した場合の一例を示す図である。図９の例は、監視対象から出力されるメッセージＹがメッセージＺに変化した場合を示している。この場合でも、図７、８に示すように、メッセージＡ、Ｂ、Ｃ、Ｘ、Ｚを含むパターンが登録されるため、検出部４４は、メッセージＡ、Ｂ、Ｃ、Ｘ、Ｚを含むパターンを検出できる。【００５１】
図１に戻り、通知部４５は、各種の通知を行う処理部である。通知部４５は、検出部４４が受信されるメッセージから何れかのパターンを検出した場合、通知を行う。例えば、通知部４５は、パターンテーブル３２から、検出されたパターンの元Ｎｏの項目を読み出す。元Ｎｏの項目は、メッセージの置き換えが行われたパターンである場合、値が格納され、メッセージの置き換えが行われていないパターンの場合、空白である。通知部４５は、元Ｎｏの項目が空白の場合、パターンテーブル３２の検出されたパターンの出現回数（実測）および障害回数（実測）の値をそれぞれ読み出し、障害回数を出現回数で除算して障害の発生確率を求める。一方、通知部４５は、元Ｎｏの項目に数値が格納されている場合、パターンテーブル３２の検出されたパターンの出現回数（複写）および障害回数（複写）を読み出し、障害回数を出現回数で除算して障害の発生確率を求める。そして、通知部４５は、求めた障害の発生確率を管理者等に通知する。【００５２】
図１０は、通知の一例を示す図である。図１０の例は、管理者に対してメールにて通知を行った一例を示している。図１０の例では、障害の発生確率が記載されている。また、図１０の例では、検出されたパターンからどのような種別の障害が発生するかの障害種別および障害の発生が予測される予測時刻も記載されている。障害種別は、例えば、パターンテーブル３２にそれぞれのパターンに対応させて予め登録しておくことにより、特定できる。また、予測時刻は、例えば、パターンテーブル３２にそれぞれのパターンに対応させてどの程度後に障害が発生するか、および障害の発生期間を予め登録しておくことにより、特定できる。【００５３】
図１に戻り、削除部４６は、各種データの削除を行う処理部である。削除部４６は、パターンテーブル３２に登録されたパターンについて、それぞれ実測の出現回数が所定回数以上となった場合、実測の障害回数を実測の出現回数で除算して実測での障害の発生確率を求める。また、削除部４６は、複写の障害回数を複写の出現回数で除算して複写での障害の発生確率を求める。そして、削除部４６は、実測での障害の発生確率が複写での障害の発生確率よりも所定値以上低い場合、複写の障害の発生確率が所定値以上低いパターンと同じメッセージの置き換えを行ったパターンをパターンテーブル３２から削除する。一方、削除部４６は、実測での障害の発生確率がコピーの障害の発生確率よりも所定値以上低くない場合、登録されたパターンの出現回数（複写）、障害回数（複写）、元Ｎｏを項目の値を削除する。この所定回数は、算出される障害の発生確率の許容誤差に応じて定めればよい。本実施例では、例えば、所定回数を５回とする。また、所定値は、障害の発生確率が異なると見なす適切な値に設定すればよい。本実施例では、例えば、所定値を２０％とする。【００５４】
図１１は、パターンテーブルからデータを削除する一例を示す図である。図１１の例では、Ｎｏ７のパターンの実測での障害の発生確率が４／５＝８０％であり、コピーの障害の発生確率が９０／１００＝９０％である。この場合、削除部４６は、Ｎｏ７のパターンの出現回数（複写）、障害回数（複写）、元Ｎｏを項目の値を削除する。これにより、Ｎｏ７のパターンは、書き換えられて登録されたパターンとは見なされなくなり、予め登録されたパターンと同等となる。【００５５】
図１２は、パターンテーブルからデータを削除する他の一例を示す図である。図１２の例では、Ｎｏ７のパターンの実測での障害の発生確率が０／５＝０％であり、コピーの障害の発生確率が９０／１００＝９０％である。この場合、削除部４６は、Ｎｏ７〜９のパターンをパターンテーブル３２から削除する。これにより、Ｎｏ７〜９のパターンによる障害の通知が行われなくなる。【００５６】
次に、本実施例に係る管理装置１０がメッセージログ３０に基づいて、パターンテーブル３２およびメッセージ情報テーブル３１を更新する更新処理の流れを説明する。図１３は、更新処理の手順を示すフローチャートである。この更新処理は、所定のタイミング、例えば、日時など一定期間毎のタイミングで実行される。【００５７】
図１３に示すように、更新部４１は、メッセージログ３０からメッセージを受信日時が古いものから順に読み出す（Ｓ１０）。更新部４１は、読み出した結果、メッセージログ３０が終端か否か判定する（Ｓ１１）。【００５８】
メッセージログ３０が終端ではない場合（Ｓ１１否定）、更新部４１は、読み出したメッセージがメッセージ情報テーブル３１に登録されているか否かを判定する（Ｓ１２）。メッセージ情報テーブル３１に登録されていない場合（Ｓ１２否定）、更新部４１は、出現開始日時および最終出現日時の項目に読み出したメッセージの受信日時を設定して、読み出したメッセージをメッセージ情報テーブル３１に登録する（Ｓ１３）。一方、メッセージ情報テーブル３１に登録されている場合（Ｓ１２肯定）、更新部４１は、メッセージ情報テーブル３１に記憶された読み出したメッセージの最終出現日時と読み出したメッセージの受信日時から出現間隔を求める（Ｓ１４）。そして、更新部４１は、メッセージ情報テーブル３１の読み出したメッセージの最終出現日時を受信日時に更新する（Ｓ１５）。【００５９】
更新部４１は、読み出したメッセージを含む所定期間に受信されたメッセージに、パターンテーブル３２に登録された何れかのパターンが出現したか否か判定する（Ｓ１６）。何れかのパターンが出現した場合（Ｓ１６肯定）、更新部４１は、パターンテーブル３２に記憶された出現したパターンの出現回数（実測）の値を１加算する（Ｓ１７）。そして、更新部４１は、パターンが出現した日時に障害が発生していたか否か判定する（Ｓ１８）。障害が発生していた場合（Ｓ１８肯定）、更新部４１は、パターンテーブル３２に記憶された出現したパターンの障害回数（実測）の値を１加算し（Ｓ１９）、上述のＳ１０へ移行する。【００６０】
一方、何れのパターンも出現しない場合（Ｓ１６否定）および、障害が発生していない場合（Ｓ１８否定）、上述のＳ１０へ移行する。【００６１】
一方、メッセージログ３０が終端の場合（Ｓ１１肯定）、メッセージ毎に、平均出現間隔を求め、メッセージ情報テーブル３１の各メッセージの平均出現間隔を更新し（Ｓ２０）、処理を終了する。【００６２】
次に、本実施例に係る管理装置１０が新規のメッセージおよび交換対象のメッセージを特定する特定処理の流れを説明する。図１４は、特定処理の手順を示すフローチャートである。この特定処理は、所定のタイミング、例えば、上述の更新処理が終了したタイミングで実行される。【００６３】
図１４に示すように、特定部４２は、メッセージ情報テーブル３１に記憶された出現開始日時に基づき、新しく出現した新規のメッセージを特定する（Ｓ３０）。そして、特定部４２は、新規のメッセージの出力以前は監視対象から出力され、新規のメッセージの出力以降は監視対象から出力されなくなった交換対象のメッセージを特定する（Ｓ３１）。【００６４】
特定部４２は、交換対象のメッセージと新規のメッセージについて、それぞれ出現前後に出現する他のメッセージを特定する（Ｓ３２）。そして、特定部４２は、交換対象のメッセージと新規のメッセージをそれぞれベクトルと見なして類似度を求める（Ｓ３３）。そして、特定部４２は、求めた類似度に基づいて、交換を行う新規のメッセージと交換対象のメッセージの組み合わせを特定し（Ｓ３４）、処理を終了する。【００６５】
次に、本実施例に係る管理装置１０が新規のパターンをパターンテーブル３２に登録する登録処理の流れを説明する。図１５は、登録処理の手順を示すフローチャートである。この登録処理は、所定のタイミング、例えば、上述の特定処理が終了したタイミングで実行される。【００６６】
図１５に示すように、登録部４３は、特定処理により特定した全ての組み合わせについて処理が完了したか否か判定する（Ｓ４０）。全ての組み合わせについて処理が完了した場合（Ｓ４０肯定）、処理を終了する。【００６７】
一方、全ての組み合わせについて処理が完了していない場合（Ｓ４０否定）、登録部４３は、何れかの未選択の組み合わせを選択する（Ｓ４１）。登録部４３は、選択した組み合わせの交換対象のメッセージを含むパターンをパターンテーブル３２から抽出する（Ｓ４２）。そして、登録部４３は、抽出したパターンに含まれる交換対象のメッセージを新規のメッセージに置き換えたパターンを生成する（Ｓ４３）。【００６８】
登録部４３は、抽出したパターンが他の新規のメッセージを含むか否か判定する（Ｓ４４）。他の新規のメッセージを含まない場合（Ｓ４４否定）、登録部４３は、次のような処理を行って、パターンテーブル３２にパターンを登録し（Ｓ４５）、Ｓ４０へ移行する。すなわち、登録部４３は、抽出したパターンの出現回数（実測）および障害回数（実測）の値を出現回数（複写）および障害回数（複写）に複写して、生成したパターンをパターンテーブル３２に登録する。【００６９】
一方、他の新規のメッセージを含む場合（Ｓ４４肯定）、登録部４３は、次のような処理を行って、パターンテーブル３２にパターンを登録し（Ｓ４６）、Ｓ４０へ移行する。すなわち、登録部４３は、抽出したパターンの出現回数（複写）および障害回数（複写）の値をそれぞれ複写して、生成したパターンをパターンテーブル３２に登録する。【００７０】
次に、本実施例に係る管理装置１０が受信したメッセージからパターンを検出する検出処理の流れを説明する。図１６は、検出処理の手順を示すフローチャートである。この検出処理は、メッセージを受信したタイミングで実行される。【００７１】
図１６に示すように、検出部４４は、受信したメッセージにパターンテーブル３２に記憶された何れかのパターンがあるか否か検出する（Ｓ５０）。検出部４４が何れかのパターンを検出した場合（Ｓ５０肯定）、通知部４５は、通知を行い（Ｓ５１）、処理を終了する。一方、検出部４４が何れかのパターンも検出できない場合（Ｓ５０否定）、処理を終了する。【００７２】
次に、本実施例に係る管理装置１０がパターンテーブル３２からデータを削除する削除処理の流れを説明する。図１７は、削除処理の手順を示すフローチャートである。この検出処理は、所定のタイミング、例えば、日時など一定期間毎のタイミングで実行される。【００７３】
図１７に示すように、削除部４６は、パターンテーブル３２に新たに登録され、実測の出現回数が所定回数以上となったパターンを特定する（Ｓ６０）。削除部４６は、特定した全パターンに対する処理を完了したか否か判定する（Ｓ６１）。全パターンに対する処理が完了した場合（Ｓ６１肯定）、処理を終了する。【００７４】
一方、全パターンに対する処理が完了していない場合（Ｓ６１否定）、削除部４６は、未処理のパターンからパターンを選択する（Ｓ６２）。削除部４６は、実測の障害回数を実測の出現回数で除算して実測での障害の発生確率を求める（Ｓ６３）。また、削除部４６は、複写の障害回数を複写の出現回数で除算して複写での障害の発生確率を求める（Ｓ６４）。【００７５】
削除部４６は、実測での障害の発生確率が複写での障害の発生確率よりも所定値以上低いか否かを判定する（Ｓ６５）。所定値以上低い場合（Ｓ６５肯定）、削除部４６は、複写の障害の発生確率が所定値以上低いパターンと同じメッセージの置き換えを行ったパターンをパターンテーブル３２から削除し（Ｓ６６）、上述のＳ６１へ移行する。【００７６】
一方、所定値以上低くない場合（Ｓ６５否定）、削除部４６は、パターンの出現回数（複写）、障害回数（複写）、元Ｎｏを項目の値を削除し（Ｓ６７）、上述のＳ６１へ移行する。【００７７】
このように、管理装置１０は、障害の発生を示すメッセージのパターンを記憶部２１に記憶する。また、管理装置１０は、監視対象から以前には無い新規のメッセージが出力された場合、当該新規のメッセージの出力以前は監視対象から出力され、当該新規のメッセージの出力以降は前記監視対象から出力されなくなった交換対象のメッセージを特定する。管理装置１０は、記憶部２１に記憶されたパターンから交換対象のメッセージを含むパターンを抽出し、交換対象のメッセージを新規のメッセージに置き換えたパターンを記憶部２１に登録する。そして、管理装置１０は、監視対象から出力されるメッセージに記憶部２１に記憶されたパターンがあるか否かを検出する。これにより、管理装置１０は、監視対象から出力されるメッセージが変化した場合でも、障害の発生を検出できる。【００７８】
また、管理装置１０は、各メッセージの平均出現間隔および最後に出現してからの期間に基づいて、交換対象のメッセージを特定する。これにより、管理装置１０は、出現しなくなったメッセージを精度良く特定できる。【００７９】
また、管理装置１０は、交換対象のメッセージの出現前後所定期間に出現するメッセージと、前記新規のメッセージの出現前後所定期間に出現するメッセージとの類似度を求め、類似度の高い交換対象のメッセージを特定する。これにより、管理装置１０は、変化したメッセージを精度良く特定できる。【００８０】
また、管理装置１０は、記憶部２１に、パターン毎に、出現回数および障害の発生回数を記憶する。管理装置１０は、抽出したパターンの出現回数および障害の発生回数を複写し、置き換えたパターンに対応付けて記憶部２１に登録する。そして、管理装置１０は、検出されたパターンの出現回数および障害の発生回数から障害の発生確率を通知する。これにより、管理装置１０は、登録した新規のパターンが検出され、新規のパターンの出現回数、障害回数が十分にカウントされていない場合も、発生確率を通知できる。【００８１】
また、管理装置１０は、抽出したパターンが他の新規のメッセージを含まない場合、当該パターンの出現回数および障害の発生回数を複写する。また、管理装置１０は、抽出したパターンが他の新規のメッセージを含む場合、当該パターンに対して複写された出現回数および障害の発生回数をさらに複写する。これにより、管理装置１０は、複数の組でメッセージの置き換えが発生した場合でも、複写された出現回数および障害の発生回数から妥当な発生確率を通知できる。【００８２】
また、管理装置１０は、記憶部２１に登録されたパターンでの障害の発生確率が、当該登録されたパターンの元となったパターンでの障害の発生確率より所定値以上低い場合、当該登録されたパターンを記憶部２１から削除する。これにより、管理装置１０は、信頼性の低いパターンが削除されるため、障害の発生の検出精度が向上する。
【実施例２】
【００８３】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【００８４】
上記の実施例では、他の装置から通知されるメッセージから障害の発生を検出する場合について説明したが、開示の装置はこれに限定されない。例えば、自装置内で発生するメッセージから障害の発生を検出する場合に用いてもよい。【００８５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図１に示す格納部４０、更新部４１、特定部４２、登録部４３、検出部４４、通知部４５、削除部４６の各処理部が適宜統合されてもよい。また、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００８６】
［障害検出プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図１８は、障害検出プログラムを実行するコンピュータを示す図である。【００８７】
図１８に示すように、コンピュータ３００は、ＣＰＵ３１０、Read  Only  Memory（ＲＯＭ）３２０、Hard  Disk  Drive（ＨＤＤ）３３０、Random  Access  Memory（ＲＡＭ）３４０を有する。これら３１０〜３４０の各部は、バス４００を介して接続される。【００８８】
ＲＯＭ３２０には上記実施例の各処理部と同様の機能を発揮する障害検出プログラム３２０ａが予め記憶される。例えば、上記実施例１の格納部４０、更新部４１、特定部４２、登録部４３、検出部４４、通知部４５、削除部４６と同様の機能を発揮する障害検出プログラム３２０ａを記憶させる。なお、障害検出プログラム３２０ａについては、適宜分離しても良い。【００８９】
ＨＤＤ３３０には、各種データを記憶する。例えば、ＨＤＤ３３０は、ＯＳや障害の検出に用いる各種データを記憶する。【００９０】
そして、ＣＰＵ３１０が、障害検出プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例１の各処理部と同様の動作を実行する。すなわち、障害検出プログラム３２０ａは、実施例１の格納部４０、更新部４１、特定部４２、登録部４３、検出部４４、通知部４５、削除部４６と同様の動作を実行する。【００９１】
なお、上記した障害検出プログラム３２０ａについては、必ずしも最初からＲＯＭ３２０に記憶させることを要しない。障害検出プログラム３２０ａはＨＤＤ３３０に記憶させてもよい。【００９２】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、Compact  Disk  Read  Only  Memory（ＣＤ−ＲＯＭ）、Digital  Versatile  Disk（ＤＶＤ）、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。【００９３】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００９４】
１０      管理装置
２０      通信Ｉ／Ｆ部
２１      記憶部
２２      制御部
３０      メッセージログ
３１      メッセージ情報テーブル
３２      パターンテーブル
４０      格納部
４１      更新部
４２      特定部
４３      登録部
４４      検出部
４５      通知部
４６      削除部
【図１】
2014024283.tif 000005
【図２】
2014024283.tif 000006
【図３】
2014024283.tif 000007
【図４】
2014024283.tif 000008
【図５】
2014024283.tif 000009
【図６】
2014024283.tif 000010
【図７】
2014024283.tif 000011
【図８】
2014024283.tif 000012
【図９】
2014024283.tif 000013
【図１０】
2014024283.tif 000014
【図１１】
2014024283.tif 000015
【図１２】
2014024283.tif 000016
【図１３】
2014024283.tif 000017
【図１４】
2014024283.tif 000018
【図１５】
2014024283.tif 000019
【図１６】
2014024283.tif 000020
【図１７】
2014024283.tif 000021
【図１８】
2014024283.tif 000022
【国際調査報告】
2014024283.tif 000023
2014024283.tif 000024