(57)【要約】  メッセージ判定装置（９）は、システムで発生したメッセージを記憶する記憶部（１１）と、記憶部（１１）によって記憶されたメッセージから発生間隔が一定範囲であるメッセージを抽出する抽出部（１２）と、システムで発生したメッセージのうち抽出部（１２）によって抽出されたメッセージについて発生間隔が一定範囲を外れたか否かを判定する判定部（１３）とを有することとしたので、一定範囲を外れた場合にシステムの障害を検知できる。
2012160637.tif 000002
【特許請求の範囲】
【請求項１】
システムで発生したメッセージを記憶する記憶部と、
前記記憶部によって記憶されたメッセージから発生間隔が一定範囲であるメッセージを抽出する抽出部と
前記システムで発生したメッセージのうち前記抽出部によって抽出されたメッセージについて発生間隔が前記一定範囲を外れたか否かを判定する判定部と
を有することを特徴とするメッセージ判定装置。
【請求項２】
前記抽出部は、前記記憶部によって記憶されたそれぞれのメッセージを分類し、分類して得られたメッセージの種類から発生間隔が一定範囲であるメッセージの種類を抽出し、
前記判定部は、前記抽出部によって抽出されたメッセージの種類について発生間隔が前記一定範囲を外れたか否かを判定することを特徴とする請求項１に記載のメッセージ判定装置。
【請求項３】
前記抽出部は、前記記憶部によって記憶されたメッセージから発生間隔が一定範囲であるメッセージの集合を抽出し、
前記判定部は、前記抽出部によって抽出されたメッセージの集合について発生間隔が前記一定範囲を外れたか否かを判定することを特徴とする請求項１または２に記載のメッセージ判定装置。
【請求項４】
前記抽出部は、一定期間毎または不定期毎に前記メッセージを抽出し、
前記判定部は、前記抽出部によって抽出されたメッセージについて発生間隔が前記一定範囲を外れたか否かを判定することを特徴とする請求項１または２に記載のメッセージ判定装置。
【請求項５】
コンピュータに、
システムで発生したメッセージを記憶した記憶部から発生間隔が一定範囲であるメッセージを抽出し、
前記システムで発生したメッセージのうち前記抽出する処理によって抽出されたメッセージについて発生間隔が前記一定範囲を外れたか否かを判定する
処理を実行させることを特徴とするメッセージ判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ判定装置等に関する。
【背景技術】
【０００２】
従来から、メッセージを基に運用を管理する電子計算機システムでは、システム内の機器やアプリケーション等が異常時に異常に関するメッセージを出力する。そして、運用を管理する管理装置が、異常時に出力されるメッセージを監視し、システムの異常を検知する。【０００３】
また、管理装置は、異常時に出力されるメッセージとは別に、システム内の機器やアプリケーション等から正常時に出力されるメッセージを監視することで、システムの異常を検知する。このとき、運用を管理する運用管理者は、システムの機器構成やシステムの動作等に対応させて、手作業で、監視対象とするメッセージを運用に関するルールとして定義する。これにより、管理装置は、運用に関するルールに基づいて、ルールに定義された監視対象のメッセージを監視して、システムの異常を検知できる。【０００４】
ここで、メッセージを監視して異常を検知する技術がある。この技術では、管理装置が、分散システムが正常に運用された場合に生成される１または２以上の連続したメッセージの組み合わせであって、該メッセージを一意に識別する識別子と該識別子が示す各メッセージの発生回数とを構成要素とする通常パターンを記憶する。そして、管理装置は、通常パターンを参照し、収集したメッセージの識別子と一致する識別子を検索し、該当する識別子が存在する場合には該識別子が示すメッセージの発生回数をカウントする。そして、管理装置は、カウントした発生回数があらかじめ定義された値以上若しくは以下の場合に、異常と判断する。【０００５】
また、イベントを監視してＣＰＵ（Central  Processing  Unit）の処理能力を検知する技術がある。この技術では、中継機能付きの機器が、パケットの宛先が自機器宛て以外の場合には、定期的に発生するイベントの発生間隔を監視し、監視したイベントの発生間隔があらかじめ定められた間隔を超えているか否かによってＣＰＵの処理能力を判断する。そして、機器は、イベントの発生間隔があらかじめ定められた間隔を超えている場合に、ＣＰＵの余力がないことを検知する。【０００６】
また、ＦＣＳ（Frame  Check  Sequence）エラーフレーム（以降、エラーフレームという。）を検出してネットワークシステム上の障害を検知する技術がある。この技術では、障害予測装置が、あるエラーフレームとその次に発生するエラーフレームとの間に伝送路上を伝送するフレームの総ビット数であるエラーフレーム間ビット数を算出する。そして、障害予測装置は、算出したビット数と、統計的に自然に発生する伝送路ビットエラーの発生率に対応する伝送ビット数に基づいて算出される閾値とを比較して、ネットワークシステム上の障害を検知する。そして、障害予測装置は、算出したビット数が閾値よりも小さいとき、ネットワークシステム上で障害が発生していると判定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−９６８３５号公報
【特許文献２】特開平１１−２２４２１４号公報
【特許文献３】特開平８−１３９７２２号公報
【特許文献４】特開２００６−３１８０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、管理装置はシステムの異常を検知することが難しい場合があるという問題があった。【０００９】
例えば、システム内の機器に異常が発生した場合、異常が発生した機器は、メッセージを適正に出力できない。すなわち、異常が発生した機器は、正常時に出力していたメッセージを出力できなかったり、正常時であれば出力するはずのタイミングで出力できなかったりする。また、異常が発生した機器は、かならずしもあらゆる異常について、異常に関するメッセージを出力するわけではない。そうすると、運用管理者が監視対象であるメッセージ等を運用に関するルールとして定義しても、管理装置は定義されたルールを用いて、異常を検知できない場合がある。【００１０】
また、運用管理者が運用に関するルールを定義することは難しい。すなわち、運用管理者が運用に関するルールを手作業で定義するためには、システムの機器構成やシステムの動作等に関する十分な知識を持つことが望ましい。加えて、運用管理者が、例えば他者から運用を引き継ぐ場合、十分な知識を入手できない場合もある。そうすると、運用管理者は運用に関するルールを手作業で定義することが難しいので、管理装置は、異常を検知することが困難となる。【００１１】
しかも、例えば、クラウドコンピューティングのようにシステムの機器構成が頻繁に変化する場合、運用管理者は、運用に関するルールを定義することは難しくなるので、管理装置は異常を検知することが、なおさら困難となる。【００１２】
メッセージを監視して障害を検知する従来の技術であっても、カウントした発生回数と比較する値や、イベントの発生間隔と比較する間隔や、障害を検知するために用いられるエラーフレーム等を、運用管理者があらかじめ運用に関するルールとして定義する。そうすると、管理装置は異常を検知することが難しい場合があるという問題が同様にある。【００１３】
１つの側面では、システムの異常を検知することを目的とする。
【課題を解決するための手段】
【００１４】
第１の案では、メッセージ判定装置は、システムで発生したメッセージを記憶する記憶部と、前記記憶部によって記憶されたメッセージから発生間隔が一定範囲であるメッセージを抽出する抽出部と前記システムで発生したメッセージのうち前記抽出部によって抽出されたメッセージについて発生間隔が前記一定範囲を外れたか否かを判定する判定部とを備える。
【発明の効果】
【００１５】
システムの異常を検知することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係るメッセージ判定装置の構成を示す機能ブロック図である。
【図２】図２は、実施例１に係る管理装置の構成を示す機能ブロック図である。
【図３】図３は、実施例１に係る発生間隔テーブルのデータ構造の一例を示す図である。
【図４】図４は、実施例１に係る監視用テーブルのデータ構造の一例を示す図である。
【図５Ａ】図５Ａは、メッセージの分類手法の例（メッセージ種類ＩＤ型）を示す図である。
【図５Ｂ】図５Ｂは、メッセージの分類手法の別の例（正規表現型）を示す図である。
【図５Ｃ】図５Ｃは、メッセージの分類手法の別の例（類似度判定型）を示す図である。
【図６】図６は、実施例１に係る監視用情報生成の処理手順を示すフローチャートである。
【図７Ａ】図７Ａは、通常より短期間でメッセージが発生している場合の障害検知の処理手順を示すフローチャートである。
【図７Ｂ】図７Ｂは、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合の障害検知の処理手順を示すフローチャートである。
【図８】図８は、実施例３に係る管理装置の構成を示す機能ブロック図である。
【図９】図９は、実施例３に係る発生間隔テーブルのデータ構造の一例を示す図である。
【図１０】図１０は、実施例３に係る監視用テーブルのデータ構造の一例を示す図である。
【図１１】図１１は、一定期間に発生したメッセージをパターンとして抽出する手法の一例を示す図である。
【図１２】図１２は、メッセージパターンの同一判定の具体例を説明する図である。
【図１３】図１３は、実施例３に係る監視用情報生成の処理手順を示すフローチャートである。
【図１４Ａ】図１４Ａは、通常より短期間でメッセージが発生している場合の障害検知の処理手順を示すフローチャートである。
【図１４Ｂ】図１４Ｂは、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合の障害検知の処理手順を示すフローチャートである。
【図１５】図１５は、メッセージ判定プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示するメッセージ判定装置およびメッセージ判定プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例１】
【００１８】
図１は、本実施例１に係るメッセージ判定装置の構成を示す機能ブロック図である。図１に示すように、メッセージ判定装置９は、記憶部１１、抽出部１２および判定部１３を有する。メッセージ判定装置９としては、ＰＣ（Personal  Computer）等の装置を含む、システム全体を管理するための管理端末が挙げられる。また、メッセージ判定装置９は、システム内の例えばＰＣ等の各機器とネットワークを介して接続されている。システム内の各機器は、異常時および正常時に発生したメッセージをメッセージ判定装置９に出力する。【００１９】
記憶部１１は、システムで発生したメッセージを記憶する。抽出部１２は、記憶部１１によって記憶されたメッセージから発生間隔が一定範囲であるメッセージを抽出する。【００２０】
判定部１３は、システムで発生したメッセージのうち抽出部１２によって抽出されたメッセージについて発生間隔が一定範囲を外れたか否かを判定する。【００２１】
このようにして、メッセージ判定装置９は、システムで発生したメッセージから発生間隔が一定範囲であるメッセージを抽出するので、メッセージについての発生間隔の判定に抽出したメッセージを用いることにより、システムの異常を検知できる。
【実施例２】
【００２２】
［実施例２に係る管理装置の構成］
次に、実施例２について説明する。実施例２では、メッセージ判定装置の一例として、ネットワークシステム内の各機器から出力されるメッセージを監視する管理装置を採用した場合について説明する。【００２３】
図２は、実施例２に係る管理装置の構成を示す機能ブロック図である。図２に示すように、管理装置１は、ネットワーク制御部３１、収集部３２、監視用情報生成部３３、検知部３４、警告部３５および記憶部３６を有する。【００２４】
記憶部３６は、メッセージログ３６１、発生間隔テーブル３６２および監視用テーブル３６３を有する。なお、記憶部３６は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（flash  memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。【００２５】
ネットワーク制御部３１は、ネットワークを介して通信を行い、ここでは、ネットワークシステム内の各機器と通信を行い各機器から出力されるメッセージを受信する。なお、ネットワークは、有線であっても、無線であっても良く、ネットワークシステム内の各機器と通信を行えるものであれば良い。【００２６】
収集部３２は、ネットワークシステムの運用時にネットワーク制御部３１によって受信されたメッセージを受け取り、受け取ったメッセージを収集する。そして、収集部３２は、収集したメッセージを、メッセージの発生履歴を記憶するメッセージログ３６１に格納する。収集部３２によって収集されるメッセージは、ネットワークシステム内の各機器によって出力されるメッセージを意味し、重要なメッセージおよび重要でないメッセージを含む。ここでいう重要なメッセージとは、システムの障害検知を行う際に用いられる監視対象となるメッセージをいい、重要でないメッセージとは、それ以外のメッセージをいう。なお、監視対象となるメッセージを抽出する方法の詳細については後述する。【００２７】
監視用情報生成部３３は、メッセージログ３６１を解析して、システムの障害検知を行う際に用いられる情報である監視用情報を生成する。監視用情報には、例えば、監視対象となるメッセージや障害か否かを判定する閾値が含まれる。すなわち、監視用情報には、運用に関するルールを定義した情報が含まれる。なお、監視用情報生成部３３は、一定期間毎または不定期毎に監視用情報を更新し、ネットワークシステムの最新の機器構成に対応させた情報を生成する。一定期間の例として、１時間であっても良いし、１日であっても良い。また、不定期の例として、機器構成が変化した時期や機器が追加された時期が挙げられる。【００２８】
さらに、監視用情報生成部３３は、算出部３３１および抽出部３３２を有する。【００２９】
算出部３３１は、メッセージログ３６１を解析して、メッセージの種類毎の発生間隔を算出する。例えば、算出部３３１は、メッセージログ３６１に記憶されたメッセージのうち最も古い時刻から昇順に１個ずつメッセージを選択し、選択したメッセージを分類する。一例として、メッセージの特定のフィールドを、メッセージの種類を示すＩＤ（IDentification）に割り当てておき、算出部３３１は、選択したメッセージについて、特定のフィールドに割り当てられたＩＤを当該メッセージの種類として分類する。なお、メッセージの分類手法の詳細については後述する。【００３０】
また、算出部３３１は、分類したメッセージの種類に該当するエントリを、メッセージの種類毎に発生間隔を管理する発生間隔テーブル３６２から検索する。そして、算出部３３１は、該当するエントリを検索できなかった場合には、選択したメッセージに関するエントリを発生間隔テーブル３６２に追加する。一方、算出部３３１は、該当するエントリを検索できた場合には、メッセージログ３６１に記憶されたメッセージに基づいて、分類したメッセージと、発生時刻が当該メッセージと最も近い同一種類のメッセージとの発生間隔を算出する。そして、算出部３３１は、算出した発生間隔に関連する情報を発生間隔テーブル３６２の該当するエントリに対して更新する。一例として、算出部３３１は、分類したメッセージについて、該当するエントリのメッセージの種類に対応する発生回数を１加算し、加算した発生回数を更新する。この場合、算出部３３１は、該当するエントリのメッセージの種類に対応させて発生間隔を記憶部３６に一時的に保持する。これは、メッセージログ３６１の開始から終端までのメッセージについて、メッセージの分類および発生間隔の算出が終了した後、分類したメッセージの発生間隔の平均間隔および標準偏差を算出するためである。【００３１】
そして、算出部３３１は、メッセージログ３６１の開始から終端までのメッセージを分類し、さらに発生間隔を算出する処理を繰り返す。そして、算出部３３１は、メッセージログ３６１の終端まで処理すると、発生間隔テーブル３６２に記憶された発生回数およびメッセージ種類に対応させて一時的に保持した発生間隔に基づいて、メッセージの種類に対応した発生間隔の平均間隔を算出する。さらに、算出部３３１は、算出した平均間隔および一時的に保持した発生間隔を用いて、メッセージの種類に対応した発生間隔の分散を算出し、算出した分散から標準偏差を算出する。そして、算出部３３１は、発生間隔テーブル３６２のメッセージの種類に対応した該当するエントリに、算出した標準偏差を更新する。【００３２】
なお、算出部３３１は、メッセージログ３６１に記憶されたメッセージのうち最も古い時刻から昇順に１個ずつメッセージを選択するものとして説明したが、これに限定されず、最も新しい時刻から降順に１個ずつメッセージを選択するものとしても良い。【００３３】
ここで、発生間隔テーブル３６２のデータ構造について、図３を参照して説明する。図３は、実施例２に係る発生間隔テーブルのデータ構造の一例を示す図である。図３に示すように、発生間隔テーブル３６２は、メッセージの種類３６２ａ毎に発生回数３６２ｂ、平均間隔３６２ｃおよび標準偏差３６２ｄを対応付けて記憶する。メッセージの種類３６２ａは、メッセージの種類を示す。メッセージの種類３６２ａとして、例えば、メッセージを一意に表すＩＤ（メッセージ種類ＩＤ）を用いることができる。発生回数３６２ｂは、メッセージの種類３６２ａに対応したメッセージの発生回数を示す。平均間隔３６２ｃは、メッセージの種類３６２ａに対応した発生間隔の平均を示す。標準偏差３６２ｄは、メッセージの種類３６２ａに対応した発生間隔の標準偏差を示す。例えば、メッセージの種類３６２ａが「Ｃ」である場合、発生回数３６２ｂの値として「２４０６」、平均間隔３６２ｃの値として「１２０．２」秒、標準偏差３６２ｄの値として「１０．５」秒を記憶している。【００３４】
抽出部３３２は、メッセージの発生間隔が一定範囲となるメッセージを監視対象として抽出する。例えば、抽出部３３２は、発生間隔テーブル３６２に記憶された発生間隔の平均を示す平均間隔および標準偏差に基づいて、平均間隔からの発生間隔のばらつきが一定の範囲に収まるメッセージの種類を抽出する。抽出した種類のメッセージが監視対象となる。一例として、抽出部３３２は、標準偏差を平均間隔で割ったときの商が一定の範囲を示す「０．１」以下のメッセージの種類を抽出する。すなわち、平均間隔の１０％以下を一定の範囲とする。そして、抽出部３３２は、抽出したメッセージの種類に対応するエントリを、監視対象であるメッセージの種類を管理する監視用テーブル３６３に格納する。なお、抽出部３３２は、標準偏差を平均間隔で割ったときの商が「０．１」より小さいメッセージを抽出するものとしたが、これに限定されず、システムの機器構成やシステムの動作に応じた値より小さいメッセージを抽出するようにしても良い。【００３５】
ここで、監視用テーブル３６３のデータ構造について、図４を参照して説明する。図４は、実施例２に係る監視用テーブルのデータ構造の一例を示す図である。図４に示すように、監視用テーブル３６３は、メッセージの種類３６３ａ毎に平均間隔３６３ｂ、標準偏差３６３ｃ、直近のメッセージ３６３ｄおよび前回からの経過時間３６３ｅを対応付けて記憶する。メッセージの種類３６３ａは、監視対象であるメッセージの種類を示す。平均間隔３６３ｂは、メッセージの種類３６３ａに対応した発生間隔の平均を示す。標準偏差３６３ｃは、メッセージの種類３６３ａに対応した発生間隔の標準偏差を示す。直近のメッセージ３６３ｄは、直近に発生したメッセージを示す。直近のメッセージ３６３ｄとして、例えば、直近にメッセージが発生した場合に「○」、直近にメッセージが発生していない場合に「−」を用いることができる。前回からの経過時間３６３ｅは、同一種類のメッセージについて、前回発生した時刻から現在の時刻までの経過時間を示す。例えば、メッセージの種類３６３ａが「Ｃ」である場合、平均間隔３６３ｂの値として「１２０．２」秒、標準偏差３６３ｃの値として「１０．５」秒、直近のメッセージ３６３ｄとして「○」、前回からの経過時間３６３ｅとして「１１５」秒を記憶している。【００３６】
検知部３４は、ネットワーク制御部３１によって受信されたメッセージを受け取り、受け取ったメッセージが抽出部３３２によって抽出された監視対象であれば、監視対象について発生間隔を監視する。そして、検知部３４は、監視対象の発生間隔が当該監視対象に対応する一定範囲を外れた場合に、ネットワークシステムの障害として検知する。一定範囲を外れた場合には、通常より短期間でメッセージが発生している場合と、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合とに分けられる。【００３７】
まず、通常より短期間でメッセージが発生している場合について説明する。例えば、検知部３４は、メッセージを受け取ったとき、受け取ったメッセージを分類する。なお、分類手法は、算出部３３１で分類した手法と同様の手法を用いるものとする。そして、検知部３４は、分類したメッセージの種類に該当するエントリを監視用テーブル３６３から検索する。そして、検知部３４は、検索できた場合には、メッセージログ３６１に記憶されたメッセージに基づいて、該当するエントリの経過時間を算出する。すなわち、検知部３４は、受け取ったメッセージの時刻と最も近い同一エントリのメッセージの時刻から、受け取ったメッセージの時刻までの経過時間を算出する。そして、検知部３４は、算出した経過時間が閾値以下であるか否かを判定する。そして、検知部３４は、算出した経過時間が閾値以下である場合、通常より短期間でメッセージが発生していると判定し、ネットワークシステムの障害として検知する。【００３８】
次に、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合について説明する。例えば、検知部３４は、監視用テーブル３６３に記憶された複数のエントリの各メッセージについて、メッセージログ３６１に記憶されたメッセージの情報を用いて、前回発生した時刻から現在の時刻までの経過時間を算出する。そして、検知部３４は、算出した経過時間が閾値以上であるか否かを判定する。そして、検知部３４は、算出した経過時間が閾値以上である場合、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生していると判定し、ネットワークシステムの障害として検知する。【００３９】
ここで、閾値の一例について示す。閾値は、メッセージの種類毎に決定される。そして、閾値は、メッセージの種類毎に発生する複数のメッセージの発生間隔のうち略９５％を含むこととなる発生間隔の上下限値を用いることができる。つまり、式（１）に示すように、平均間隔から標準偏差に２を乗じた値を引いた値から、標準偏差に２を乗じた値を平均間隔に加算した値までの発生間隔Ｘは、発生間隔テーブル３６２の各エントリに関わるメッセージのうち略９５％のメッセージの発生間隔を含む。
平均間隔−標準偏差×２＜発生間隔Ｘ＜平均間隔＋標準偏差×２・・・式（１）
したがって、略９５％を超えた発生間隔をシステムの障害とする。そこで、通常より短期間でメッセージが発生している場合の閾値は、下限値を用いることができる。一方、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合の閾値は、上限値を用いることができる。【００４０】
警告部３５は、検知部３４によって障害が検知されると、例えばディスプレイへの表示、所定のメールアドレスへのメール送信等によって障害が検知されたことを警告する。【００４１】
［メッセージの分類手法］
次に、メッセージの分類手法について、図５Ａ〜図５Ｃを用いて説明する。図５Ａは、メッセージの分類手法の例（メッセージ種類ＩＤ型）を示す図である。図５Ａに示すように、メッセージ種類ＩＤ型は、メッセージの特定のフィールドを、メッセージの種類を示すＩＤとする。そして、算出部３３１および検知部３４は、メッセージのＩＤによってメッセージを分類する。図５Ａの例では、メッセージの特定のフィールドにある「ＡＰ０２０Ｓ００１」がメッセージの種類を示すＩＤ、すなわちメッセージ種類ＩＤとなる。【００４２】
図５Ｂは、メッセージの分類手法の別の例（正規表現型）を示す図である。図５Ｂに示すように、正規表現型は、メッセージの種類を識別するための正規表現をメッセージ辞書に持つ。そして、算出部３３１および検知部３４は、入力されたメッセージをメッセージ辞書の正規表現と比較することでメッセージを分類する。【００４３】
図５Ｃは、メッセージの分類手法の別の例（類似度判定型）を示す図である。図５Ｃに示すように、類似度判定型は、過去のメッセージログ３６１から学習したメッセージを学習辞書に持つ。そして、算出部３３１および検知部３４は、入力されたメッセージを学習辞書の各メッセージの文字列と比較し、比較した結果、類似度により入力されたメッセージを分類する。図５Ｃの例では、入力されたメッセージＭ０は、学習辞書内のＩＤ「００１」のメッセージと比較され、９語中６語、すなわち６６．６６６％の類似度となる。一方、入力されたメッセージＭ０は、学習辞書内のＩＤ「００２」のメッセージと比較され、９語中１語、すなわち１１．１１％の類似度となる。ここで、同一種類に分類する基準値を６０％とした場合、入力されたメッセージＭ０は、ＩＤ「００１」として分類される。【００４４】
［実施例２に係る監視用情報生成の処理手順］
次に、実施例２に係る監視用情報生成の処理手順を、図６を参照して説明する。図６は、実施例２に係る監視用情報生成の処理手順を示すフローチャートである。なお、メッセージログ３６１には、ネットワークシステム内の各機器から出力されたメッセージが収集部３２によって記憶されているものとする。【００４５】
まず、算出部３３１は、監視用情報の生成要求があったか否かを判定する（ステップＳ１１）。監視用情報の生成要求がなかったと判定した場合（ステップＳ１１；Ｎｏ）、算出部３３１は、監視用情報の生成要求があると判定するまで、判定処理を繰り返す。一方、監視用情報の生成要求があったと判定した場合（ステップＳ１１；Ｙｅｓ）、算出部３３１は、メッセージログ３６１のファイルをオープンする（ステップＳ１２）。【００４６】
そして、算出部３３１は、メッセージログ３６１に記憶されたメッセージのうち１メッセージを読み込む（ステップＳ１３）。例えば、算出部３３１は、メッセージログ３６１に記憶されたメッセージを最も古い時刻から昇順に読み込む。【００４７】
続いて、算出部３３１は、読み込んだメッセージを分類する（ステップＳ１４）。例えば、算出部３３１は、読み込んだメッセージについて、特定のフィールドに割り当てられたＩＤを当該メッセージの種類として分類する。そして、算出部３３１は、分類したメッセージの種類に該当するエントリを発生間隔テーブル３６２から検索する（ステップＳ１５）。【００４８】
ここで、算出部３３１は、該当するエントリがみつかったか否かを判定する（ステップＳ１６）。該当するエントリがみつからなかったと判定した場合（ステップＳ１６；Ｎｏ）、算出部３３１は、分類したメッセージに関するエントリを発生間隔テーブル３６２に追加し（ステップＳ１７）、ステップＳ１８に移行する。【００４９】
一方、該当するエントリがみつかったと判定した場合（ステップＳ１６；Ｙｅｓ）、算出部３３１は、メッセージログ３６１に基づいて、分類したメッセージと、当該メッセージと最も近い同一種類のメッセージとの発生間隔を算出する（ステップＳ１８）。【００５０】
そして、算出部３３１は、該当するエントリに対して、算出した発生間隔に関連する情報を更新する（ステップＳ１９）。例えば、算出部３３１は、該当するエントリのメッセージの種類に対応した発生回数を１加算し、加算した発生回数を更新する。このとき、算出部３３１は、該当するエントリのメッセージの種類に対応させて発生間隔を記憶部３６に一時的に保持する。【００５１】
そして、算出部３３１は、メッセージログの終端であるか否かを判定する（ステップＳ２０）。メッセージログの終端でないと判定した場合（ステップＳ２０；Ｎｏ）、算出部３３１は、次のメッセージを読み込むため、ステップＳ１３に移行する。【００５２】
一方、メッセージログの終端であると判定した場合（ステップＳ２０；Ｙｅｓ）、算出部３３１は、発生間隔テーブル３６２に記憶されたエントリに基づいて、全エントリの発生間隔の標準偏差を算出する（ステップＳ２１）。例えば、算出部３３１は、発生間隔テーブル３６２に記憶された発生回数およびエントリのメッセージの種類に対応させて一時的に保持した発生間隔に基づいて、メッセージの種類に対応した発生間隔の平均間隔を算出する。そして、算出部３３１は、算出した平均間隔および一時的に保持した発生間隔を用いて、メッセージの種類に対応した発生間隔の分散を算出し、算出した分散からメッセージの種類に対応した標準偏差を算出する。【００５３】
続いて、抽出部３３２は、エントリのメッセージの種類毎に算出した標準偏差と平均間隔の比が閾値以下のエントリを抽出し、抽出したエントリを監視用テーブル３６３に追加する（ステップＳ２２）。閾値には、例えば、平均間隔の１０％を示す「０．１」が適用されるが、これに限定されるものではない。【００５４】
［実施例２に係る障害検知の処理手順］
次に、実施例２に係る障害検知の処理手順を、図７Ａおよび図７Ｂを参照して説明する。図７Ａは、通常より短期間でメッセージが発生している場合の障害検知の処理手順を示す。図７Ｂは、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合の障害検知の処理手順を示す。【００５５】
最初に、通常より短期間でメッセージが発生する場合の障害検知の処理手順について、図７Ａを参照して説明する。まず、検知部３４は、メッセージを受け取ったか否かを判定する（ステップＳ３１）。メッセージを受け取っていないと判定した場合（ステップＳ３１；Ｎｏ）、検知部３４は、メッセージを受け取るまで判定処理を繰り返す。一方、メッセージを受け取ったと判定した場合（ステップＳ３１；Ｙｅｓ）、検知部３４は、受け取ったメッセージを分類する（ステップＳ３２）。例えば、検知部３４は、受け取ったメッセージについて、特定のフィールドに割り当てられたＩＤを当該メッセージの種類として分類する。【００５６】
そして、検知部３４は、分類したメッセージの種類に該当するエントリを監視用テーブル３６３から検索する（ステップＳ３３）。ここで、検知部３４は、該当するエントリがみつかったか否かを判定する（ステップＳ３４）。該当するエントリがみつからなかったと判定した場合（ステップＳ３４；Ｎｏ）、検知部３４は、受け取ったメッセージが監視対象でないので、ステップＳ３１に移行する。【００５７】
一方、該当するエントリがみつかったと判定した場合（ステップＳ３４；Ｙｅｓ）、検知部３４は、監視用テーブル３６３の直近のメッセージ３６３ｄのフィールドを更新する（ステップＳ３５）。すなわち、検知部３４は、該当するエントリの直近のメッセージ３６３ｄのフィールドを「○」に更新し、それ以外のエントリの直近のメッセージ３６３ｄのフィールドを「−」に更新する。【００５８】
そして、検知部３４は、該当するエントリの経過時間を算出する（ステップＳ３６）。すなわち、検知部３４は、受け取ったメッセージの時刻に最も近い同一エントリのメッセージの時刻から、受け取ったメッセージの時刻までの経過時間を算出する。そして、検知部３４は、算出した経過時間が閾値（例えば、前述した下限値）以下であるか否かを判定する（ステップＳ３７）。経過時間が閾値以下でないと判定した場合（ステップＳ３７；Ｎｏ）、検知部３４は、通常より短期間でメッセージが発生していないので、ステップＳ３１に移行する。【００５９】
一方、経過時間が閾値以下であると判定した場合（ステップＳ３７；Ｙｅｓ）、検知部３４は、通常より短期間でメッセージが発生していると判定し、ネットワークシステムの障害として検知する（ステップＳ３８）。そして、警告部３５は、検知部３４からネットワークシステムの障害を検知した旨の通知に応じて、例えばディスプレイへの表示、所定のメールアドレスへのメール送信等によってアラートを行う（ステップＳ３９）。【００６０】
次に、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合の障害検知の処理手順について、図７Ｂを参照して説明する。まず、検知部３４は、一定時間が経過したか否かを判定する（ステップＳ４１）。一定時間が経過していないと判定した場合（ステップＳ４１；Ｎｏ）、検知部３４は、一定時間が経過するまで待機すべく、ステップＳ４１に移行する。なお、一定時間の例として、１分間であっても良いし、５分間であっても良く、システムの機器構成やシステムの動作に応じた時間を適用すれば良い。【００６１】
一方、一定時間が経過していると判定した場合（ステップＳ４１；Ｙｅｓ）、検知部３４は、監視用テーブル３６３に記憶された各エントリの経過時間を算出する（ステップＳ４２）。例えば、検知部３４は、監視用テーブル３６３に記憶された各エントリについて、メッセージログ３６１に記憶されたメッセージの情報を用いて、前回発生した時刻から現在の時刻までの経過時間を算出する。【００６２】
そして、検知部３４は、経過時間が閾値（例えば、前述した上限値）以上であるエントリはあったか否かを判定する（ステップＳ４３）。経過時間が閾値以上であるエントリはなかったと判定した場合（ステップＳ４３；Ｎｏ）、検知部３４は、どのエントリも通常の経過時間でメッセージが存在しているので、ステップＳ４１に移行する。【００６３】
一方、経過時間が閾値以上のエントリはあったと判定した場合（ステップＳ４３；Ｙｅｓ）、検知部３４は、当該エントリについて、発生するはずのメッセージが発生していないので、ネットワークシステムの障害として検知する（ステップＳ４４）。そして、警告部３５は、検知部３４から当該エントリについてネットワークシステムの障害を検知した旨の通知に応じて、例えばディスプレイへの表示、所定のメールアドレスへのメール送信等によってアラートを行う（ステップＳ４５）。【００６４】
このように、収集部３２は、ネットワークシステムで発生したメッセージをメッセージログ３６１に格納する。そして、抽出部３３２は、メッセージログ３６１によって記憶されたメッセージの発生間隔が一定範囲となるメッセージを抽出する。したがって、抽出部３３２は、メッセージの発生間隔が一定範囲となるメッセージを抽出するので、抽出したメッセージを監視対象とすることができ、監視対象とするメッセージを含め監視用情報を自動的に定義することができる。【００６５】
また、検知部３４は、ネットワークシステムで発生したメッセージのうち抽出部３３２によって抽出されたメッセージについて発生間隔が一定範囲を外れたか否かを判定する。したがって、検知部３４は、抽出部３３２によって抽出されたメッセージについて発生間隔が一定範囲を超えるような場合、例えば当該メッセージが出力されないことを原因としたシステム障害を容易に検知できる。また、検知部３４は、抽出部３３２によって抽出されたメッセージについて発生間隔が一定範囲を下回るような場合、例えば当該メッセージが短期間で出力されることを原因としたシステム障害を容易に検知できる。【００６６】
また、抽出部３３２は、メッセージログ３６１に記憶されたそれぞれのメッセージの種類を分類する。そして、抽出部３３２は、分類したメッセージの種類毎にメッセージの発生間隔が一定範囲となる種類のメッセージを抽出する。したがって、抽出部３３２は、メッセージ同士が完全一致のメッセージだけを抽出するのではなく、完全一致でないメッセージ同士を１つの種類のメッセージとして抽出できるので、汎用性の高い障害検知を行うことができる。
【実施例３】
【００６７】
ところで、実施例２の管理装置１では、メッセージの発生間隔が一定範囲となる種類のメッセージを監視対象として抽出する場合について説明した。しかしながら、管理装置１は、これに限定されず、メッセージのパターンの発生間隔が一定範囲となるメッセージのパターンを監視対象として抽出しても良い。ここでいうメッセージのパターンとは、一定期間内に発生するメッセージの集合をいう。すなわち、管理装置１は、発生間隔が一定範囲となるメッセージの集合を抽出する。【００６８】
そこで、実施例３では、管理装置２が、メッセージログ３６１に記憶されたメッセージのパターンを抽出し、抽出したメッセージのパターン毎に、各パターンの発生間隔が一定範囲となるパターンを監視対象として抽出する場合を説明する。【００６９】
［実施例３に係る管理装置の構成］
図８は、実施例３に係る管理装置の構成を示す機能ブロック図である。なお、図２に示す管理装置１と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例２と実施例３とが異なるところは、監視用情報生成部３３の算出部３３１を算出部３３１Ａに変更し、抽出部３３２を抽出部３３２Ａに変更した点にある。また、実施例２と実施例３とが異なるところは、記憶部３６の発生間隔テーブル３６２を発生間隔テーブル３６２Ａに変更し、監視用テーブル３６３を監視用テーブル３６３Ａに変更した点にある。また、実施例２と実施例３とが異なるところは、検知部３４を検知部３４Ａに変更した点にある。【００７０】
算出部３３１Ａは、メッセージログ３６１を解析して、メッセージのパターン毎の発生間隔を算出する。例えば、算出部３３１Ａは、メッセージログ３６１に記憶されたメッセージを１個ずつ選択し、選択したメッセージを分類する。一例として、メッセージの特定のフィールドを、メッセージの種類を示すＩＤ（IDentification）に割り当てておき、算出部３３１Ａは、選択したメッセージについて、特定のフィールドに割り当てられたＩＤを当該メッセージの種類として分類する。なお、メッセージの分類手法については、図５Ａ〜図５Ｃで説明したとおりであるので、説明を省略する。【００７１】
また、算出部３３１Ａは、選択したメッセージの発生時刻から一定期間前までに発生したメッセージをパターンとして抽出する。なお、一定期間の例として、２分間であっても良いし、３分間であっても良く、システムの機器構成やシステム動作に応じた時間を適用すれば良い。また、一定期間に発生したメッセージをパターンとして抽出する手法の詳細については後述する。【００７２】
また、算出部３３１Ａは、抽出したパターンに該当するエントリを発生間隔テーブル３６２Ａから検索する。そして、算出部３３１Ａは、検索できなかった場合には、選択したパターンに該当するエントリを発生間隔テーブル３６２Ａに追加する。そして、算出部３３１Ａは、メッセージログ３６１に記憶されたメッセージに基づいて、抽出したパターンと、発生時刻が当該パターンに最も近い同一のパターンとの発生間隔を算出する。そして、算出部３３１Ａは、発生間隔テーブル３６２Ａの該当するエントリに対して、算出した発生間隔に関連する情報を更新する。一例として、算出部３３１Ａは、抽出したパターンについて、該当するエントリのパターンに対応する発生回数を１加算し、加算した発生回数を更新する。このとき、算出部３３１Ａは、該当するエントリのパターンに対応させて発生間隔を記憶部３６に一時的に保持する。これは、メッセージログ３６１の開始から終端までのメッセージについて、パターンの抽出および発生間隔の算出が終了した後、抽出したパターンの発生間隔の平均間隔および標準偏差を算出するためである。【００７３】
そして、算出部３３１Ａは、メッセージログ３６１の開始から終端までのメッセージについて、メッセージのパターンを抽出し、さらに抽出したメッセージのパターンの発生間隔を算出する処理を繰り返す。そして、算出部３３１Ａは、メッセージログ３６１の終端まで処理すると、発生間隔テーブル３６２Ａに記憶された発生回数およびパターンに対応させて一時的に保持した発生間隔に基づいて、パターンに対応した発生間隔の平均間隔を算出する。さらに、算出部３３１Ａは、算出した平均間隔およびパターンに対応させて一時的に保持した発生間隔を用いて、パターンに対応した発生間隔の分散を算出し、算出した分散から標準偏差を算出する。そして、算出部３３１Ａは、発生間隔テーブル３６２Ａの該当するパターンのエントリに、算出した標準偏差を更新する。【００７４】
ここで、発生間隔テーブル３６２Ａのデータ構造について、図９を参照して説明する。図９は、実施例３に係る発生間隔テーブルのデータ構造の一例を示す図である。図９に示すように、発生間隔テーブル３６２Ａは、パターンの種類３６２ｅ毎にパターンの中身３６２ｆ、発生回数３６２ｂ、平均間隔３６２ｃおよび標準偏差３６２ｄを対応付けて記憶する。パターンの種類３６２ｅは、メッセージのパターンの種類を示す。メッセージのパターンの種類３６２ｅとして、例えば、メッセージのパターンを一意に表すＩＤを用いることができる。パターンの中身３６２ｆは、メッセージパターン抽出部４００によって抽出されたパターンに含まれるメッセージの種類を示す。なお、発生回数３６２ｂ、平均間隔３６２ｃおよび標準偏差３６２ｄについては、図３に示す発生間隔テーブル３６２と同一のデータ構造であるので、その説明については省略する。【００７５】
発生間隔テーブル３６２Ａに記憶されたレコードの一例を示す。パターンの種類３６２ｅが「Ａ」である場合、パターンの中身３６２ｆとして「ａ，ｂ，ｃ，ｄ」、発生回数３６２ｂの値として「１４４」、平均間隔３６２ｃの値として「３６０１．８」秒、標準偏差３６２ｄの値として「３０．５」秒を記憶している。【００７６】
図８に戻って、抽出部３３２Ａは、パターンの発生間隔が一定範囲となるパターンを監視対象として抽出する。そして、抽出部３３２Ａは、抽出したパターンに対応するエントリを監視用テーブル３６３Ａに格納する。【００７７】
ここで、監視用テーブル３６３Ａのデータ構造について、図１０を参照して説明する。図１０は、実施例３に係る監視用テーブルのデータ構造の一例を示す図である。図１０に示すように、監視用テーブル３６３Ａは、パターンの種類３６３ｆ毎にパターンの中身３６３ｇ、部分一致３６３ｈ、平均間隔３６３ｂ、標準偏差３６３ｃ、直近のメッセージ３６３ｄおよび前回からの経過時間３６３ｅを対応付けて記憶する。パターンの種類３６３ｆは、監視対象であるメッセージのパターンにおける種類を示す。パターンの種類３６３ｆとして、例えば、メッセージのパターンを一意に表すＩＤを用いることができる。パターンの中身３６３ｇは、パターンに含まれるメッセージの種類を示す。部分一致３６３ｈは、パターンに含まれるメッセージの種類のうち監視中に実際に発生したメッセージの種類を示す。なお、平均間隔３６３ｂ、標準偏差３６３ｃ、直近のメッセージ３６３ｄおよび前回からの経過時間３６３ｅについては、図４に示す監視用テーブル３６３と同一のデータ構造であるので、その説明については省略する。【００７８】
監視用テーブル３６３Ａに記憶されたレコードの一例を示す。パターンの種類３６３ｆが「Ａ」である場合、パターンの中身３６３ｇとして「ａ，ｂ，ｃ，ｄ」、部分一致３６３ｈとして「ａ，ｂ，ｃ」、平均間隔３６３ｂの値として「３６０１．８」秒、標準偏差３６３ｃの値として「３０．５」秒を記憶している。さらに、直近のメッセージ３６３ｄとして「−」、前回からの経過時間３６３ｅとして「３６８０」秒を記憶している。【００７９】
図８に戻って、検知部３４Ａは、抽出部３３２Ａによって抽出されたパターンについて発生間隔を監視し、当該パターンの発生間隔が当該パターンに対応する一定範囲を外れた場合に、ネットワークシステムの障害として検知する。一定範囲を外れた場合には、通常より短期間でメッセージのパターンが発生している場合と、発生するはずのメッセージのパターンが発生しないかまたは通常より長期間経過後にメッセージのパターンが発生している場合とに分けられる。【００８０】
まず、通常より短期間でメッセージのパターンが発生している場合について説明する。例えば、検知部３４Ａは、メッセージを受け取ったとき、算出部３３１Ａで分類した手法と同様の手法を用いて、受け取ったメッセージを分類する。そして、検知部３４Ａは、受け取ったメッセージの発生時刻から一定期間前までに発生したメッセージをパターンとして抽出する。かかる一定期間は、算出部３３１Ａによってパターンを抽出した場合に用いられる一定期間と同値であるものとする。【００８１】
また、検知部３４Ａは、抽出したパターンに該当するエントリを監視用テーブル３６２Ａから検索する。例えば、検知部３４Ａは、抽出したパターンの内容と監視用テーブル３６３Ａに記憶されたパターンの中身３６３ｇの内容とを比較し、パターンが同一であるか否かを判定する。一例として、検知部３４Ａは、抽出したパターンの内容およびパターンの中身３６３ｇの内容を比較し、それぞれの内容に含まれるメッセージの順序およびメッセージの一致率に基づいて、完全一致であるか部分一致であるかを判定する。そして、検知部３４Ａは、完全一致または部分一致であると判定したパターンを同一パターンであると判断して、当該パターンのエントリを監視用テーブル３６３Ａから検索する。そして、検知部３４Ａは、部分一致である場合、該当するエントリの部分一致３６３ｈのフィールドに、部分一致であったメッセージの種類を更新する。これにより、検知部３４Ａは、部分一致となったパターンの中で一致しなかったメッセージの種類を特定できるので、メッセージの発生状況を把握することが可能となる。例えば、図１０では、パターンの種類３６３ｆが「Ａ」である場合、パターンの中身３６３ｇとして「ａ，ｂ，ｃ，ｄ」のメッセージの種類がある。ところが、部分一致３６３ｈとしてメッセージの種類が「ａ，ｂ，ｃ」であり、パターンの中身３６３ｇの中で一致しなかったメッセージの種類が「ｄ」と特定できる。したがって、例えば検知部３４Ａは、メッセージの種類「ｄ」が発生していないことを把握できる。【００８２】
また、検知部３４Ａは、メッセージログ３６１に記憶されたメッセージに基づいて、該当するエントリの経過時間を算出する。すなわち、検知部３４Ａは、受け取ったメッセージを含むパターンの発生時刻に最も近い同一パターンの発生時刻から、受け取ったメッセージを含むパターンの発生時刻までの経過時間を算出する。なお、パターンの発生時刻とは、例えば、パターンに含まれるメッセージのうち始端のメッセージ、つまり最も古いメッセージの発生時刻を指しても良いし、終端のメッセージ、つまり最も新しいメッセージの発生時刻を指しても良い。【００８３】
そして、検知部３４Ａは、算出した経過時間が閾値以下であるか否かを判定する。そして、検知部３４Ａは、算出した経過時間が閾値以下である場合、通常より短期間で当該メッセージのパターンが発生しているので、ネットワークシステムの障害として検知する。【００８４】
次に、発生するはずのメッセージのパターンが発生しないかまたは通常より長期間経過後にメッセージのパターンが発生している場合について説明する。例えば、検知部３４Ａは、監視用テーブル３６３Ａに記憶された複数のエントリの各パターンについて、メッセージログ３６１に記憶されたメッセージの情報を用いて、前回の発生時刻から現在の時刻までの経過時間を算出する。そして、検知部３４Ａは、算出した経過時間が閾値以上であるか否かを判定する。そして、検知部３４Ａは、算出した経過時間が閾値以上である場合、発生するはずのメッセージのパターンが発生しないかまたは通常より長期間経過後にメッセージのパターンが発生しているので、ネットワークシステムの障害として検知する。【００８５】
次に、一定期間に発生したメッセージをパターンとして抽出する手法について、図１１を参照して説明する。図１１は、一定期間に発生したメッセージをパターンとして抽出する手法の一例を示す図である。なお、図１１の例では、図５Ｂで示した正規表現型でメッセージを分類するものとする。図１１に示すように、算出部３３１Ａは、例えばメッセージログ３６１に記憶された、過去のそれぞれのメッセージを、メッセージ辞書を用いて分類する。ここでは、各メッセージが分類された結果、発生時刻の古い順に「ａｂｃｄｃｅｆｅｂｃａ・・・」と表される。【００８６】
そして、算出部３３１Ａは、ある時刻から一定期間前までに発生したメッセージをパターンとして抽出する。ここでは、一例として、算出部３３１Ａは、分類したメッセージ「ｃ」の発生時刻から一定期間前までに発生したメッセージ「ａｂｃ」をパターンとして抽出する。また、別の例として、算出部３３１Ａは、分類したメッセージ「ｄ」の発生時刻から一定期間前までに発生したメッセージ「ｂｃｄ」をパターンとして抽出する。さらに、別の例として、算出部３３１Ａは、分類したメッセージ「ｅ」の発生時刻から一定期間前までに発生したメッセージ「ｃｅ」をパターンとして抽出する。【００８７】
次に、メッセージパターンの同一判定の具体例について、図１２を参照して説明する。図１２は、メッセージパターンの同一判定の具体例を説明する図である。図１２に示すように、Ｔ時刻のメッセージのパターンの内容が「ａｂｃ」である場合について説明する。なお、メッセージのパターン「ａｂｃ」には、メッセージの分類後の種類「ａ」、「ｂ」、「ｃ」を含んでいる。そして、「ａ」「ｂ」「ｃ」の順序で、メッセージが発生したものとする。【００８８】
検知部３４Ａは、Ｔ時刻のメッセージのパターンの内容と監視用テーブル３６３Ａに記憶されたパターンの中身３６３ｇの内容とを比較し、パターンが同一であるか否かを判定する。ここでは、検知部３４Ａは、Ｔ時刻のメッセージのパターン「ａｂｃ」とパターンの種類３６３ｆが「Ａ」であるパターンの中身３６３ｇの内容「ａｂｃｄ」とを比較する。すると、検知部３４Ａは、パターンの種類「Ａ」についての内容「ａｂｃｄ」にはＴ時刻のメッセージのパターン「ａｂｃ」がこの順序で含まれているが、「ｄ」が含まれていないので、完全一致ではないと判定する。ところが、検知部３４Ａは、一致と判定する一致率の境界を例えば７０％とすると、これら内容の一致率は４個中３個中一致する７５％であり７０％より大きいので、部分一致であると判定する。この結果、検知部３４Ａは、部分一致であると判定したパターンを同一パターンであると判断する。そして、検知部３４Ａは、部分一致であるパターンの種類３６３ｆが「Ａ」である部分一致３６３ｈのフィールドに、Ｔ時刻のメッセージのパターン「ａｂｃ」を更新する。【００８９】
［実施例３に係る監視用情報生成の処理手順］
次に、実施例３に係る監視用情報生成の処理手順を、図１３を参照して説明する。図１３は、実施例３係る監視用情報生成の処理手順を示すフローチャートである。なお、メッセージログ３６１には、ネットワークシステム内の各機器から出力されたメッセージが収集部３２によって記憶されているものとする。【００９０】
まず、算出部３３１Ａは、監視用情報の生成要求があったか否かを判定する（ステップＳ５１）。監視用情報の生成要求がなかったと判定した場合（ステップＳ５１；Ｎｏ）、算出部３３１Ａは、監視用情報の生成要求があると判定するまで、判定処理を繰り返す。一方、監視用情報の生成要求があったと判定した場合（ステップＳ５１；Ｙｅｓ）、算出部３３１Ａは、メッセージログ３６１のファイルをオープンする（ステップＳ５２）。【００９１】
そして、算出部３３１Ａは、メッセージログ３６１に記憶されたメッセージのうち１メッセージを読み込む（ステップＳ５３）。【００９２】
続いて、算出部３３１Ａは、読み込んだメッセージを分類する（ステップＳ５４）。例えば、算出部３３１Ａは、読み込んだメッセージについて、特定のフィールドに割り当てられたＩＤを当該メッセージの種類として分類する。そして、算出部３３１Ａは、読み込んだ１メッセージの発生時刻から過去一定期間に発生したメッセージをパターンとして抽出する（ステップＳ５５）。そして、算出部３３１Ａは、抽出したパターンに該当するエントリを発生間隔テーブル３６２Ａから検索する（ステップＳ５６）。【００９３】
ここで、算出部３３１Ａは、該当するエントリがみつかったか否かを判定する（ステップＳ５７）。該当するエントリがみつからなかったと判定した場合（ステップＳ５７；Ｎｏ）、算出部３３１Ａは、該当するエントリを発生間隔テーブル３６２Ａに追加し（ステップＳ５８）、ステップＳ５９に移行する。【００９４】
一方、該当するエントリがみつかったと判定した場合（ステップＳ５７；Ｙｅｓ）、算出部３３１Ａは、メッセージログ３６１に基づいて、抽出パターンと、発生時刻が当該パターンに最も近い同一パターンとの発生間隔を算出する（ステップＳ５９）。【００９５】
そして、算出部３３１Ａは、該当するエントリに対して、算出した発生間隔に関連する情報を更新する（ステップＳ６０）。例えば、算出部３３１Ａは、該当するエントリのパターンに対応する発生回数を１加算し、加算した発生回数を更新する。このとき、算出部３３１Ａは、該当するエントリのパターンに対応させて発生間隔を記憶部３６に一時的に保持する。【００９６】
そして、算出部３３１Ａは、メッセージログの終端であるか否かを判定する（ステップＳ６１）。メッセージログの終端でないと判定した場合（ステップＳ６１；Ｎｏ）、算出部３３１Ａは、次のメッセージを読み込むため、ステップＳ５３に移行する。【００９７】
一方、メッセージログの終端であると判定した場合（ステップＳ６１；Ｙｅｓ）、算出部３３１Ａは、発生間隔テーブル３６２Ａに記憶されたエントリに基づいて、全エントリの発生間隔の標準偏差を算出する（ステップＳ６２）。例えば、算出部３３１Ａは、発生間隔テーブル３６２Ａに記憶された発生回数およびエントリのパターンに対応させて一時的に保持した発生間隔に基づいて、パターンに対応した発生間隔の平均間隔を算出する。そして、算出部３３１Ａは、算出した平均間隔およびエントリのパターンに対応させて一時的に保持した発生間隔を用いて、パターンに対応した発生間隔の分散を算出し、算出した分散からパターンに対応した標準偏差を算出する。【００９８】
続いて、抽出部３３２Ａは、エントリのパターン毎に算出した標準偏差と平均間隔の比が閾値以下のエントリを抽出し、監視用テーブル３６３Ａに追加する（ステップＳ６３）。閾値には、例えば、平均間隔の１０％を示す「０．１」が適用されるが、これに限定されるものではない。【００９９】
［実施例３に係る障害検知の処理手順］
次に、実施例３に係る障害検知の処理手順を、図１４Ａおよび図１４Ｂを参照して説明する。図１４Ａは、通常より短期間でメッセージのパターンが発生している場合の障害検知の処理手順を示す。図１４Ｂは、発生するはずのメッセージのパターンが発生しないかまたは通常より長期間経過後にメッセージのパターンが発生している場合の障害検知の処理手順を示す。【０１００】
最初に、通常より短時間でメッセージのパターンが発生する場合の障害検知の処理手順について、図１４Ａを参照して説明する。まず、検知部３４Ａは、メッセージを受け取ったか否かを判定する（ステップＳ７１）。メッセージを受け取っていないと判定した場合（ステップＳ７１；Ｎｏ）、検知部３４Ａは、メッセージを受け取るまで判定処理を繰り返す。一方、メッセージを受け取ったと判定した場合（ステップＳ７１；Ｙｅｓ）、検知部３４Ａは、算出部３３１Ａで分類した手法と同様の手法を用いて、受け取ったメッセージを分類する（ステップＳ７２）。【０１０１】
そして、検知部３４Ａは、受け取ったメッセージの発生時刻から過去一定期間に発生したメッセージをパターンとして抽出する（ステップＳ７３）。そして、検知部３４Ａは、抽出したパターンに該当するエントリを監視用テーブル３６３Ａから検索する（ステップＳ７４）。【０１０２】
ここで、検知部３４Ａは、該当するエントリがみつかったか否かを判定する（ステップＳ７５）。該当するエントリがみつからなかったと判定した場合（ステップＳ７５；Ｎｏ）、検知部３４Ａは、該当するエントリのパターンが監視対象でないので、ステップＳ７１に移行する。【０１０３】
一方、該当するエントリがみつかったと判定した場合（ステップＳ７５；Ｙｅｓ）、検知部３４Ａは、抽出したパターンの内容および該当するエントリのパターンの中身３６３ｇの内容とを比較し、完全一致であるか部分一致であるかを判定する。そして、検知部３４Ａは，部分一致である場合、該当するエントリの部分一致３６３ｈのフィールドに、部分一致であったメッセージの種類を更新する（ステップＳ７６）。さらに、検知部３４Ａは、監視用テーブル３６３Ａの直近のメッセージ３６３ｄのフィールドを更新する（ステップＳ７７）。すなわち、検知部３４Ａは、該当するエントリの直近のメッセージ３６３ｄのフィールドを「○」に更新し、それ以外のエントリの直近のメッセージ３６３ｄのフィールドを「−」に更新する。【０１０４】
そして、検知部３４Ａは、該当するエントリの経過時間を算出する（ステップＳ７８）。すなわち、検知部３４Ａは、受け取ったメッセージを含むパターンの発生時刻に最も近い同一パターンの発生時刻から、受け取ったメッセージを含むパターンの発生時刻までの経過時間を算出する。【０１０５】
そして、検知部３４Ａは、算出した経過時間が閾値（例えば、前述した下限値）以下であるか否かを判定する（ステップＳ７９）。経過時間が閾値以下でないと判定した場合（ステップＳ７９；Ｎｏ）、検知部３４Ａは、通常より短時間でメッセージのパターンが発生していないので、ステップＳ７１に移行する。【０１０６】
一方、経過時間が閾値以下であると判定した場合（ステップＳ７９；Ｙｅｓ）、検知部３４Ａは、通常より短時間でメッセージのパターンが発生しているので、ネットワークシステムの障害として検知する（ステップＳ８０）。そして、警告部３５は、検知部３４Ａからネットワークシステムの障害を検知した旨の通知に応じて、例えばディスプレイへの表示、所定のメールアドレスへのメール送信等によってアラートを行う（ステップＳ８１）。【０１０７】
次に、発生するはずのメッセージのパターンが発生しないかまたは通常より長期間でメッセージのパターンが発生している場合の障害検知の処理手順について、図１４Ｂを参照して説明する。まず、検知部３４Ａは、一定時間が経過したか否かを判定する（ステップＳ９１）。一定時間が経過していないと判定した場合（ステップＳ９１；Ｎｏ）、検知部３４Ａは、一定時間が経過するまで待機すべく、ステップＳ９１に移行する。【０１０８】
一方、一定時間が経過していると判定した場合（ステップＳ９１；Ｙｅｓ）、検知部３４Ａは、監視用テーブル３６３Ａに記憶された各エントリの経過時間を算出する（ステップＳ９２）。例えば、検知部３４Ａは、監視用テーブル３６３Ａに記憶された各エントリについて、メッセージログ３６１に記憶されたメッセージの情報を用いて、前回発生した時刻から現在の時刻までの経過時間を算出する。【０１０９】
そして、検知部３４Ａは、経過時間が閾値（例えば、前述した上限値）以上であるエントリはあったか否かを判定する（ステップＳ９３）。経過時間が閾値以上であるエントリはなかったと判定した場合（ステップＳ９３；Ｎｏ）、検知部３４Ａは、どのエントリも通常の経過時間でメッセージのパターンが存在しているので、ステップＳ９１に移行する。【０１１０】
一方、経過時間が閾値以上のエントリはあったと判定した場合（ステップＳ９３；Ｙｅｓ）、検知部３４Ａは、当該エントリについて、発生するはずのメッセージのパターンが発生していないので、ネットワークシステムの障害として検知する（ステップＳ９４）。そして、警告部３５は、検知部３４Ａから当該エントリについてネットワークシステムの障害を検知した旨の通知に応じて、例えばディスプレイへの表示、所定のメールアドレスへのメール送信等によってアラートを行う（ステップＳ９５）。【０１１１】
このようにして、収集部３２は、ネットワークシステムで発生したメッセージをメッセージログ３６１に格納する。そして、抽出部３３２Ａは、メッセージログ３６１によって記憶されたそれぞれのメッセージについて、所定時刻から一定期間内に発生したメッセージのパターンを抽出する。そして、抽出部３３２Ａは、抽出したメッセージのパターン毎に各パターンの発生間隔が一定範囲となるメッセージのパターンを抽出する。したがって、抽出部３３２Ａは、メッセージのパターンの発生間隔が一定範囲となるメッセージのパターンを抽出するので、抽出したパターンを監視対象とすることができ、監視対象とするパターンを含め運用に関するルールを自動的に定義することができる。【０１１２】
また、検知部３４Ａは、ネットワークシステムで発生したメッセージのうち抽出部３３２Ａによって抽出されたメッセージのパターンについて発生間隔が一定範囲を外れたか否かを判定する。したがって、検知部３４Ａは、抽出部３３２Ａによって抽出されたメッセージのパターンについて発生間隔が一定範囲を超えるような場合、例えば当該メッセージのパターンが出力されないことを原因としたシステム障害を容易に検知できる。また、検知部３４Ａは、抽出部３３２Ａによって抽出されたメッセージのパターンについて発生間隔が一定範囲を下回るような場合、例えば当該メッセージのパターンが短期間で出力されることを原因としたシステム障害を容易に検知できる。【０１１３】
［プログラム等］
なお、収集部３２、監視用情報生成部３３、検知部３４、３４Ａおよび警告部３５の機能は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現することができる。また、所定のプログラムがＣＰＵ（Central  Processing  Unit）を機能させることで実現することができる。【０１１４】
また、管理装置１、２は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した収集部３２、監視用情報生成部３３および検知部３４、３４Ａ等の各機能を搭載することによって実現することができる。【０１１５】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、算出部３３１と抽出部３３２とを１個の部として統合しても良い。一方、検知部３４を通常より短期間でメッセージが発生している場合の検知部と、発生するはずのメッセージが発生しないかまたは通常より長期間経過後にメッセージが発生している場合の検知部とに分散しても良い。また、メッセージログ３６１や発生間隔テーブル３６２等の記憶部３６を管理装置１の外部装置としてネットワーク経由で接続するようにしても良い。【０１１６】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１５を用いて、図２に示した管理装置１と同様の機能を有するメッセージ判定プログラムを実行するコンピュータの一例を説明する。【０１１７】
図１５は、メッセージ判定プログラムを実行するコンピュータを示す図である。図１５に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０と、ネットワークインタフェース装置１０２０と、ＨＤＤ１０３０と、ＣＰＵ（Central  Processing  Unit）１０４０と、媒体読取装置１０５０と、バス１０６０とを有する。ＲＡＭ１０１０、ネットワークインタフェース装置１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０、媒体読取装置１０５０は、バス１０６０によって接続されている。【０１１８】
そして、ＨＤＤ１０３０には、図２に示した収集部３２、監視用情報生成部３３および検知部３４と同様の機能を有するメッセージ判定プログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図２に示したメッセージログ３６１、発生間隔テーブル３６２および監視用テーブル３６３に対応する管理情報１０３２が記憶される。【０１１９】
そして、ＣＰＵ１０１０がメッセージ判定プログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０にロードすることにより、メッセージ判定プログラム１０３１は、メッセージ判定プロセス１０１１として機能するようになる。そして、メッセージ判定プロセス１０１１は、管理情報１０３２から読み出した情報等を適宜ＲＡＭ１０１０上の自身に割り当てられた領域にロードし、このロードしたデータ等に基づいて各種データ処理を実行する。【０１２０】
なお、上記のメッセージ判定プログラム１０３１は、必ずしもＨＤＤ１０３０に格納させなくても良く、ＣＤ−ＲＯＭ等の「可搬用の物理媒体」に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしても良い。【０１２１】
また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がこれらからプログラムを読み出して実行する。
【符号の説明】
【０１２２】
１、２  管理装置
９  メッセージ判定装置
３１  ネットワーク制御部
３２  収集部
３３  監視用情報生成部
３３１、３３１Ａ  算出部
１２、３３２、３３２Ａ  抽出部
１３  判定部
３４、３４Ａ  検知部
３５  警告部
１１、３６  記憶部
３６１  メッセージログ
３６２、３６２Ａ  発生間隔テーブル
３６３、３６３Ａ  監視用テーブル
【図１】
2012160637.tif 000003
【図２】
2012160637.tif 000004
【図３】
2012160637.tif 000005
【図４】
2012160637.tif 000006
【図５Ａ】
2012160637.tif 000007
【図５Ｂ】
2012160637.tif 000008
【図５Ｃ】
2012160637.tif 000009
【図６】
2012160637.tif 000010
【図７Ａ】
2012160637.tif 000011
【図７Ｂ】
2012160637.tif 000012
【図８】
2012160637.tif 000013
【図９】
2012160637.tif 000014
【図１０】
2012160637.tif 000015
【図１１】
2012160637.tif 000016
【図１２】
2012160637.tif 000017
【図１３】
2012160637.tif 000018
【図１４Ａ】
2012160637.tif 000019
【図１４Ｂ】
2012160637.tif 000020
【図１５】
2012160637.tif 000021
【国際調査報告】
2012160637.tif 000022
2012160637.tif 000023