(57)【要約】  メッセージの抽出漏れを抑制する。  記憶部（１１）は、メッセージのフォーマットを示すフィルタ情報（１１ａ）と、語または句の重みを示すフィルタ情報（１１ｂ）とを記憶する。検索手段（１２）は、複数のメッセージ（１４）のうち、フィルタ情報（１１ａ）が示すフォーマットに適合するメッセージを、抽出するメッセージとして選択する。検索手段（１３）は、検索手段（１２）で選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句とフィルタ情報（１１ｂ）とに基づいて算出し、検索手段（１２）で選択されなかったメッセージの中から、重要度に応じて、抽出するメッセージを選択する。
2012066650.tif 000002
【特許請求の範囲】
【請求項１】
複数のメッセージを取得し前記複数のメッセージの中から１またはそれ以上のメッセージを抽出する情報処理装置であって、
メッセージのフォーマットを示す第１のフィルタ情報と、語または句の重みを示す第２のフィルタ情報とを記憶する記憶部と、
前記複数のメッセージのうち、前記第１のフィルタ情報が示すフォーマットに適合するメッセージを、抽出するメッセージとして選択する第１の検索手段と、
前記第１の検索手段で選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句と前記第２のフィルタ情報とに基づいて算出し、前記第１の検索手段で選択されなかったメッセージの中から、前記重要度に応じて、抽出するメッセージを選択する第２の検索手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記第２のフィルタ情報は、前記第１のフィルタ情報が示すフォーマットにおける語または句の出現状況に基づいて作成されたことを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項３】
前記第１のフィルタ情報が示すフォーマットに含まれる語または句を抽出し、各語または句の出現状況に基づいて、前記第２のフィルタ情報を生成する生成手段を更に有することを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項４】
前記生成手段は、前記第１のフィルタ情報が示すフォーマットに含まれる語および句を抽出し、各語の重みを当該語の出現状況に基づいて算出し、各句の重みを前記語の重みに基づいて算出することを特徴とする請求の範囲第３項記載の情報処理装置。
【請求項５】
前記第２のフィルタ情報は、少なくとも句の重みを示す情報を含み、
前記第２の検索手段は、前記各メッセージに含まれる句と前記第２のフィルタ情報が示す句との間の一致度を算出し、前記一致度と前記第２のフィルタ情報が示す句の重みとに基づいて前記重要度を算出する、
ことを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項６】
前記第２の検索手段で選択されたメッセージに基づいて、前記第２のフィルタ情報を更新する更新手段を更に有することを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項７】
複数のメッセージを取得し前記複数のメッセージの中から１またはそれ以上のメッセージを抽出するコンピュータが実行するメッセージ抽出方法であって、
記憶部に記憶された、メッセージのフォーマットを示す第１のフィルタ情報を参照し、前記複数のメッセージのうち、前記第１のフィルタ情報が示すフォーマットに適合するメッセージを、抽出するメッセージとして選択し、
前記第１のフィルタ情報に基づいて選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句と前記記憶部に記憶された語または句の重みを示す第２のフィルタ情報とに基づいて算出し、
前記第１のフィルタ情報に基づいて選択されなかったメッセージの中から、前記重要度に応じて、抽出するメッセージを選択する、
ことを特徴とするメッセージ抽出方法。
【請求項８】
複数のメッセージを取得し前記複数のメッセージの中から１またはそれ以上のメッセージを抽出するメッセージ抽出プログラムであって、コンピュータに、
記憶部に記憶された、メッセージのフォーマットを示す第１のフィルタ情報を参照し、前記複数のメッセージのうち、前記第１のフィルタ情報が示すフォーマットに適合するメッセージを、抽出するメッセージとして選択し、
前記第１のフィルタ情報に基づいて選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句と前記記憶部に記憶された語または句の重みを示す第２のフィルタ情報とに基づいて算出し、
前記第１のフィルタ情報に基づいて選択されなかったメッセージの中から、前記重要度に応じて、抽出するメッセージを選択する、
処理を実行させることを特徴とするメッセージ抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメッセージの中から１またはそれ以上のメッセージを抽出する情報処理装置、メッセージ抽出方法およびメッセージ抽出プログラムに関する。
【背景技術】
【０００２】
情報処理システムでは、異なるコンピュータの間や同一のコンピュータ上で実行される異なるソフトウェアの間で、メッセージの受け渡しが行われることがある。例えば、エラーの発生を検出したコンピュータが、管理用の他のコンピュータに、エラーの発生を示すメッセージを送信することが考えられる。メッセージの受け渡しにより、出力側と取得側は、ハードウェアやソフトウェアの状態についての認識を共有することが容易となる。【０００３】
メッセージの受け渡しを行う場合、出力側または取得側において、メッセージのフィルタリングを行うことがある。すなわち、複数のメッセージのうち以降の処理の対象とするものを、メッセージの内容に応じて絞り込むことがある。例えば、あるコンピュータ上で実行されるオペレーティングシステムやデバイスドライバが、複数のメッセージを含むログ情報を出力することがある。その場合、当該コンピュータは、ログ情報から、予め設定された条件を満たすメッセージ（例えば、重要度の高いエラーを示すもの）を抽出して、他のコンピュータに送信することが考えられる。フィルタリングを行うことで、コンピュータの処理負担の軽減や、誤った状態判断を行う可能性の低減などを図ることができる。【０００４】
なお、ログ情報を通知する条件の定義作業を支援する条件定義支援装置が提案されている。この条件定義支援装置は、監視対象システムが出力するログ情報を収集して時間帯単位に分類し、同じメッセージを含むログ情報を時間帯毎にカウントすることで、各時間帯のログ情報を全て補足するための条件の候補を作成して画面に表示する。【０００５】
また、メッセージの検知に用いるフィルタの最適化を促すメッセージ監視システムが提案されている。このメッセージ監視システムは、検知したメッセージと当該メッセージの検知に用いたフィルタとを示す情報を蓄積しておき、他のフィルタによって検知できるメッセージしか検知しない冗長フィルタを抽出して、冗長フィルタを示す情報を出力する。【０００６】
また、電子メールのフィルタリングをユーザ毎にカスタマイズできる電子メールフィルタリングシステムが提案されている。この電子メールフィルタリングシステムは、ユーザ固有の重み付き単語リストを参照して、受信した電子メールのうち不要メール候補を判定する。また、電子メールフィルタリングシステムは、不要メール候補のうち不要メールとして選択された電子メールの単語解析を行い、重み付き単語リストを再編成する。【０００７】
また、フィルタ定義に登録されていない未登録メッセージであっても、所定時間内に所定回数以上、同じ未登録メッセージを取得した場合には、フィルタ定義の不足を検知したことを示すメッセージを監視端末装置に送信する運用管理システムが提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−４１０４１号公報
【特許文献２】特開２００９−２１７３９２号公報
【特許文献３】特開２００３−６７３０４号公報
【特許文献４】特開２００９−６４０９８号公報（段落［００１５］）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数のメッセージの中から以降の処理の対象とするメッセージを抽出するために、抽出すべきメッセージのフォーマットを示すフィルタ情報を用意しておく情報処理システムを考える。フォーマットを厳密に定義することで、不要なメッセージを抽出してしまう可能性を低減することができる。しかし、フィルタ情報において抽出すべきメッセージのフォーマットを定義した場合、当該メッセージを出力するソフトウェアが更新されたときに、メッセージの抽出漏れが発生する可能性があるという問題がある。【００１０】
例えば、オペレーティングシステムにセキュリティパッチが適用された場合や、デバイスドライバが更新された場合には、ログ情報に書き込まれるメッセージのフォーマットが変化することがある。フォーマットの変化としては、単語間に挿入されるスペースの数の変化、区切り文字の変化、単語の並び順の変化、新たな単語の追加などが考えられる。この場合、フォーマットが変化した後のメッセージは、既存のフィルタ情報で定義されたフォーマットに適合しないため、抽出されなくなってしまう。一方、実質的に同じ内容を示すメッセージであれば、フォーマットの変化後も抽出されることが好ましい。【００１１】
上記問題は、特に、メッセージのフォーマットが変化してから、変化後のフォーマットに対応するフィルタ情報が作成されるまでのタイムラグが生じやすい情報処理システムで大きな問題となる。なお、上記問題は、ログ情報に含まれるメッセージを抽出する場合に限らず、複数のメッセージから所望のメッセージを抽出する場合一般に生じ得る。【００１２】
本発明はこのような点に鑑みてなされたものであり、メッセージの抽出漏れを抑制することができる情報処理装置、メッセージ抽出方法およびメッセージ抽出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、複数のメッセージを取得し複数のメッセージの中から１またはそれ以上のメッセージを抽出する情報処理装置が提供される。情報処理装置は、記憶部と第１の検索手段と第２の検索手段とを有する。記憶部は、メッセージのフォーマットを示す第１のフィルタ情報と、語または句の重みを示す第２のフィルタ情報とを記憶する。第１の検索手段は、複数のメッセージのうち、第１のフィルタ情報が示すフォーマットに適合するメッセージを、抽出するメッセージとして選択する。第２の検索手段は、第１の検索手段で選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句と第２のフィルタ情報とに基づいて算出し、第１の検索手段で選択されなかったメッセージの中から、重要度に応じて、抽出するメッセージを選択する。【００１４】
また、上記課題を解決するために、複数のメッセージを取得し複数のメッセージの中から１またはそれ以上のメッセージを抽出するコンピュータが実行するメッセージ抽出方法が提供される。メッセージ抽出方法では、記憶部に記憶された、メッセージのフォーマットを示す第１のフィルタ情報を参照し、複数のメッセージのうち、第１のフィルタ情報が示すフォーマットに適合するメッセージを、抽出するメッセージとして選択する。第１のフィルタ情報に基づいて選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句と記憶部に記憶された語または句の重みを示す第２のフィルタ情報とに基づいて算出する。第１のフィルタ情報に基づいて選択されなかったメッセージの中から、重要度に応じて、抽出するメッセージを選択する。【００１５】
また、上記課題を解決するために、上記メッセージ抽出方法をコンピュータに実行させるメッセージ抽出プログラムが提供される。
【発明の効果】
【００１６】
上記情報処理装置、メッセージ抽出方法およびメッセージ抽出プログラムによれば、メッセージの抽出漏れを抑制することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】業務サーバのハードウェアを示すブロック図である。
【図４】端末装置のハードウェアを示すブロック図である。
【図５】情報処理システムの論理レイヤ構造を示す図である。
【図６】業務サーバのログ監視機能を示すブロック図である。
【図７】検索フィルタの例を示す図である。
【図８】第２の実施の形態のフィルタ生成処理を示すフローチャートである。
【図９】単語出現数のカウント状況を示す図である。
【図１０】未知メッセージ用検索フィルタの第１の例を示す図である。
【図１１】未知メッセージ用検索フィルタの第１のデータ構造例を示す図である。
【図１２】第２の実施の形態のメッセージ抽出処理を示すフローチャートである。
【図１３】情報処理システムにおける通信の例を示すシーケンス図である。
【図１４】第３の実施の形態のフィルタ生成処理を示すフローチャートである。
【図１５】語句の重みの算出状況を示す図である。
【図１６】未知メッセージ用検索フィルタの第２の例を示す図である。
【図１７】未知メッセージ用検索フィルタの第２のデータ構造例を示す図である。
【図１８】第３の実施の形態のメッセージ抽出処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本実施の形態を、図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態に係る情報処理装置１０は、複数のメッセージ１４を取得し、複数のメッセージ１４の中から１またはそれ以上のメッセージを抽出する。複数のメッセージ１４は、情報処理装置１０上で実行されるオペレーティングシステム（ＯＳ）やデバイスドライバが出力するログ情報に含まれるメッセージであってもよい。情報処理装置１０は、記憶部１１、検索手段１２（第１の検索手段）および検索手段１３（第２の検索手段）を有する。
【００１９】
記憶部１１は、フィルタ情報１１ａ（第１のフィルタ情報）とフィルタ情報１１ｂ（第２のフィルタ情報）とを記憶する。フィルタ情報１１ａは、メッセージのフォーマットを示す。フィルタ情報１１ｂは、語および句の少なくとも一方の重みを示す。フィルタ情報１１ｂは、各語または句に重みを示す値を対応付けた情報であってもよいし、重みの高い語または句を列挙した情報であってもよい。フィルタ情報１１ｂは、例えば、フィルタ情報１１ａに定義されたフォーマットを用いて作成することが考えられる。フィルタ情報１１ｂは、情報処理装置１０が作成してもよいし、他の情報処理装置が作成してもよい。
【００２０】
検索手段１２は、複数のメッセージ１４のうち記憶部１１に記憶されたフィルタ情報１１ａが示すフォーマットに適合するメッセージを、抽出するメッセージとして選択する。検索手段１２は、例えば、単語間に挿入されているスペースの数や単語の並び順なども考慮して、複数のメッセージ１４それぞれをフィルタ情報１１ａと厳密に照合する。厳密な照合を行うことで、不要なメッセージを抽出してしまう可能性を低減できる。
【００２１】
検索手段１３は、検索手段１２で選択されなかった各メッセージの重要度を、当該メッセージに含まれる語および句の少なくとも一方と記憶部１１に記憶されたフィルタ情報１１ｂとに基づいて算出する。例えば、検索手段１３は、検索手段１２で選択されなかったメッセージに含まれる語または句を抽出し、フィルタ情報１１ｂを参照して、抽出した語または句それぞれの重みを特定し、特定した重みを合計することで重要度を算出することが考えられる。そして、検索手段１３は、算出した重要度に応じて、検索手段１２で選択されなかったメッセージの中から、抽出するメッセージを選択する。例えば、検索手段１３は、重要度が所定の閾値以上であるメッセージを選択することが考えられる。
【００２２】
検索手段１２または検索手段１３において選択されたメッセージは、以降の処理の対象となる。例えば、選択されたメッセージに含まれる情報の一部または全部が、他の情報処理装置に通知されるようにしてもよい。一方、検索手段１２および検索手段１３の何れでも選択されなかったメッセージは、破棄されるようにしてもよい。記憶部１１および検索手段１２，１３は、例えば、ログ情報の中から重要度の高いエラーを示すメッセージを抽出して他の情報処理装置に通知するために用いることができる。
【００２３】
なお、検索手段１２，１３は、情報処理装置１０にメッセージ抽出プログラムを実行させることで実現してもよい。すなわち、検索手段１２，１３は、ＣＰＵ（Central Processing Unit）とメモリを用いて実現することもできる。
【００２４】
情報処理装置１０によれば、検索手段１２が、記憶部１１に記憶されたフィルタ情報１１ａを参照し、複数のメッセージ１４のうち、フィルタ情報１１ａが示すフォーマットに適合するメッセージを、抽出するメッセージとして選択する。検索手段１３が、フィルタ情報１１ａに基づいて選択されなかった各メッセージの重要度を、当該メッセージに含まれる語または句と記憶部１１に記憶されたフィルタ情報１１ｂとに基づいて算出し、フィルタ情報１１ａに基づいて選択されなかったメッセージの中から、算出した重要度に応じて、抽出するメッセージを選択する。
【００２５】
これにより、メッセージの抽出漏れを抑制することができる。すなわち、複数のメッセージ１４を出力するソフトウェアが更新されたなどの理由により、抽出すべきメッセージのフォーマットが変化する場合が考えられる。その場合、検索手段１２は、フォーマットが変化してから、変化後のフォーマットに対応したフィルタ情報１１ａが作成されるまでの間、本来は抽出すべきメッセージを捕捉し損ねる可能性がある。しかし、検索手段１３が、検索手段１２で捕捉できなかった抽出すべきメッセージを捕捉できる可能性がある。特に、フィルタ情報１１ａに含まれる語句を用いてフィルタ情報１１ｂが作成されることで、検索手段１３は、単語間に挿入されるスペースの数の変化、区切り文字の変化、単語の並び順の変化などの形式的変化に柔軟に対応できるようになる。
【００２６】
以下に説明する第２および第３の実施の形態では、あるコンピュータが、ログ情報の中からエラーを示すメッセージを抽出し、他のコンピュータに通知する情報処理システムの例を挙げる。ただし、第１の実施の形態で説明したメッセージ抽出方法は、ログ情報に含まれるメッセージ以外のメッセージを扱うことも可能である。
【００２７】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態に係る情報処理システムは、業務サーバ１００、端末装置２００、運用管理サーバ３００およびメールサーバ４００を含む。業務サーバ１００、端末装置２００、運用管理サーバ３００およびメールサーバ４００は、ネットワーク５０に接続されている。
【００２８】
業務サーバ１００は、アプリケーションソフトウェアを実行するサーバコンピュータである。業務サーバ１００は、ＣＰＵおよびメモリを含む計算リソースを複数セット備えている。業務サーバ１００は、複数セットの計算リソースを用いて、複数のＯＳを並列に実行することが可能である。ログ情報の管理やエラーの検出は、ＯＳ単位で行われる。
【００２９】
端末装置２００は、情報処理システムの管理者が使用するクライアントコンピュータである。端末装置２００は、運用管理サーバ３００から、情報処理システムの稼働状況（特に、業務サーバ１００の稼働状況）を示す情報を取得する。端末装置２００は、業務サーバ１００の稼働状況を示す情報を、業務サーバ１００から直接取得してもよい。また、端末装置２００は、メールサーバ４００から、管理者宛ての電子メールを受信する。管理者は、業務サーバ１００および運用管理サーバ３００から取得する情報や、メールサーバ４００から受信する電子メールを参照して、障害発生の有無を監視する。
【００３０】
運用管理サーバ３００は、情報処理システムの管理を支援するサーバコンピュータである。例えば、運用管理サーバ３００は、ＳＮＭＰ（Simple Network Management Protocol）を用いて、情報処理システムの稼働状況（特に、業務サーバ１００の稼働状況）を示す情報を収集する。運用管理サーバ３００は、収集した情報を端末装置２００に提供する。
【００３１】
メールサーバ４００は、電子メールを転送するサーバコンピュータである。メールサーバ４００上には、情報処理システムの管理者宛ての電子メールを保存するメールボックスが作成されている。例えば、メールサーバ４００は、業務サーバ１００から、稼働状況についての電子メールを受信し、管理者のメールボックスに保存する。メールサーバ４００は、端末装置２００からのアクセスに応じて、管理者用のメールボックスに保存されている電子メールを端末装置２００に送信する。
【００３２】
図３は、業務サーバのハードウェアを示すブロック図である。業務サーバ１００は、システムボード１１０，１２０、ディスクユニット１３０、マネジメントボード（ＭＭＢ）１４０および通信インタフェース１５０を有する。システムボード１１０，１２０、ディスクユニット１３０、マネジメントボード１４０および通信インタフェース１５０は、業務サーバ１００内でバスに接続されている。
【００３３】
システムボード１１０，１２０は、ＯＳやアプリケーションソフトウェアの実行に用いられる計算リソースのセットである。図３の例では、業務サーバ１００は、２個のシステムボードを備えているが、３個以上のシステムボードを備えてもよい。複数のシステムボードが、１またはそれ以上のパーティションに区分される。
【００３４】
１つのパーティション上では、１つのＯＳが実行される。例えば、システムボード１１０，１２０を同一のパーティションに割り当てた場合、システムボード１１０，１２０の両方の計算リソースを用いて、１つのＯＳが実行される。一方、システムボード１１０，１２０を異なるパーティションに割り当てた場合、システムボード１１０，１２０それぞれで、別個のＯＳが実行される。ただし、ハードウェアの仮想化技術を用いることで、１つシステムボード上で複数のＯＳを実行させることも可能である。
【００３５】
システムボード１１０は、ＣＰＵ１１１，１１２とＲＡＭ（Random Access Memory）１１３〜１１６を有する。ＣＰＵ１１１，１１２およびＲＡＭ１１３〜１１６は、システムボード１１０内でバス（図示せず）に接続されている。ＣＰＵ１１１，１１２は、ＯＳプログラムやアプリケーションプログラムなどのプログラムを実行する演算装置である。ＲＡＭ１１３〜１１６は、ＣＰＵ１１１，１１２が実行するプログラムやデータの少なくとも一部を一時的に記憶するメモリである。なお、ＲＡＭ１１３〜１１６に代えて、または、ＲＡＭ１１３〜１１６と併せて、他の種類のメモリを主記憶装置として用いてもよい。
【００３６】
システムボード１２０は、ＣＰＵ１２１，１２２とＲＡＭ１２３〜１２６を有する。ＣＰＵ１２１，１２２およびＲＡＭ１２３〜１２６の動作は、ＣＰＵ１１１，１１２およびＲＡＭ１１３〜１１６と同様である。
【００３７】
ディスクユニット１３０は、システムボード１１０，１２０で実行されるプログラムやデータを記憶する不揮発性の記憶装置のセットである。ディスクユニット１３０は、ＨＤＤ（Hard Disk Drive）１３１〜１３３を有する。ＨＤＤ１３１〜１３３は、内蔵されたディスクに対して、磁気的に書き込みおよび読み出しを行う。なお、ＨＤＤ１３１〜１３３に代えて、または、ＨＤＤ１３１〜１３３と併せて、フラッシュメモリなど他の種類の不揮発性の記憶装置を、補助記憶装置として用いてもよい。
【００３８】
マネジメントボード１４０は、業務サーバ１００の管理に用いられる計算リソースのセットである。例えば、マネジメントボード１４０は、管理者が操作する端末装置２００からの指示を受け、システムボード１１０，１２０をパーティションに割り当てる。また、マネジメントボード１４０は、システムボード１１０，１２０から、ＯＳやデバイスドライバが出力するログ情報に含まれるエラーに関する情報を収集する。マネジメントボード１４０は、収集したエラーに関する情報を、運用管理サーバ３００に送信する。マネジメントボード１４０は、エラーに関する情報を、端末装置２００に直接提供してもよい。
【００３９】
マネジメントボード１４０は、ＣＰＵ１４１、ＲＡＭ１４２およびＲＯＭ（Read Only Memory）１４３を有する。ＣＰＵ１４１、ＲＡＭ１４２およびＲＯＭ１４３は、マネジメントボード１４０内でバス（図示せず）に接続されている。ＣＰＵ１４１は、業務サーバ１００を管理するためのプログラムを実行する演算装置である。ＲＡＭ１４２は、ＣＰＵ１４１が実行するプログラムやデータの少なくとも一部を一時的に記憶するメモリである。ＲＯＭ１４３は、ＣＰＵ１４１が実行するプログラムやデータを記憶する不揮発性メモリである。なお、ＲＡＭ１４２やＲＯＭ１４３に代えて、または、ＲＡＭ１４２やＲＯＭ１４３と併せて、他の種類の記憶装置を使用してもよい。
【００４０】
通信インタフェース１５０は、ネットワーク５０に接続されている。通信インタフェース１５０は、ネットワーク５０を介して、端末装置２００、運用管理サーバ３００およびメールサーバ４００と通信を行う。
【００４１】
図４は、端末装置のハードウェアを示すブロック図である。端末装置２００は、ＣＰＵ２１１、ＲＡＭ２１２、ＨＤＤ２１３、グラフィック処理部２１４、入力インタフェース２１５、ディスクドライブ２１６および通信インタフェース２１７を有する。ＣＰＵ２１１、ＲＡＭ２１２、ＨＤＤ２１３、グラフィック処理部２１４、入力インタフェース２１５、ディスクドライブ２１６および通信インタフェース２１７は、端末装置２００内でバスに接続されている。なお、運用管理サーバ３００およびメールサーバ４００も、端末装置２００と同様のハードウェア構成によって実現することが可能である。
【００４２】
ＣＰＵ２１１は、ＯＳプログラムやアプリケーションプログラムなどのプログラムを実行する演算装置である。
ＲＡＭ２１２は、ＣＰＵ２１１が実行するプログラムやデータの少なくとも一部を一時的に記憶するメモリである。なお、ＲＡＭ２１２に代えて、または、ＲＡＭ２１２と併せて、他の種類のメモリを主記憶装置として用いてもよい。
【００４３】
ＨＤＤ２１３は、ＣＰＵ２１１が実行するプログラムやデータを記憶する不揮発性の記憶装置である。ＨＤＤ２１３は、内蔵されたディスクに対して、磁気的に書き込みおよび読み出しを行う。なお、ＨＤＤ２１３に代えて、または、ＨＤＤ２１３と併せて、フラッシュメモリなど他の種類の不揮発性の記憶装置を、補助記憶装置として用いてもよい。
【００４４】
グラフィック処理部２１４は、ディスプレイ２２１に接続されている。グラフィック処理部２１４は、ＣＰＵ２１１からの命令に従って、画像をディスプレイ２２１に表示させる。ディスプレイ２２１として、例えば、ＣＲＴ（Cathode Ray Tube）ディスプレイやＬＣＤ（Liquid Crystal Display）を用いることができる。
【００４５】
入力インタフェース２１５は、入力デバイス２２２に接続されている。入力インタフェース２１５は、入力デバイス２２２から入力信号を取得し、ＣＰＵ２１１に通知する。入力デバイス２２２として、例えば、キーボードを用いることができる。また、入力デバイス２２２として、マウスやタッチパネルなどのポインティングデバイスを用いることもできる。入力インタフェース２１５には、複数の入力デバイスが接続されてもよい。
【００４６】
ディスクドライブ２１６は、記録媒体２２３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体２２３として、例えば、フレキシブルディスク（ＦＤ）などの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を用いることができる。
【００４７】
通信インタフェース２１７は、ネットワーク５０に接続されている。通信インタフェース２１７は、ネットワーク５０を介して、業務サーバ１００、運用管理サーバ３００およびメールサーバ４００と通信を行う。
【００４８】
なお、記録媒体２２３に、業務サーバ１００に実行させるプログラムを記録しておくこともできる。その場合、端末装置２００が、記録媒体２２３に記録されたプログラムを読み込みし、業務サーバ１００に転送することが考えられる。または、業務サーバ１００にディスクドライブを設け、業務サーバ１００に記録媒体２２３に記録されたプログラムを読み込ませるようにしてもよい。
【００４９】
図５は、情報処理システムの論理レイヤ構造を示す図である。図５に示すソフトウェアが、業務サーバ１００、端末装置２００、運用管理サーバ３００およびメールサーバ４００で実行されている。
【００５０】
業務サーバ１００では、マネジメントボード１４０の計算リソースを用いて、業務サーバ１００を管理するためのファームウェア（ＭＭＢファームウェア）が実行されている。また、ＭＭＢファームウェア上で、ＳＮＭＰデーモンが実行されている。ＳＮＭＰデーモンは、ハードウェアおよびソフトウェアのエラーに関する情報を収集し、端末装置２００または運用管理サーバ３００にＳＮＭＰトラップを送信する常駐ソフトウェアである。
【００５１】
また、業務サーバ１００では、各パーティションの計算リソースを用いて、ＯＳおよびＯＳに組み込まれたデバイスドライバが実行されている。図５の例では、２つのＯＳが並列に実行されている。ＯＳおよびデバイスドライバは、ディスクユニット１３０に格納されているログ情報に、メッセージを適宜書き込む。ログ情報に書き込まれるメッセージには、エラーを示すメッセージが含まれる。
【００５２】
ＯＳ上では、それぞれ、ログモニタが実行されている。ログモニタは、ログ情報を監視し、ログ情報からエラーを示すメッセージを抽出する常駐ソフトウェアである。ログモニタは、エラーを示すメッセージを抽出すると、抽出したメッセージに含まれる情報の一部または全部を、ＭＭＢファームウェアに出力する。ただし、ログモニタは、抽出したメッセージに含まれる情報を、端末装置２００または運用管理サーバ３００に直接送信してもよい。また、ログモニタは、抽出したメッセージに含まれる情報を、管理者宛ての電子メールとしてメールサーバ４００に送信してもよい。ログモニタは、エラー情報の報告方法を、エラーの内容（例えば、エラーのレベル）に応じて選択するようにしてもよい。
【００５３】
端末装置２００では、ＯＳが実行されている。ＯＳ上では、ＳＮＭＰマネージャおよびメールユーザエージェントが実行されている。端末装置のＳＮＭＰマネージャは、業務サーバ１００から受信するＳＮＭＰトラップおよび運用管理サーバ３００から受信する情報に基づいて、業務サーバ１００でエラーが発生したことを検知する常駐ソフトウェアである。メールユーザエージェントは、管理者の操作に応じて、メールサーバ４００にＰＯＰ（Post Office Protocol）コマンドを送信し、メールサーバ４００から管理者宛ての電子メールを受信するソフトウェアである。
【００５４】
運用管理サーバ３００では、ＯＳが実行されている。ＯＳ上では、ＳＮＭＰマネージャが実行されている。運用管理サーバ３００のＳＮＭＰマネージャは、業務サーバ１００から受信するＳＮＭＰトラップに基づいて、業務サーバ１００でエラーが発生したことを検知する常駐ソフトウェアである。ＳＮＭＰマネージャは、エラーの発生を検知した際、または、端末装置２００からの要求に応じて、エラー情報を端末装置２００に送信する。
【００５５】
メールサーバ４００では、ＯＳが実行されている。ＯＳ上では、メール転送エージェントが実行されている。メール転送エージェントは、電子メールを転送する常駐ソフトウェアである。メール転送エージェントは、業務サーバ１００から管理者宛ての電子メールを受信し、メールボックス用に確保した記憶装置（例えば、ＨＤＤ）内の記憶領域に、電子メールを書き込む。また、メール転送エージェントは、端末装置２００からＰＯＰコマンドを受信し、端末装置２００に電子メールを送信する。
【００５６】
図６は、業務サーバのログ監視機能を示すブロック図である。業務サーバ１００がログモニタのプログラムを実行することで、ログ情報記憶部１６１、検索フィルタ記憶部１６２、抽出フィルタ記憶部１６３、アクションフィルタ記憶部１６４、メッセージ検出部１７１、フィルタリング部１７２、未知メッセージ検索部１７５、アクション実行部１７８およびフィルタ生成部１７９が実現される。
【００５７】
ログ情報記憶部１６１は、例えば、ＨＤＤ１３１〜１３３内に確保された記憶領域である。検索フィルタ記憶部１６２、抽出フィルタ記憶部１６３およびアクションフィルタ記憶部１６４は、例えば、ＲＡＭ１１３〜１１６，１２３〜１２６またはＨＤＤ１３１〜１３３内に確保された記憶領域である。なお、検索部１７３は、第１の実施の形態の検索手段１２の一例であり、未知メッセージ検索部１７５は、検索手段１３の一例である。
【００５８】
ログ情報記憶部１６１は、ログ情報を記憶する。ログ情報には、ＯＳやデバイスドライバが書き込んだ複数のメッセージが含まれている。メッセージには、例えば、参考情報・警告・エラーなどのレベルの異なる複数種類のメッセージが含まれている。ログ情報において、メッセージとメッセージの間は、例えば、改行によって区切られている。
【００５９】
検索フィルタ記憶部１６２は、検索フィルタと未知メッセージ用検索フィルタとを記憶する。検索フィルタは、処理の対象とするメッセージのフォーマットを定義したフィルタ情報である。未知メッセージ用検索フィルタは、メッセージに使用され得る単語の重みを示すフィルタ情報である。未知メッセージ用検索フィルタは、フィルタ生成部１７９により生成され、検索フィルタ記憶部１６２に格納される。
【００６０】
抽出フィルタ記憶部１６３は、抽出フィルタを記憶する。抽出フィルタは、検索フィルタに基づいて選択されたメッセージに含まれる情報のうち、ＭＭＢファームウェアまたは他のコンピュータに報告すべき情報の範囲を指定したフィルタ情報である。報告すべき情報の範囲は、検索フィルタで定義されたフォーマット毎に指定してもよい。
【００６１】
アクションフィルタ記憶部１６４は、アクションフィルタと未知メッセージ用アクションフィルタとを記憶する。アクションフィルタは、検索フィルタに基づいて選択されたメッセージに対して実行するアクションを指定したフィルタ情報である。アクションは、検索フィルタで定義されたフォーマット毎に指定してもよい。未知メッセージ用アクションフィルタは、未知メッセージ用検索フィルタに基づいて選択されたメッセージに対して実行するアクションを指定したフィルタ情報である。
【００６２】
アクションには、ＭＭＢファームウェアへの通知、ＳＮＭＰトラップの送信、電子メールの送信などが含まれる。ただし、未知メッセージ用アクションフィルタで指定されるアクションには、業務サーバ１００内部への保存が含まれてもよい。業務サーバ１００は、例えば、端末装置２００からアクセスがあったとき、未知メッセージ用検索フィルタに基づいて選択されたメッセージを端末装置２００に送信することが考えられる。
【００６３】
なお、検索フィルタ、抽出フィルタおよびアクションフィルタは、予め業務サーバ１００に登録されている。ログ情報に書き込まれるメッセージのフォーマットが変化する要因が発生した場合、端末装置２００が業務サーバ１００に、変化後のフォーマットに対応した検索フィルタ、抽出フィルタおよびアクションフィルタを登録する。フォーマットが変化する要因には、例えば、ＯＳに適用するセキュリティパッチの発行、デバイスドライバのバージョンアップなどが考えられる。ただし、フォーマットの変化から各種フィルタの更新までには、タイムラグ（例えば、１ヶ月〜数ヶ月程度）が生じ得る。
【００６４】
メッセージ検出部１７１は、ログ情報記憶部１６１に記憶されたログ情報を監視し、ＯＳやデバイスドライバが新たにメッセージを書き込んだことを検出する。そして、メッセージ検出部１７１は、新たに書き込まれたメッセージをログ情報から取り出し、フィルタリング部１７２に順次出力する。
【００６５】
フィルタリング部１７２は、メッセージ検出部１７１から取得したメッセージのフィルタリング（第１段階のフィルタリング）を行う。フィルタリング部１７２は、検索部１７３および抽出部１７４を有する。
【００６６】
検索部１７３は、メッセージ検出部１７１から取得したメッセージと、検索フィルタ記憶部１６２に記憶された検索フィルタが示すフォーマットとの間で、文字列のマッチングを行う。文字列のマッチングでは、検索部１７３は、単語間のスペースの数や単語の並び順なども含めて厳密に一致した場合に「マッチした」と判断する。検索部１７３は、検索フィルタで定義された何れかのフォーマットにマッチしたメッセージを、抽出部１７４に出力する。一方、検索部１７３は、検索フィルタで定義された何れのフォーマットにもマッチしなかったメッセージを、未知メッセージ検索部１７５に出力する。
【００６７】
抽出部１７４は、検索部１７３から取得したメッセージから、抽出フィルタ記憶部１６３に記憶された抽出フィルタが指定する範囲の文字列を抽出する。そして、抽出部１７４は、抽出した文字列を、報告すべき情報として、アクション実行部１７８に出力する。
【００６８】
未知メッセージ検索部１７５は、フィルタリング部１７２から取得したメッセージのフィルタリング（第２段階のフィルタリング）を行う。未知メッセージ検索部１７５は、語分割部１７６および判定部１７７を有する。
【００６９】
語分割部１７６は、フィルタリング部１７２から取得したメッセージを、スペースやカンマなどの所定の文字を区切り文字として用いて、複数の単語に分割する。そして、語分割部１７６は、メッセージから得られた単語を、判定部１７７に出力する。
【００７０】
判定部１７７は、語分割部１７６から取得した単語それぞれの重みを、検索フィルタ記憶部１６２に記憶された未知メッセージ用検索フィルタを検索して特定する。未知メッセージ用検索フィルタに含まれていない単語の重みは、最小値（例えば、０）と判断する。判定部１７７は、メッセージに含まれる単語それぞれの重みを用いて、メッセージ全体の重要度を算出する。そして、判定部１７７は、算出した重要度が閾値以上であるメッセージを、アクション実行部１７８に出力する。一方、判定部１７７は、重要度が閾値未満であるメッセージを破棄する。
【００７１】
アクション実行部１７８は、フィルタリング部１７２から取得した情報に対し、アクションフィルタ記憶部１６４に記憶されたアクションフィルタが指定するアクションを実行する。また、アクション実行部１７８は、未知メッセージ検索部１７５から取得したメッセージに対し、アクションフィルタ記憶部１６４に記憶された未知メッセージ用アクションフィルタが指定するアクションを実行する。これにより、例えば、ログ情報からエラーを示す情報が抽出され、ＭＭＢファームウェアや他のコンピュータに通知される。
【００７２】
フィルタ生成部１７９は、未知メッセージ用検索フィルタの作成および更新を行う。フィルタ生成部１７９は、検索フィルタ記憶部１６２から検索フィルタを取得し、検索フィルタにおける単語の出現状況から、単語の重みを算出する。そして、フィルタ生成部１７９は、単語と当該単語の重みとを対応付けた未知メッセージ用検索フィルタを作成し、検索フィルタ記憶部１６２に格納する。また、フィルタ生成部１７９は、未知メッセージ検索部１７５で重要度が閾値以上であるメッセージが検出されると、当該メッセージに含まれる単語を用いて、未知メッセージ用検索フィルタを更新する。
【００７３】
図７は、検索フィルタの例を示す図である。検索フィルタ１８１は、検索フィルタ記憶部１６２に記憶されている。検索フィルタ１８１は、項目として、フォーマット番号とメッセージ名とメッセージ定義を含む。
【００７４】
フォーマット番号は、検索フィルタ内でメッセージのフォーマットを識別するための番号である。図７の例では、２７個のフォーマットが、検索フィルタに定義されている。メッセージ名は、メッセージの種類を示す名称である。メッセージ定義は、メッセージのフォーマットを示す文字列である。メッセージ定義において、“％％・・・％％”は可変部分（すなわち、パラメータ）である。メッセージの可変部分には、ＯＳやデバイスドライバによって、例えば、エラーコード、ＩＰ（Internet Protocol）アドレス、ホスト名、数値などが挿入される。検索部１７３は、可変部分が存在することを考慮して、ログ情報に含まれるメッセージとフォーマットの間のマッチングを行う。
【００７５】
次に、業務サーバ１００が実行する処理の内容を説明する。まず、検索フィルタから未知メッセージ用検索フィルタを生成する処理を説明し、その後、検索フィルタと未知メッセージ用検索フィルタを用いてメッセージを抽出する処理を説明する。
【００７６】
図８は、第２の実施の形態のフィルタ生成処理を示すフローチャートである。フィルタ生成処理は、例えば、端末装置２００から指示を受けて、業務サーバ１００が実行する。以下、図８に示す処理を、ステップ番号に沿って説明する。
【００７７】
（ステップＳ１１）フィルタ生成部１７９は、検索フィルタ記憶部１６２から、検索フィルタ１８１を取得する。そして、フィルタ生成部１７９は、検索フィルタ１８１から、メッセージ定義を抽出する。
【００７８】
（ステップＳ１２）フィルタ生成部１７９は、ステップＳ１１で抽出したメッセージ定義から、可変部分を示す文字列（％％・・・％％）を除去する。
（ステップＳ１３）フィルタ生成部１７９は、可変部分を除去した後のメッセージ定義を、所定の文字を区切り文字として用いて、複数の単語に分割する。区切り文字には、例えば、スペース、ピリオド、カンマ、コロン、セミコロンなどを用いる。区切り文字は、予めフィルタ生成部１７９に登録されている。ただし、端末装置２００が業務サーバ１００に、区切り文字を指示するようにしてもよい。
【００７９】
（ステップＳ１４）フィルタ生成部１７９は、ステップＳ１３で得られた単語それぞれの出現数、すなわち、当該単語を含むメッセージ定義の数を算出する。そして、フィルタ生成部１７９は、算出した出現数を、単語の重みと定義する。
【００８０】
（ステップＳ１５）フィルタ生成部１７９は、ステップＳ１４で算出した単語の重みを示す未知メッセージ用検索フィルタを作成し、検索フィルタ記憶部１６２に格納する。なお、フィルタ生成部１７９は、ステップＳ１３で得られた単語の一部を、未知メッセージ用検索フィルタに含めなくてもよい。例えば、フィルタ生成部１７９は、出現数が極端に多い単語を、未知メッセージ用検索フィルタに登録しない。
【００８１】
図９は、単語出現数のカウント状況を示す図である。図９に示すカウント表は、上記のステップＳ１４でフィルタ生成部１７９が生成する表である。カウント表の縦軸は、検索フィルタ１８１のフォーマット番号に対応している。カウント表の横軸は、上記のステップＳ１３で得られた単語を示している。カウント表の「１」は、横軸に記載された単語が縦軸に記載されたフォーマット番号のメッセージ定義に現れることを示す。カウント表の空欄は、横軸に記載された単語が縦軸に記載されたフォーマット番号のメッセージ定義に現れないことを示す。カウント表の最下行は、各単語の出現数を示している。
【００８２】
図１０は、未知メッセージ用検索フィルタの第１の例を示す図である。未知メッセージ用検索フィルタ１８２は、上記のステップＳ１５で、フィルタ生成部１７９により生成されて検索フィルタ記憶部１６２に格納される。未知メッセージ用検索フィルタ１８２は、項目として、ＩＤと単語と重みを含む。ＩＤは、未知メッセージ用検索フィルタ１８２内で単語を識別するための識別情報である。単語は、図９に示したカウント表の横軸に記載された単語である。重みは、カウント表の最下行に集計された出現数に対応する。未知メッセージ用検索フィルタ１８２では、複数の単語が重みの大きい順に整列されている。ただし、複数の単語がアルファベット順に整列されていてもよい。
【００８３】
前述の通り、フィルタ生成部１７９は、検索フィルタ１８１に現れる単語の一部を、未知メッセージ用検索フィルタ１８２に登録しなくてもよい。例えば、フィルタ生成部１７９は、メッセージ定義の数に対する出現数の割合（出現割合）が所定の閾値以上である単語を、未知メッセージ用検索フィルタ１８２に登録しない。また、フィルタ生成部１７９は、予め登録された単語（例えば、ドライバ名）を、未知メッセージ用検索フィルタ１８２に登録しない。汎用的に用いられている単語を除外した方が、メッセージの重要度の評価精度が向上すると考えられるためである。図１０の例では、全てのメッセージ定義に現れる単語“ＤｅｖＸ”が、未知メッセージ用検索フィルタ１８２に登録されていない。
【００８４】
フィルタ生成部１７９は、未知メッセージ用検索フィルタ１８２を生成した際、メッセージの重要度の閾値も決定する。例えば、フィルタ生成部１７９は、以下のグレード１〜３の何れかの方法を用いて、閾値を決定する。
【００８５】
・グレード１：閾値＝メッセージ定義の数と決定する。図７に示した例（メッセージ定義の数＝２７）の場合、閾値＝２７に設定される。
・グレード２：閾値＝メッセージ定義の数×２÷３と決定する。図７に示した例（メッセージ定義の数＝２７）の場合、閾値＝１８に設定される。
【００８６】
・グレード３：閾値＝メッセージ定義の数÷３と決定する。図７に示した例（メッセージ定義の数＝２７）の場合、閾値＝９に設定される。
グレード１の方法を用いると閾値が大きくなり、グレード３の方法を用いると閾値が小さくなる。すなわち、グレード１の方法で閾値を決定すると、判定部１７７でメッセージが破棄される確率が高くなり、グレード３の方法で閾値を決定すると、判定部１７７でメッセージが破棄される確率が低くなる。管理者は、誤検出（すなわち、本来抽出すべきでないメッセージを誤って抽出してしまうこと）をどの程度許容するか考慮して、グレード１〜３の何れか１つの決定方法を予め選択しておく。
【００８７】
図１１は、未知メッセージ用検索フィルタの第１のデータ構造例を示す図である。未知メッセージ用検索フィルタ１８２は、例えば、図１１に示すような線形リストとして、メモリ上に配置される。ただし、図１１に示すデータ構造は一例であり、未知メッセージ用検索フィルタ１８２のデータ構造は線形リストに限定されない。
【００８８】
未知メッセージ用検索フィルタ１８２を示す線形リストは、未知メッセージ用検索フィルタ１８２で定義される単語に対応するノードを含む。各ノードは、可変長である単語の文字列の先頭アドレスを指すポインタと、当該単語の重みを示す数値とを含む。複数のノードは、一方向のポインタによって連結されている。最後尾のノードに含まれるポインタは、ＮＵＬＬポインタである。また、先頭のノードのアドレスを指すポインタと重要度の閾値を示す数値のセットが、メモリ上に配置される。判定部１７７は、先頭のノードから最後尾のノードに向かってポインタを辿ることで、所望の単語を検索し、単語の重みを特定することができる。
【００８９】
なお、第２の実施の形態では、業務サーバ１００の各パーティションで実行されるログモニタが、検索フィルタ１８１に基づいて未知メッセージ用検索フィルタ１８２を生成することとした。一方、ＭＭＢファームウェアや他のコンピュータ（例えば、端末装置２００）が、未知メッセージ用検索フィルタ１８２を生成し、業務サーバ１００の各パーティションに配布するようにしてもよい。
【００９０】
図１２は、第２の実施の形態のメッセージ抽出処理を示すフローチャートである。メッセージ抽出処理は、ログ情報へのメッセージの書き込みをトリガとして、業務サーバ１００が実行する。以下、図１２に示す処理を、ステップ番号に沿って説明する。
【００９１】
（ステップＳ２１）メッセージ検出部１７１は、ログ情報記憶部１６１に記憶されたログ情報に、新たなメッセージが書き込まれたことを検出する。そして、メッセージ検出部１７１は、ログ情報から新たなメッセージを取り出す。
【００９２】
（ステップＳ２２）検索部１７３は、ステップＳ２１で取り出されたメッセージを、検索フィルタ記憶部１６２に記憶された検索フィルタ１８１に含まれるメッセージ定義それぞれと照合する。メッセージの照合では、検索部１７３は、メッセージ定義の可変部分に任意の文字列が挿入され得ることを考慮する。
【００９３】
（ステップＳ２３）検索部１７３は、ステップＳ２１で取り出されたメッセージが、検索フィルタ１８１に定義されたフォーマットに適合するか、すなわち、少なくとも１つのメッセージ定義とマッチするか判断する。フォーマットが適合する場合、処理をステップＳ２４に進める。フォーマットが適合しない場合、処理をステップＳ２５に進める。
【００９４】
（ステップＳ２４）抽出部１７４は、検索部１７３から取得したメッセージから、抽出フィルタ記憶部１６３に記憶された抽出フィルタが指定する範囲の情報（報告情報）を抽出する。抽出フィルタが指定する範囲は、例えば、管理者がエラー原因を特定するのに役立つ情報がメッセージから抽出されるように、メッセージのフォーマット毎に設定されている。そして、処理をステップＳ２９に進める。
【００９５】
（ステップＳ２５）語分割部１７６は、検索部１７３から取得したメッセージを、所定の文字を区切り文字として用いて、複数の単語に分割する。
（ステップＳ２６）判定部１７７は、検索フィルタ記憶部１６２に記憶された未知メッセージ用検索フィルタ１８２を検索して、ステップＳ２５で得られた単語それぞれの重みを特定する。そして、判定部１７７は、特定した各単語の重みの合計を、メッセージの重要度として算出する。なお、未知メッセージ用検索フィルタ１８２に記載されていない単語の重みは、０と判断される。
【００９６】
（ステップＳ２７）判定部１７７は、ステップＳ２６で算出したメッセージの重要度と未知メッセージ用検索フィルタ１８２に記載された閾値とを比較する。重要度が閾値以上の場合、処理をステップＳ２８に進める。重要度が閾値未満の場合、判定部１７７は、検索部１７３から取得したメッセージを破棄し、処理を終了する。
【００９７】
（ステップＳ２８）フィルタ生成部１７９は、ステップＳ２７で重要度が閾値以上と判断されたメッセージ（未知メッセージ）を用いて、未知メッセージ用検索フィルタ１８２を更新する。例えば、フィルタ生成部１７９は、未知メッセージを複数の単語に分割し、未知メッセージ用検索フィルタ１８２に未登録の単語を追加する。
【００９８】
または、フィルタ生成部１７９は、未登録の単語のリストを検索フィルタ記憶部１６２に格納しておき、所定回数（例えば、３回）検出された未登録の単語を、リストから未知メッセージ用検索フィルタ１８２に移すようにしてもよい。また、フィルタ生成部１７９は、未知メッセージから得られた単語のうち所定の単語（例えば、ドライバ名）を、未知メッセージ用検索フィルタ１８２に登録しないようにしてもよい。未知メッセージ用検索フィルタ１８２に追加する単語の重みは、例えば、比較的小さい所定の値に設定される。
【００９９】
（ステップＳ２９）アクション実行部１７８は、抽出部１７４から取得した報告情報または判定部１７７から取得したメッセージに対し、アクションフィルタ記憶部１６４に記憶されたアクションフィルタが指定するアクションを実行する。例えば、アクション実行部１７８は、ＭＭＢファームウェアへのエラー報告、運用管理サーバ３００へのＳＮＭＰトラップの送信、メールサーバ４００への電子メールの送信などを実行する。
【０１００】
なお、上記のステップＳ２６で説明した、各単語の重みからメッセージの重要度を算出する方法は一例であり、他の方法で重要度を算出してもよい。また、上記のステップＳ２８における未知メッセージ用検索フィルタ１８２の更新は、ステップＳ２９の後に実行してもよい。また、フィルタ生成部１７９は、未知メッセージ用検索フィルタ１８２を動的に更新しない（ステップＳ２８を実行しない）ようにしてもよい。
【０１０１】
例えば、重要度の閾値が２７であるとする。メッセージが“ｆａｉｌｅｄ”と“ｅｒｒｏｒ”を含む場合、判定部１７７は、図１０に示した未知メッセージ用検索フィルタ１８２に基づいて、当該メッセージの重要度を少なくとも３６であると算出する。この場合、判定部１７７は、当該メッセージを破棄せずアクション実行部１７８に出力する。一方、メッセージがと“ｐｒｏｂｅ”と“ａｂｏｒｔｉｎｇ”を含むが未知メッセージ用検索フィルタ１８２に登録された他の単語を含まない場合、判定部１７７は、当該メッセージの重要度を１９と算出する。この場合、判定部１７７は、当該メッセージを破棄する。
【０１０２】
図１３は、情報処理システムにおける通信の例を示すシーケンス図である。前述のように、業務サーバ１００は、アクションフィルタが指定する方法で、報告すべき情報を処理する。図１３は、４つの処理方法の例（ＳＴ１〜ＳＴ４）を示している。
【０１０３】
（ＳＴ１）各パーティションで実行されるログモニタは、ＭＭＢファームウェアにエラー報告を送信する。ＭＭＢファームウェア上で実行されるＳＮＭＰデーモンは、エラーの発生を示すＳＮＭＰトラップを、運用管理サーバ３００に送信する。運用管理サーバ３００で実行されるＳＮＭＰマネージャは、ＳＮＭＰトラップを受信し、業務サーバ１００でエラーが発生したことを検知する。なお、ＳＮＭＰデーモンは、端末装置２００にＳＮＭＰトラップを送信してもよい。
【０１０４】
（ＳＴ２）各パーティションで実行されるログモニタは、ＳＮＭＰトラップを、運用管理サーバ３００に直接送信する。運用管理サーバ３００で実行されるＳＮＭＰマネージャは、ＳＮＭＰトラップを受信し、業務サーバ１００でエラーが発生したことを検知する。なお、ログモニタは、端末装置２００にＳＮＭＰトラップを送信してもよい。
【０１０５】
（ＳＴ３）各パーティションで実行されるログモニタは、エラーの発生を示す管理者宛ての電子メールを、メールサーバ４００に送信する。メールサーバ４００で実行されるメール転送エージェントは、受信した電子メールを、管理者のメールボックスに保存する。メール転送エージェントは、端末装置２００から受信するＰＯＰコマンドに応じて、メールボックスに保存された電子メールを端末装置２００に送信する。
【０１０６】
（ＳＴ４）各パーティションで実行されるログモニタまたはＭＭＢファームウェアは、エラー報告をＨＤＤ１３１〜１３３に保存しておく。ＭＭＢファームウェアは、端末装置２００から受信するＨＴＴＰ（Hypertext Transfer Protocol）リクエストに応じて、エラー報告を端末装置２００に送信する。
【０１０７】
第２の実施の形態に係る情報処理システムによれば、検索フィルタ１８１が変化後のフォーマットに未対応であっても、未知メッセージ用検索フィルタ１８２を用いることで、メッセージの抽出漏れが発生する可能性を低減できる。また、未知メッセージ用検索フィルタ１８２を、既存の検索フィルタ１８１に基づいて生成することで、メッセージの重要度の判定精度を向上させることができる。特に、業務サーバ１００は、単語間に挿入されるスペースの数の変化、区切り文字の変化、単語の並び順の変化などの形式的なフォーマットの変化に柔軟に対応できるようになる。また、未知メッセージ用検索フィルタ１８２を、単語の重みを定義したフィルタ情報とすることで、フィルタ生成が容易となる。
【０１０８】
［第３の実施の形態］
次に、第３の実施の形態を説明する。第２の実施の形態との差異を中心に説明し、第２の実施の形態と同様の事項については説明を省略する。第３の実施の形態に係る情報処理システムは、未知メッセージ用検索フィルタの構造およびメッセージの重要度の算出方法が、第２の実施の形態と異なる。
【０１０９】
第３の実施の形態に係る情報処理システムは、図２に示した第２の実施の形態と同様のシステム構成によって実現できる。また、第３の実施の形態に係る業務サーバは、図３，６に示した第２の実施の形態と同様のブロック構成によって実現できる。以下では、第３の実施の形態に係る業務サーバが実行する処理を、図２，３，６で用いたものと同じ符号を用いて説明する。
【０１１０】
図１４は、第３の実施の形態のフィルタ生成処理を示すフローチャートである。図１４に示す処理を、ステップ番号に沿って説明する。
（ステップＳ３１）フィルタ生成部１７９は、検索フィルタ記憶部１６２から、検索フィルタ１８１を取得する。そして、フィルタ生成部１７９は、検索フィルタ１８１から、メッセージ定義を抽出する。
【０１１１】
（ステップＳ３２）フィルタ生成部１７９は、ステップＳ３１で抽出したメッセージ定義から、可変部分を示す文字列（％％・・・％％）を除去する。
（ステップＳ３３）フィルタ生成部１７９は、可変部分を除去した後のメッセージ定義を、所定の文字を区切り文字として用いて、複数の単語に分割する。
【０１１２】
（ステップＳ３４）フィルタ生成部１７９は、可変部を除去した後のメッセージ定義に含まれる句を抽出する。第３の実施の形態において、抽出される句は、２個以上の任意の数の単語を並べた単語列である。例えば、可変部を除去した後のメッセージ定義がＡＢＣ（Ａ，Ｂ，Ｃは単語）である場合、句としてＡＢ，ＡＢＣ，ＢＣが抽出される。
【０１１３】
（ステップＳ３５）フィルタ生成部１７９は、ステップＳ３３で得られた単語それぞれの出現数、すなわち、当該単語を含むメッセージ定義の数を算出する。そして、フィルタ生成部１７９は、算出した出現数を、単語の重みと定義する。
【０１１４】
（ステップＳ３６）フィルタ生成部１７９は、ステップＳ３５で算出した単語の重みを用いて、ステップＳ３４で得られた句それぞれの重みを算出する。すなわち、フィルタ生成部１７９は、句に含まれる単語の重みを合計し、合計値を句の重みと定義する。
【０１１５】
（ステップＳ３７）フィルタ生成部１７９は、語句の重み、すなわち、ステップＳ３５で算出した単語の重みおよびステップＳ３６で算出した句の重みを調整する。例えば、フィルタ生成部１７９は、語句の重みの最大値が１００となるよう、ステップＳ３５，Ｓ３６で算出した重みを相対値に変換する。
【０１１６】
（ステップＳ３８）フィルタ生成部１７９は、ステップＳ３７で算出した語句の重みを示す未知メッセージ用検索フィルタを作成し、検索フィルタ記憶部１６２に格納する。なお、フィルタ生成部１７９は、ステップＳ３３，Ｓ３４で得られた語句の一部を、未知メッセージ用検索フィルタに登録しないようにしてもよい。
【０１１７】
図１５は、語句の重みの算出状況を示す図である。図１５に示す重み算出表は、上記のステップＳ３５，Ｓ３６を通じてフィルタ生成部１７９が生成する表である。重み算出表は、項目として、フォーマット番号、語句、語重みおよび句重みを含む。フォーマット番号は、検索フィルタ１８１に記載されたフォーマット番号に対応している。語句は、メッセージ定義に含まれる単語および句である。
【０１１８】
語重みは、ステップＳ３５で算出される単語の重みである。単語の重みは、第２の実施の形態と同様の方法で算出することができる。句重みは、ステップＳ３６で算出される句の重みである。例えば、句“ｆａｉｌｅｄ  ｗｉｔｈ”の重みは、単語“ｆａｉｌｅｄ”の重み（＝１８）と単語“ｗｉｔｈ”の重み（＝１２）の合計である。
【０１１９】
図１６は、未知メッセージ用検索フィルタの第２の例を示す図である。未知メッセージ用検索フィルタ１８３は、上記のステップＳ３８で、フィルタ生成部１７９により生成されて検索フィルタ記憶部１６２に格納される。
【０１２０】
未知メッセージ用検索フィルタ１８３は、項目として、インデックスとＩＤと語句と重みを含む。インデックスは、語句の先頭のアルファベットである。未知メッセージ用検索フィルタ１８３では、複数の語句がアルファベット順に整列されている。ＩＤは、同一のインデックス内で語句を識別するための識別情報である。語句は、図１５に示した重み算出表に記載された単語および句である。重みは、上記のステップＳ３７で調整された後の語重みまたは句重みである。
【０１２１】
フィルタ生成部１７９は、未知メッセージ用検索フィルタ１８３が生成する際、メッセージの重要度の閾値も、未知メッセージ用検索フィルタ１８３に記録しておく。第３の実施の形態の閾値は、０以上１００以下の値である。閾値が１００に近いほど、判定部１７７でメッセージが破棄される確率が高くなり、閾値が０に近いほど、判定部１７７でメッセージが破棄される確率が低くなる。管理者は、誤検出をどの程度許容するか考慮して、重要度の閾値をフィルタ生成部１７９に指示しておく。
【０１２２】
図１７は、未知メッセージ用検索フィルタの第２のデータ構造例を示す図である。未知メッセージ用検索フィルタ１８３は、例えば、図１７に示すような線形リストとして、メモリ上に配置される。ただし、図１７に示すデータ構造は一例であり、未知メッセージ用検索フィルタ１８３のデータ構造は線形リストに限定されない。
【０１２３】
未知メッセージ用検索フィルタ１８３を示す線形リストは、インデックス（Ａ〜Ｚ）に対応するノードを含む。また、当該線形リストは、未知メッセージ用検索フィルタ１８３で定義される語句に対応するノードを含む。インデックスに対応する各ノードは、当該インデックスに属する語句に対応するノードのうち先頭のノードを指すポインタを含む。語句に対応する各ノードは、可変長である語句の文字列の先頭アドレスを指すポインタと、当該語句の重みを示す数値とを含む。
【０１２４】
インデックスに対応する複数のノードは、一方向のポインタで連結されている。また、同一のインデックスに属する語句に対応する複数のノードは、一方向のポインタで連結されている。最後尾のノードに含まれるポインタは、ＮＵＬＬポインタである。また、インデックスに対応するノードのうち先頭のノード（すなわち、“Ａ”に対応するノード）のアドレスを指すポインタと重要度の閾値を示す数値のセットが、メモリ上に配置される。
【０１２５】
なお、第２の実施の形態で言及したように、ＭＭＢファームウェアや他のコンピュータ（例えば、端末装置２００）が、未知メッセージ用検索フィルタ１８３を生成し、業務サーバ１００の各パーティションに配布するようにしてもよい。
【０１２６】
図１８は、第３の実施の形態のメッセージ抽出処理を示すフローチャートである。図１８に示す処理を、ステップ番号に沿って説明する。
（ステップＳ４１）メッセージ検出部１７１は、ログ情報記憶部１６１に記憶されたログ情報に、新たなメッセージが書き込まれたことを検出する。そして、メッセージ検出部１７１は、ログ情報から新たなメッセージを取り出す。
【０１２７】
（ステップＳ４２）検索部１７３は、ステップＳ４１で取り出されたメッセージを、検索フィルタ記憶部１６２に記憶された検索フィルタ１８１に含まれるメッセージ定義それぞれと照合する。
【０１２８】
（ステップＳ４３）検索部１７３は、ステップＳ４１で取り出されたメッセージが、検索フィルタ１８１に定義されたフォーマットに適合するか、すなわち、少なくとも１つのメッセージ定義とマッチするか判断する。フォーマットが適合する場合、処理をステップＳ４４に進める。フォーマットが適合しない場合、処理をステップＳ４５に進める。
【０１２９】
（ステップＳ４４）抽出部１７４は、検索部１７３から取得したメッセージから、抽出フィルタ記憶部１６３に記憶された抽出フィルタが指定する範囲の情報（報告情報）を抽出する。そして、処理をステップＳ５１に進める。
【０１３０】
（ステップＳ４５）語分割部１７６は、検索部１７３から取得したメッセージを、所定の文字を区切り文字として用いて、複数の単語に分割する。
（ステップＳ４６）判定部１７７は、メッセージ内の現在着目している単語の先頭アルファベットを特定する。ステップＳ４６を最初に実行するときは、着目する単語はメッセージの先頭の単語である。判定部１７７は、検索フィルタ記憶部１６２に記憶された未知メッセージ用検索フィルタ１８３から、特定した先頭アルファベットから始まる語句を取得する。例えば、判定部１７７は、先頭アルファベットが“Ｓ”の場合は、インデックス“Ｓ”に属する語句を未知メッセージ用検索フィルタ１８３から取得する。
【０１３１】
そして、判定部１７７は、未知メッセージ用検索フィルタ１８３から取得した語句のうち、重み×一致率が最大となる語句を選択する。一致率は、メッセージ内の現在着目している単語から始まる語句と未知メッセージ用検索フィルタ１８３から取得した語句との間の、文字の一致率である。例えば、メッセージがＡＢＣ（Ａ，Ｂ，Ｃは単語）であり、未知メッセージ用検索フィルタ１８３に、ＡとＡＢとＡＢＤ（Ｄは単語）が記載されているとする。この場合、判定部１７７は、句ＡＢを選択することが考えられる。なお、未知メッセージ用検索フィルタ１８３に記載されていない単語の一致率は、０と判断される。
【０１３２】
（ステップＳ４７）判定部１７７は、メッセージから、ステップＳ４６でマッチした語句を取り除く。判定部１７７は、マッチした語句を取り除いた後のメッセージに、語句が残っているか判断する。語句が残っている場合、残りの語句の先頭の単語に着目し、処理をステップＳ４６に進める。語句が残っていない場合、処理をステップＳ４８に進める。例えば、メッセージがＡＢＣであり、ＡＢＣのうちＡＢが未知メッセージ用検索フィルタ１８３に記載された句とマッチしたとする。この場合、判定部１７７は、残りの単語Ｃに着目して、ステップＳ４６を実行する。
【０１３３】
（ステップＳ４８）判定部１７７は、ステップＳ４６で選択した語句についての重み×一致率と、メッセージ内のステップＳ４６でマッチした語句の長さ（スペースを除く文字数）から、メッセージの重要度を算出する。すなわち、判定部１７７は、以下の式を用いて、メッセージの重要度を算出する。
【０１３４】
重要度＝ｓｕｍ（語句の長さ×重み×一致率）÷メッセージ全体の長さ
例えば、メッセージがＡＢＣであり、ステップＳ４６でＡＢとＣがそれぞれ、未知メッセージ用検索フィルタ１８３に記載された語句とマッチしたとする。この場合、判定部１７７は、以下の式で当該メッセージの重要度を算出する。
【０１３５】
（ＡＢの長さ×重み×一致率＋Ｃの長さ×重み×一致率）÷ＡＢＣの長さ
（ステップＳ４９）判定部１７７は、ステップＳ４８で算出したメッセージの重要度と未知メッセージ用検索フィルタ１８３に記載された閾値とを比較する。重要度が閾値以上の場合、処理をステップＳ４９に進める。重要度が閾値未満の場合、判定部１７７は、検索部１７３から取得したメッセージを破棄し、処理を終了する。
【０１３６】
（ステップＳ５０）フィルタ生成部１７９は、ステップＳ４９で重要度が閾値以上と判断された未知メッセージを用いて、未知メッセージ用検索フィルタ１８３を更新する。例えば、フィルタ生成部１７９は、未知メッセージに含まれる語句を抽出し、未知メッセージ用検索フィルタ１８３に未登録の語句を追加する。または、フィルタ生成部１７９は、未登録の語句のリストを検索フィルタ記憶部１６２に格納しておき、所定回数（例えば、３回）検出された未登録の語句を、リストから未知メッセージ用検索フィルタ１８３に移すようにしてもよい。
【０１３７】
（ステップＳ５１）アクション実行部１７８は、抽出部１７４から取得した報告情報または判定部１７７から取得したメッセージに対し、アクションフィルタ記憶部１６４に記憶されたアクションフィルタが指定するアクションを実行する。
【０１３８】
なお、上記のステップＳ４８で説明した重要度の算出方法は一例であり、他の方法で重要度を算出してもよい。また、上記のステップＳ５０における未知メッセージ用検索フィルタ１８３の更新は、ステップＳ５１の後に実行してもよい。また、フィルタ生成部１７９は、未知メッセージ用検索フィルタ１８３を動的に更新しないようにしてもよい。
【０１３９】
例えば、メッセージが“Ｓｔａｒｔ  ｆａｉｌｅｄ（／ｅｔｃ／ｏｐｔ／ＦＪＳＶｐｓａ／ｇｌｏｂａｌ／ｐｍｐｓａ．ｃｏｎｆ）：Ｆｉｌｅｓ  ｃａｎｎｏｔ  ｏｐｅｎ”であるとする。また、検索フィルタ記憶部１６２に、図１６に示した未知メッセージ用検索フィルタ１８３が記憶されているとする。
【０１４０】
この場合、判定部１７７は、メッセージに含まれる“Ｓｔａｒｔ  ｆａｉｌｅｄ（／ｅｔｃ／ｏｐｔ／ＦＪＳＶｐｓａ／ｇｌｏｂａｌ／ｐｍｐｓａ．ｃｏｎｆ）：Ｆｉｌｅｓ”と、インデックス“Ｓ”に属するＩＤ＝ｍの句およびＩＤ＝ｍ＋１の句の間でマッチングを行う。ＩＤ＝ｍの句の一致率は５４÷５５＝約９８％であり、重み×一致率＝約７８である。一方、ＩＤ＝ｍ＋１の句の一致率は５５÷５５＝１００％であり、重み×一致率＝８０である。よって、判定部１７７は、インデックス“Ｓ”に属するＩＤ＝ｍ＋１の句を選択し、メッセージの上記部分をマッチング済みと判断する。
【０１４１】
次に、判定部１７７は、メッセージに含まれる“ｃａｎｎｏｔ  ｏｐｅｎ”と、インデックス“Ｃ”に属するＩＤ＝４の句の間でマッチングを行う。判定部１７７は、重み×一致率＝３０×１００％＝３０と算出し、メッセージの上記残り部分をマッチング済みと判断する。以上より、判定部１７７は、メッセージの重要度＝（５５×８０×１００％＋１２×３０×１００％）÷（５５＋１２）＝約７１と算出する。
【０１４２】
第３の実施の形態に係る情報処理システムによれば、第２の実施の形態と同様、検索フィルタ１８１が変化後のフォーマットに未対応であっても、未知メッセージ用検索フィルタ１８３を用いることで、メッセージの抽出漏れが発生する可能性を低減できる。更に、未知メッセージ用検索フィルタ１８３を、単語の重みに加えて句の重みも定義したフィルタ情報とすることで、メッセージ内の単語の並び順を考慮してメッセージの重要度を判定することができ、重要度の判定精度を向上させることができる。
【０１４３】
なお、前述の通り、業務サーバ１００のログ監視機能は、コンピュータを用いて実現できる。その場合、コンピュータに実行させる処理の内容を記述したプログラムが提供される。処理内容を記述したプログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体２２３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリを使用できる。磁気ディスクには、ＨＤＤ、ＦＤ、磁気テープ（ＭＴ：Magnetic Tape）が含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、ＤＶＤ、ＤＶＤ−Ｒ／ＲＷが含まれる。
【０１４４】
プログラムを流通させる場合、例えば、プログラムが記録された可搬記録媒体が提供される。または、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由で、プログラムを業務サーバ１００に転送することもできる。業務サーバ１００は、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、自装置の記憶装置（例えば、ＨＤＤ１３１〜１３３）に格納する。そして、自装置の記憶装置からプログラムを読み込んで実行する。ただし、可搬型記録媒体から直接プログラムを読み込んで実行することもできる。また、他のコンピュータからプログラムを受信する毎に逐次、受信したプログラムを実行することもできる。
【０１４５】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１４６】
１０  情報処理装置
１１  記憶部
１１ａ，１１ｂ  フィルタ情報
１２，１３  検索手段
１４  複数のメッセージ
【図１】
2012066650.tif 000003
【図２】
2012066650.tif 000004
【図３】
2012066650.tif 000005
【図４】
2012066650.tif 000006
【図５】
2012066650.tif 000007
【図６】
2012066650.tif 000008
【図７】
2012066650.tif 000009
【図８】
2012066650.tif 000010
【図９】
2012066650.tif 000011
【図１０】
2012066650.tif 000012
【図１１】
2012066650.tif 000013
【図１２】
2012066650.tif 000014
【図１３】
2012066650.tif 000015
【図１４】
2012066650.tif 000016
【図１５】
2012066650.tif 000017
【図１６】
2012066650.tif 000018
【図１７】
2012066650.tif 000019
【図１８】
2012066650.tif 000020
【国際調査報告】
2012066650.tif 000021
2012066650.tif 000022
2012066650.tif 000023
2012066650.tif 000024