(57)【特許請求の範囲】
【請求項１】
コンピュータが、
複数の出力元装置から出力された複数のメッセージを取得し、
前記複数のメッセージそれぞれを出力した出力元装置に関連する文書から、前記複数のメッセージそれぞれの説明文を取得し、
前記複数のメッセージそれぞれの説明文に基づいて、互いに関連するメッセージを同一のグループにグループ化する、
グループ化方法。
【請求項２】
前記グループ化では、前記複数のメッセージそれぞれの説明文に含まれる単語の意味の類似性に基づいてメッセージ間の関連性の有無を判断し、関連性があると判断されたメッセージ同士を同一のグループにグループ化する、
請求項１記載のグループ化方法。
【請求項３】
前記グループ化では、第１のメッセージの第１の説明文の取得元の第１の文書に基づいて、前記第１の文書において固有の意味が与えられた固有語と該固有語の意味とを判別し、前記第１の説明文に含まれる該固有語の意味に基づいて、前記第１のメッセージと他の第２のメッセージとの関連性の有無を判断し、関連性があると判断された場合に前記第１のメッセージと前記第２のメッセージとを同一のグループにグループ化する、
請求項１または２に記載のグループ化方法。
【請求項４】
前記グループ化では、前記第１の文書内から、前記第１の文書に登場し他の第２の文書に登場しないフレーズを、前記第１の文書の固有語と判別し、前記第１の文書内での該固有語に関する記載から関連語を抽出し、前記第１の説明文に含まれる該固有語に対応する関連語の意味と、前記第２のメッセージの第２の説明文に含まれる単語の意味との類似性に基づいて、前記第１のメッセージと前記第２のメッセージとの関連性の有無を判断する、
請求項３記載のグループ化方法。
【請求項５】
前記コンピュータが、さらに、前記複数のメッセージの取得前に、
前記複数の出力元装置に関する複数の文書それぞれから、前記複数の出力元装置が出力可能な複数の出力可能メッセージに関する情報を取得し、
前記複数の出力可能メッセージそれぞれについて、出力可能メッセージを出力する出力元装置に関連する文書の内容に基づいて、該出力可能メッセージの説明文を取得し、
前記複数の出力可能メッセージの説明文それぞれに基づいて、互いに関連する出力可能メッセージそれぞれのメッセージ番号を関連づけて保持し、
前記複数のメッセージの取得後の前記グループ化では、前記複数のメッセージのうち、メッセージ番号が関連づけられたメッセージ同士を同一のグループにグループ化する、
請求項１乃至４のいずれかに記載のグループ化方法。
【請求項６】
複数の出力元装置それぞれに関連する文書を記憶する記憶部と、
前記複数の出力元装置から出力された複数のメッセージを取得し、前記複数のメッセージそれぞれを出力した出力元装置に関連する文書から、前記複数のメッセージそれぞれの説明文を取得し、前記複数のメッセージそれぞれの説明文に基づいて、互いに関連するメッセージを同一のグループにグループ化する演算部と、
を有するグループ化装置。
【請求項７】
コンピュータに、
複数の出力元装置から出力された複数のメッセージを取得し、
前記複数のメッセージそれぞれを出力した出力元装置に関連する文書から、前記複数のメッセージそれぞれの説明文を取得し、
前記複数のメッセージそれぞれの説明文に基づいて、互いに関連するメッセージを同一のグループにグループ化する、
処理を実行させるグループ化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グループ化方法、グループ化装置、およびグループ化プログラムに関する。
【背景技術】
【０００２】
コンピュータシステムなどの情報処理装置は、処理の実行状況を示すメッセージが出力され、そのメッセージがログとして蓄積される。メッセージは、システムを構成するＯＳ（Operating System）やミドルウェア、アプリケーションなどから出力される。メッセージには、処理内容や、エラーなどの発生事象が記述されている。ログとして蓄積されたメッセージは、情報処理装置の作業者による運用状況の把握などに利用される。
【０００３】
近年のコンピュータシステムは、複数のベンダ製品（多種多様な機器やソフトウェア）で構成され、それらの製品が連携動作している。そのため障害が発生したときには、複数のベンダ製品の中から、障害発生原因となるベンダ製品を特定する作業が行われる。例えば故障箇所を特定する際、作業者は以下のような手順で作業を実施する。
〔手順１〕ベンダ製品ごとに散在しているログを探し、ログ内のメッセージを参照する。
〔手順２〕各ベンダのメッセージの表記ゆれ（類似語、同音異義語など）などの情報変換（読み替え）をして、メッセージ（または事象）を理解する。
〔手順３〕上記〔手順１〕、〔手順２〕を繰り返し、事象を特定する。
【０００４】
上記の場合、作業者が各ベンダのログやマニュアルを参照しながら作業を実施する必要があり、作業時間の長期化、作業者の判断（変換）のミス、事象（または原因）の特定や対応方法を誤るリスクが高い。特にシステムでの故障は、ビジネス機会の損失に繋がる。そのために、早く正確に事象を捉え、原因を判断・特定し、短時間で復旧させることが非常に重要となっている。
【０００５】
ログを管理する技術としては、例えば、障害発生時に複数ベンダの製品が出力するログ情報を収集・整理し、発生した障害の本質的な原因と、その対策方法をレポートとして生成する技術がある。
【０００６】
また故障発生時に提示すべきメッセージのみをオペレータに提示できるようにする技術がある。この技術では、一つの障害に起因する一連の障害によって発生する各メッセージが、一つのグループに属するメッセージとして関連づけられる。そして一つのメッセージが受信されると、そのメッセージが有効期間以内に受信されているならば、予め定められている代表メッセージが出力される。
【０００７】
さらに、監視対象の計算機から収集された種々のメッセージに対し、メッセージの形式や文言の変換などを可能とし、運用管理者が理解しやすいメッセージへと変換することで障害対応の初動に要する時間を短縮する技術も考えられている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−２１６４５７号公報
【特許文献２】特開２００３−２２８４９７号公報
【特許文献３】特開２００８−９４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
関連するメッセージをグルーピングするとき、メッセージ本文を比較するだけでは、正確性に欠ける場合がある。例えば、異なるベンダの装置から出力されたメッセージは、同じ単語を用いても、その意味が異なる場合がある。しかも、メッセージ本文は、メッセージの内容を極めて端的に表しており、メッセージ本文だけでそのメッセージの内容を正確に把握することは困難である。そのため、従来の技術ではメッセージをグループ化する際のメッセージ間の関連性の判断の正確性が十分とはいえない。
【００１０】
１つの側面では、本発明は、関連するメッセージ間のグループ化の正確性を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、コンピュータが、複数の出力元装置から出力された複数のメッセージを取得し、複数のメッセージそれぞれを出力した出力元装置に関連する文書から、複数のメッセージそれぞれの説明文を取得し、複数のメッセージそれぞれの説明文に基づいて、互いに関連するメッセージを同一のグループにグループ化するグループ化方法が提供される。
【発明の効果】
【００１２】
１態様によれば、関連するメッセージ間のグループ化の正確性が向上する。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係るグループ化装置の機能構成例を示す図である。
【図２】第２の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。
【図３】情報処理装置の機能を示すブロック図である。
【図４】ログ記憶部内のメッセージの例を示す図である。
【図５】出力元情報記憶部に記憶される情報の一例を示す図である。
【図６】メッセージ詳細情報の一例を示す図である。
【図７】単語マスタの一例を示す図である。
【図８】ベンダ固有語マスタの一例を示す図である。
【図９】メッセージ情報マスタの一例を示す図である。
【図１０】事前処理の手順の一例を示すフローチャートである。
【図１１】単語マスタ作成処理の手順の一例を示すフローチャートである。
【図１２】ベンダ固有語マスタ作成処理の手順の一例を示す図である。
【図１３】ベンダ固有語判定処理の手順の一例を示すフローチャートである。
【図１４】ベンダ固有語マスタに登録するベンダ固有語の抽出例を示す図である。
【図１５】メッセージ情報マスタ作成処理の手順の一例を示すフローチャートである。
【図１６】単語・ベンダ固有語抽出処理の手順の一例を示すフローチャートである。
【図１７】メッセージグループ化処理の手順の一例を示す図である。
【図１８】メッセージ情報マスタの作成例を示す図である。
【図１９】ログ解析処理の手順の一例を示すフローチャートである。
【図２０】ログ内メッセージグループ化処理の手順の一例を示すフローチャートである。
【図２１】メッセージ表示処理の手順の一例を示すフローチャートである。
【図２２】メッセージ本文を用いたグループ化と説明文を用いたグループ化との違いを示す図である。
【図２３】ベンダ固有語を用いた関連性判断精度向上例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るグループ化装置の機能構成例を示す図である。第１の実施の形態に係るグループ化装置１０は、複数の出力元装置１〜３に接続されている。複数の出力元装置１〜３は、ネットワーク機器などのハードウェア、またはコンピュータ上で動作する仮想マシンやアプリケーションである。
【００１５】
グループ化装置１０は、出力元装置１〜３から出力されるメッセージ１ａ，２ａ，３ａのグルーピングを行う。そのためにグループ化装置１０は、記憶部１１と演算部１２とを有する。
【００１６】
記憶部１１は、出力元装置１〜３それぞれに関連する文書１１ａ，１１ｂ，１１ｃを記憶する。文書１１ａ，１１ｂ，１１ｃは、例えば出力元装置１〜３のマニュアルである。
演算部１２は、複数の出力元装置１〜３から出力された複数のメッセージ１ａ，２ａ，３ａを取得する。また演算部１２は、複数のメッセージそれぞれを出力した出力元装置１〜３に関連する文書１１ａ，１１ｂ，１１ｃから、複数のメッセージ１ａ，２ａ，３ａそれぞれの説明文１ｂ，２ｂ，３ｂを取得する。そして演算部１２は、複数のメッセージ１ａ，２ａ，３ａそれぞれの説明文１ｂ，２ｂ，３ｂに基づいて、互いに関連するメッセージを同一のグループにグループ化する。
【００１７】
グループ化では、例えば演算部１２は、複数のメッセージ１ａ，２ａ，３ａそれぞれの説明文１ｂ，２ｂ，３ｂに含まれる単語の意味の類似性に基づいてメッセージ間の関連性の有無を判断する。そして演算部１２は、関連性があると判断されたメッセージ同士を同一のグループにグループ化する。
【００１８】
またグループ化では、例えば演算部１２は、説明文１ｂ，２ｂ，３ｂの取得元の文書１１ａ，１１ｂ，１１ｃの内容に基づいて、文書１１ａ，１１ｂ，１１ｃに固有のフレーズまたは単語（固有語）とその固有語の意味とを判別する。固有語は、例えば１以上の単語を含む。さらに演算部１２は、説明文１ｂ，２ｂ，３ｂに含まれる固有語の意味に基づいて、１つの説明文に対応するメッセージと他のメッセージとの関連性の有無を判断する。そして演算部１２は、関連性があると判断されたメッセージ同士を同一のグループにグループ化する。
【００１９】
固有語とその固有語の意味との判別では、例えば演算部１２は、説明文の取得元の文書内から、その文書に登場し他の文書に登場しない固有語を、その文書の固有語と判別する。そして演算部１２は、説明文の取得元の文書内での、その文書の固有語に関する記載から、その固有語の意味に関連する関連語を抽出する。抽出された関連語により、文書内で使用されている固有語の意味が把握される。
【００２０】
このようなグループ化装置１０によれば、出力元装置１〜３それぞれからメッセージ１ａ，２ａ，３ａが出力されると、そのメッセージ１ａ，２ａ，３ａが演算部１２で取得される。そして演算部１２により、各メッセージ１ａ，２ａ，３ａの出力元装置１〜３に対応する文書１１ａ，１１ｂ，１１ｃから、メッセージ１ａ，２ａ，３ａの説明文１ｂ，２ｂ，３ｂが取得される。説明文１ｂ，２ｂ，３ｂには、メッセージ１ａ，２ａ，３ａの発生原因、対処方法、その他の詳細情報が含まれる。その後、演算部１２により、取得した説明文１ｂ，２ｂ，３ｂに基づいて、メッセージ１ａ，２ａ，３ａ間の関連性の有無が判断される。図１の例では、メッセージ１ａの説明文１ｂには、データベースへの接続処理が原因でメッセージ１ａが発生することが示されている。またメッセージ２ａの説明文２ｂには、データベースの接続に失敗したことでメッセージ２ａが発生していることが示されている。そのため、説明文１ｂ，２ｂに基づいて、メッセージ１ａ，２ａはいずれも、データベースへの接続の失敗が原因で発生したものと判断できる。そこで演算部１２により、メッセージ１ａ，２ａは関連性があると判断される。
【００２１】
それに対し、メッセージ３ａの説明文３ｂには、データベースサーバへのサービス接続処理で失敗したことが原因でメッセージ３ａが発生したことが示されている。データベースサーバへのサービス接続処理は、データベースにアクセスするアプリケーションへの接続である。そうすると、メッセージ３ａの発生原因は、データベースそのものへの接続失敗ではなく、データベースへアクセスするサービスへの接続失敗である。そのためメッセージ３ａは、メッセージ１ａ，２ａと発生原因が共通とはいえず、メッセージ１ａ，２ａと関連性がないと判断される。
【００２２】
演算部１２は、同一のグループにグループ化したメッセージを関連づけて、モニタなどの表示部１３の画面に表示させることができる。例えばユーザがメッセージ２ａを選択して表示させると、メッセージ２ａに関連する他のメッセージ１ａも表示される。
【００２３】
このように説明文１ｂ，２ｂ，３ｂに基づいてグループ化を行うことで、メッセージ本文でグループ化を行う場合と比べ、正しくグループ化を行うことができる。例えば図１に示したメッセージ１ａ，２ａ，３ａの本文には、接続処理中にエラーなどが発生したことしか示されておらず、発生原因などの詳細な情報が分からない。そのためメッセージ１ａ，２ａ，３ａの本文のみを頼りにグループ化を行うと、メッセージ１ａ，２ａ，３ａがすべて同じグループになる。それに対して、説明文１ｂ，２ｂ，３ｂを参照すれば、メッセージ３ａについては、他のメッセージ１ａ，２ａと発生原因が異なることを認識できる。その結果、メッセージ１ａ，２ａが同じグループにグループ化され、そのグループからメッセージ３ａは除外される。
【００２４】
なお演算部１２は、メッセージ間の関連性を予め調査しておくこともできる。その場合、演算部１２は、複数のメッセージ１ａ，２ａ，３ａの取得前に、複数の出力元装置１〜３に関する複数の文書１１ａ，１１ｂ，１１ｃそれぞれから、複数の出力元装置１〜３から出力可能な複数の出力可能メッセージに関する情報を取得する。次に演算部１２は、複数の出力可能メッセージそれぞれについて、出力可能メッセージを出力する出力元装置に関連する文書の内容に基づいて、該出力可能メッセージの説明文を取得する。さらに演算部１２は、複数の出力可能メッセージの説明文それぞれに基づいて、互いに関連する出力可能メッセージそれぞれのメッセージ番号を関連づけて保持する。そして演算部１２は、複数のメッセージ１ａ，２ａ，３ａの取得時には、複数のメッセージの中から、メッセージ番号が関連づけられたメッセージ同士を同一のグループにグループ化する。このようにメッセージ間の関連性を予め調査しておくことで、メッセージが発生してからグループ化するまでの処理を高速に行うことができる。
【００２５】
なお、演算部１２は、例えばグループ化装置１０が有するプロセッサにより実現することができる。また、記憶部１１は、例えばグループ化装置１０が有するメモリにより実現することができる。
【００２６】
また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、情報処理装置が、各種のアプリケーションソフトウェアそれぞれを実行するプロセスが出力したメッセージを、統合管理するものである。この情報処理装置は、第１の実施の形態のグループ化装置１０の一例である。
【００２７】
図２は、第２の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。情報処理装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１がプログラムを実行することで実現する機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００２８】
メモリ１０２は、情報処理装置１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。メモリ１０２としては、例えばＲＡＭ（Random Access Memory）などの揮発性の半導体記憶装置が使用される。
【００２９】
バス１０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、機器接続インタフェース１０７およびネットワークインタフェース１０８がある。
【００３０】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、情報処理装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
【００３１】
グラフィック処理装置１０４には、モニタ２１が接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令に従って、画像をモニタ２１の画面に表示させる。モニタ２１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３２】
入力インタフェース１０５には、キーボード２２とマウス２３とが接続されている。入力インタフェース１０５は、キーボード２２やマウス２３から送られてくる信号をプロセッサ１０１に送信する。なお、マウス２３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３３】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク２４に記録されたデータの読み取りを行う。光ディスク２４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３４】
機器接続インタフェース１０７は、情報処理装置１００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７には、メモリ装置２５やメモリリーダライタ２６を接続することができる。メモリ装置２５は、機器接続インタフェース１０７との通信機能を搭載した記録媒体である。メモリリーダライタ２６は、メモリカード２７へのデータの書き込み、またはメモリカード２７からのデータの読み出しを行う装置である。メモリカード２７は、カード型の記録媒体である。
【００３５】
ネットワークインタフェース１０８は、ネットワーク２０に接続されている。ネットワークインタフェース１０８は、ネットワーク２０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００３６】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示したグループ化装置１０も、図２に示した情報処理装置１００と同様のハードウェアにより実現することができる。
【００３７】
情報処理装置１００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。情報処理装置１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置１００に実行させるプログラムをＨＤＤ１０３に格納しておくことができる。プロセッサ１０１は、ＨＤＤ１０３内のプログラムの少なくとも一部をメモリ１０２にロードし、プログラムを実行する。また情報処理装置１００に実行させるプログラムを、光ディスク２４、メモリ装置２５、メモリカード２７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１からの制御により、ＨＤＤ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３８】
図３は、情報処理装置の機能を示すブロック図である。情報処理装置１００には、複数のアプリケーションソフトウェアが導入されている。これらのアプリケーションソフトウェアは、例えば、異なるベンダの製品である。以下、アプリケーションソフトウェアを実行するプロセスを、アプリケーション１１１〜１１３と呼ぶ。
【００３９】
アプリケーション１１１〜１１３は、処理の実行中に所定のイベントが発生すると、メッセージを出力する。例えばエラー発生時に、そのエラー内容を示すメッセージが出力される。アプリケーション１１１〜１１３から出力されたメッセージは、各アプリケーション１１１〜１１３に対応するログ記憶部１２１〜１２３にログとして記録される。なおアプリケーション１１１〜１１３は、第１の実施の形態における出力元装置１〜３の一例である。
【００４０】
情報処理装置１００は、さらに、各アプリケーション１１１〜１１３から出力されたメッセージを管理するメッセージ管理部１３０を有する。メッセージ管理部１３０は、出力元情報記憶部１３１、単語マスタ記憶部１３２、ベンダ固有語マスタ記憶部１３３、メッセージ関連付け部１３４、メッセージ情報マスタ記憶部１３５、およびログ解析部１３６を有する。
【００４１】
出力元情報記憶部１３１は、アプリケーション１１１〜１１３それぞれのソフトウェア製品に関する情報を、出力元情報として記憶する。出力元情報は、例えばソフトウェアのマニュアルや仕様書などである。出力元情報記憶部１３１としては、例えばメモリ１０２またはＨＤＤ１０３の記憶領域の一部が使用される。
【００４２】
単語マスタ記憶部１３２は、メッセージまたはメッセージの説明文に含まれている可能性のある単語をリストアップした単語マスタを記憶する。単語マスタには、同様の意味を有する単語が、関連づけて登録される。単語マスタ記憶部１３２としては、例えばメモリ１０２またはＨＤＤ１０３の記憶領域の一部が使用される。
【００４３】
ベンダ固有語マスタ記憶部１３３は、ベンダ固有のフレーズを、ベンダ固有語としてリストアップしたベンダ固有語マスタを記憶する。ベンダ固有語マスタには、例えば、複数の単語を組み合わせることでベンダ固有の意味を持たせたフレーズが登録される。また一般的な単語であっても、出力元装置情報において特別な意味を与えられている場合、ベンダ固有語となり得る。ベンダ固有語マスタ記憶部１３３としては、例えばメモリ１０２またはＨＤＤ１０３の記憶領域の一部が使用される。
【００４４】
メッセージ関連付け部１３４は、アプリケーション１１１〜１１３のいずれかから出力される可能性のあるメッセージに関する情報（メッセージ情報）を生成する。例えばメッセージ関連付け部１３４は、各メッセージ情報に該当するメッセージのグループ分けを行う。例えばメッセージ関連付け部１３４は、メッセージの本文または説明文において、似た意味の単語やベンダ固有語を所定数以上含むメッセージ同士を同じグループに振り分ける。メッセージの属するグループに関する情報が、メッセージ情報に含められる。メッセージ関連付け部１３４は、生成したメッセージ情報をメッセージ情報マスタ記憶部１３５に格納する。
【００４５】
メッセージ情報マスタ記憶部１３５は、生成されたメッセージ情報の集合であるメッセージ情報マスタを記憶する。メッセージ情報マスタ記憶部１３５としては、例えばメモリ１０２またはＨＤＤ１０３の記憶領域の一部が使用される。
【００４６】
ログ解析部１３６は、複数のログ記憶部１２１〜１２３に格納されたメッセージを取得し、メッセージを解析してグルーピングを行う。そしてログ解析部１３６は、作業者からの指示に従って、同じグループに属するメッセージを関連づけてモニタ２１に表示させる。例えばログ解析部１３６は、作業者が指定したメッセージをモニタ２１に表示させる。またログ解析部１３６は、作業者が指定したメッセージに関連づけて、そのメッセージと同じグループに属するメッセージをモニタ２１に表示させることもできる。
【００４７】
なお、図３に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図３に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【００４８】
次にログ記憶部１２１〜１２３に記憶されるメッセージの例について説明する。
図４は、ログ記憶部内のメッセージの例を示す図である。ログ記憶部１２１には、アプリケーション１１１から出力されたメッセージが格納されている。ログ記憶部１２１内のメッセージには、レベル、時刻、メッセージ本文、番号（メッセージ識別番号）の順で情報が記載されている。レベルは、エラーの重要度を示す絵図である。図４の例では、特に重要なエラーを示すメッセージのレベルは、目立つ図柄の絵図となっている。
【００４９】
ログ記憶部１２２には、アプリケーション１１２から出力されたメッセージが格納されている。ログ記憶部１２２内のメッセージには、ラベル、レベル、時刻、番号、メッセージ本文の順で情報が記載されている。ラベルは、アプリケーション１１２の名称などの付加情報である。
【００５０】
ログ記憶部１２３には、アプリケーション１１３から出力されたメッセージが格納されている。ログ記憶部１２３内のメッセージには、時刻、番号−レベル、メッセージ本文の順で情報が記載されている。番号−レベルは、「−」の左がメッセージ識別番号であり、右がレベルである。
【００５１】
このように、異なるアプリケーションから出力されるメッセージは、データフォーマットが異なる。また、メッセージ本文で示される内容についても、同様の事象を示すエラーメッセージであっても、アプリケーションごとに表現が異なることがある。しかも、メッセージ本文は端的に記載されており、メッセージについての説明として不十分な場合が多い。そこで第２の実施の形態では、アプリケーションごとのマニュアルなどに記載されているメッセージの説明文を参考にして、メッセージのグループ化が行われる。
【００５２】
次に、出力元情報記憶部１３１、単語マスタ記憶部１３２、ベンダ固有語マスタ記憶部１３３、およびメッセージ情報マスタ記憶部１３５に格納される情報について、詳細に説明する。
【００５３】
図５は、出力元情報記憶部に記憶される情報の一例を示す図である。出力元情報記憶部１３１には、アプリケーション１１１〜１１３それぞれの出力元情報１３１ａ，１３１ｂ，１３１ｃが格納されている。出力元情報１３１ａ，１３１ｂ，１３１ｃは、例えばアプリケーション１１１〜１１３のマニュアルや仕様書などである。出力元情報１３１ａ，１３１ｂ，１３１ｃには、アプリケーション１１１〜１１３に関する各種技術情報が含まれる。例えば出力元情報１３１ａ，１３１ｂ，１３１ｃには、アプリケーション１１１〜１１３それぞれが出力する可能性のあるメッセージに関する情報（メッセージ情報）の一覧が含まれる。メッセージ情報の一覧には、例えばメッセージ情報の番号、メッセージ情報に対応するメッセージに含まれる文字列、および対応するメッセージの説明などが含まれる。メッセージの説明には、そのメッセージの意味、そのメッセージが出力される条件、そのメッセージが出力された場合の対処方法などが記されている。
【００５４】
このような出力元情報１３１ａ，１３１ｂ，１３１ｃが予め用意され、出力元情報記憶部１３１に格納される。なおアプリケーション１１１〜１１３それぞれの出力元情報１３１ａ，１３１ｂ，１３１ｃは、アプリケーション１１１〜１１３それぞれのファイルを管理するフォルダ（ディレクトリ）に格納しておくことができる。この場合、メッセージ関連付け部１３４には、アプリケーション１１１〜１１３それぞれの出力元情報１３１ａ，１３１ｂ，１３１ｃのパスとファイル名とが予め設定される。
【００５５】
メッセージ関連付け部１３４は、出力元情報記憶部１３１を参照することで、メッセージ詳細情報を取得できる。
図６は、メッセージ詳細情報の一例を示す図である。メッセージ詳細情報３１は、例えば製品ＩＤ、メッセージ番号、メッセージ本文、および説明文が含まれる。製品ＩＤは、メッセージの出力元のアプリケーションの識別子である。メッセージ番号は、該当アプリケーションから出力される可能性のあるメッセージの識別番号である。メッセージ本文は、メッセージ内に含まれる文字列である。説明文は、出力元情報に記載されている、メッセージに関して説明する文章である。
【００５６】
図７は、単語マスタの一例を示す図である。単語マスタ記憶部１３２には、単語マスタ１３２ａが格納されている。単語マスタ１３２ａには、例えば単語ＩＤに対応づけて、１以上の単語が登録されている。例えば、互いに類似語となる複数の単語が、共通の単語ＩＤに対応づけて登録されている。
【００５７】
図８は、ベンダ固有語マスタの一例を示す図である。ベンダ固有語マスタ記憶部１３３には、ベンダ固有語マスタ１３３ａが格納されている。ベンダ固有語マスタ１３３ａには、例えば、固有語ＩＤ、製品ＩＤ、固有語、および関連語の欄が設けられている。固有語ＩＤの欄には、ベンダ固有語の識別情報（固有語ＩＤ）が設定される。製品ＩＤの欄には、ベンダ固有語の抽出元である出力元情報に対応するアプリケーションの識別情報（製品ＩＤ）が設定される。固有語の欄には、抽出されたベンダ固有語が設定される。関連語の欄には、ベンダ固有語に関連する単語が設定される。ベンダ固有語に関連する単語は、たとえば出力元情報において、ベンダ固有語の定義文に含まれる単語である。
【００５８】
図９は、メッセージ情報マスタの一例を示す図である。メッセージ情報マスタ記憶部１３５には、メッセージ情報マスタ１３５ａが格納されている。メッセージ情報マスタ１３５ａには、メッセージ情報ＩＤ、製品ＩＤ、メッセージ番号、関連単語・固有語ＩＤ、およびグループ内メッセージ情報ＩＤの欄が設けられている。
【００５９】
メッセージ情報ＩＤの欄には、メッセージ情報をメッセージ管理部１３０内で識別するための識別子（メッセージ情報ＩＤ）が設定される。製品ＩＤの欄には、メッセージ情報の抽出元である出力元情報に対応するアプリケーションの製品ＩＤが設定される。メッセージ番号の欄には、メッセージ情報で示されるメッセージが出力される際に、対応するアプリケーションが付与するそのメッセージの識別番号（メッセージ番号）が設定される。
【００６０】
関連単語・固有語ＩＤの欄には、メッセージ情報ＩＤに対応するメッセージまたはそのメッセージの説明文内の単語またはベンダ固有語のうち、単語マスタ１３２ａに登録されている単語の単語ＩＤ、またはベンダ固有語マスタ１３３ａに登録されているベンダ固有語の固有語ＩＤが登録される。また関連単語・固有語ＩＤの欄には、メッセージ情報ＩＤに対応するメッセージまたはそのメッセージの説明文内のベンダ固有語に関連する単語（関連語）の単語ＩＤも登録される。
【００６１】
グループ内メッセージ情報ＩＤの欄には、対応するメッセージ情報と同じグループに属する他のメッセージ情報のメッセージ情報ＩＤが設定される。グループ内メッセージ情報ＩＤの欄に設定されている情報により、メッセージのグループが示される。すなわち、あるメッセージ情報ＩＤのグループ内メッセージ情報ＩＤとして、他のメッセージ情報ＩＤが設定されていれば、それらのメッセージ情報ＩＤに示されるメッセージが同一のグループに属する。
【００６２】
次に、単語マスタ記憶部１３２、ベンダ固有語マスタ記憶部１３３、およびメッセージ情報マスタ記憶部１３５それぞれを生成する事前処理について説明する。
図１０は、事前処理の手順の一例を示すフローチャートである。
【００６３】
［ステップＳ１０１］メッセージ関連付け部１３４は、出力元情報記憶部１３１から、出力元情報１３１ａ，１３１ｂ，１３１ｃを読み込む。
［ステップＳ１０２］メッセージ関連付け部１３４は、単語マスタ１３２ａを作成する。メッセージ関連付け部１３４は、作成した単語マスタ１３２ａを、単語マスタ記憶部１３２に格納する。単語マスタ作成処理の詳細は、後述する（図１１参照）。
【００６４】
［ステップＳ１０３］メッセージ関連付け部１３４は、ベンダ固有語マスタ１３３ａを作成する。メッセージ関連付け部１３４は、作成したベンダ固有語マスタ１３３ａを、ベンダ固有語マスタ記憶部１３３に格納する。ベンダ固有語マスタ作成処理の詳細は後述する（図１２参照）。
【００６５】
［ステップＳ１０４］メッセージ関連付け部１３４は、メッセージ情報マスタを作成する。メッセージ関連付け部１３４は、作成したメッセージ情報マスタ１３５ａを、メッセージ情報マスタ記憶部１３５に格納する。メッセージ情報マスタ作成処理の詳細は後述する（図１５参照）。
【００６６】
次に、単語マスタ作成処理の手順について詳細に説明する。
図１１は、単語マスタ作成処理の手順の一例を示すフローチャートである。
［ステップＳ１１１］メッセージ関連付け部１３４は、出力元情報１３１ａ，１３１ｂ，１３１ｃ内のメッセージ情報のうち、未処理のメッセージ情報を取得する。例えばメッセージ関連付け部１３４は、出力元情報１３１ａ，１３１ｂ，１３１ｃを解析し、メッセージ情報一覧を判別する。そしてメッセージ関連付け部１３４は、出力元情報１３１ａ，１３１ｂ，１３１ｃのメッセージ情報一覧から、メッセージ情報を１つずつ取得する。
【００６７】
［ステップＳ１１２］メッセージ関連付け部１３４は、取得したメッセージ情報に対応するメッセージまたはそのメッセージの説明文から単語を抽出する。例えばメッセージ関連付け部１３４は、メッセージ情報に対応するメッセージに含まれる文字列（メッセージ本文）、およびそのメッセージの説明文に対して形態素解析を行い、単語を抽出する。
【００６８】
［ステップＳ１１３］メッセージ関連付け部１３４は、抽出した単語が、単語マスタ記憶部１３２内の単語マスタ１３２ａに存在するか否かを判断する。単語が単語マスタ１３２ａに存在しなければ、処理がステップＳ１１４に進められる。抽出した単語が単語マスタ１３２ａに存在すれば、処理がステップＳ１１２に進められ、別の単語が抽出される。
【００６９】
［ステップＳ１１４］メッセージ関連付け部１３４は、抽出した単語が単語マスタ１３２ａに存在しない場合、その単語の類似語を取得する。単語の類似語は、例えばネットワーク経由で公開されている類語辞書などから取得できる。また情報処理装置１００のＨＤＤ１０３内に類語辞書を格納しておき、ＨＤＤ１０３内の類語辞書を用いて類似語を取得することもできる。このとき類語辞書として、複数の単語の関係を参照して、類似語の範囲を変更することができる。例えば一般的な類語辞書では、「破棄」の類似語として「消失」はない。しかし「メッセージの破棄」と「メッセージの消失」とでは、似た意味となる。そこでメッセージ関連付け部１３４は、例えば「破棄」が「メッセージ」という単語に続く場合には、「破棄」は「消失」の類似語であると判断する。
【００７０】
［ステップＳ１１５］メッセージ関連付け部１３４は、取得した単語の類似語が単語マスタ１３２ａに存在するか否かを判断する。類似語が単語マスタ１３２ａに存在する場合、処理がステップＳ１１６に進められる。類似語が単語マスタ１３２ａに存在しない場合、処理がステップＳ１１７に進められる。
【００７１】
［ステップＳ１１６］メッセージ関連付け部１３４は、類似語が単語マスタ１３２ａに存在する場合、抽出した単語を、類似語と同じ単語ＩＤに対応づけて、単語マスタ１３２ａに登録する。その後、処理がステップＳ１１８に進められる。
【００７２】
［ステップＳ１１７］メッセージ関連付け部１３４は、類似語が単語マスタ１３２ａに存在しない場合、新規の単語ＩＤに対応づけて、抽出した単語を単語マスタ１３２ａに登録する。
【００７３】
［ステップＳ１１８］メッセージ関連付け部１３４は、取得したメッセージ情報に未処理の単語があるか否かを判断する。未処理の単語があれば、処理がステップＳ１１２に進められ、別の単語の抽出が行われる。取得したメッセージ情報内のすべての単語について処理が終了した場合、処理がステップＳ１１９に進められる。
【００７４】
［ステップＳ１１９］メッセージ関連付け部１３４は、未処理のメッセージ情報があるか否かを判断する。未処理のメッセージ情報があれば、処理がステップＳ１１１に進められ、別のメッセージ情報が取得される。すべてのメッセージ情報について処理が終了した場合、単語マスタ作成処理が終了する。
【００７５】
このようにして単語マスタ１３２ａが作成される。作成された単語マスタ１３２ａを利用して、ベンダ固有語マスタ１３３ａが作成される。
図１２は、ベンダ固有語マスタ作成処理の手順の一例を示す図である。
【００７６】
［ステップＳ１２１］メッセージ関連付け部１３４は、出力元情報記憶部１３１から、未処理の出力元情報を１つ取得する。
［ステップＳ１２２］メッセージ関連付け部１３４は、各出力元情報からベンダ固有語を検出する、ベンダ固有語判定処理を行う。ベンダ固有語判定処理の詳細は後述する（図１３参照）。
【００７７】
［ステップＳ１２３］メッセージ関連付け部１３４は、新たなベンダ固有語が検出されたか否かを判断する。新たなベンダ固有語が抽出された場合、処理がステップＳ１２４に進められる。新たなベンダ固有語が抽出されていなければ、処理がステップＳ１２７に進められる。
【００７８】
［ステップＳ１２４］メッセージ関連付け部１３４は、新規の固有語ＩＤに対応づけて、抽出したベンダ固有語をベンダ固有語マスタ１３３ａに登録する。
［ステップＳ１２５］メッセージ関連付け部１３４は、抽出したベンダ固有語に関連する単語（関連語）が単語マスタ１３２ａに登録されているか否かを判断する。例えばメッセージ関連付け部１３４は、ベンダ固有語を説明する文内のそのベンダ固有語以外の単語を、関連語とする。「〜とは」という始まりの文があれば、「とは」以降の説明内容に含まれる単語が、関連語となる。関連語がある場合、処理がステップＳ１２６に進められる。関連語がない場合、処理がステップＳ１２７に進められる。
【００７９】
［ステップＳ１２６］メッセージ関連付け部１３４は、関連語を、抽出したベンダ固有語の関連語として、ベンダ固有語マスタ１３３ａに登録する。
［ステップＳ１２７］メッセージ関連付け部１３４は、未処理の出力元情報があるか否かを判断する。未処理の出力元情報があれば処理がステップＳ１２１に進められ、別の出力元情報が取得される。すべての出力元情報に対する処理が完了した場合、ベンダ固有語マスタ作成処理が終了する。
【００８０】
次にベンダ固有語判定処理について詳細に説明する。
図１３は、ベンダ固有語判定処理の手順の一例を示すフローチャートである。
［ステップＳ１３１］メッセージ関連付け部１３４は、ステップＳ１２１で取得した出力元情報から特定の係り受け表現の文字列を抽出する。例えばメッセージ関連付け部１３４は、「〜とは」や「〜とする」といった係り受け表現となっている表現パターンを検出する。そしてメッセージ関連付け部１３４は、「とは」や「とする」の直前のフレーズを抽出する。例えば「ＡＡとは」という表現の「ＡＡ」の文字列が抽出される。
【００８１】
［ステップＳ１３２］メッセージ関連付け部１３４は、ステップＳ１３１で抽出した文字列が、ベンダ固有語マスタ１３３ａに存在するか否かを判断する。ベンダ固有語マスタ１３３ａに存在する場合、処理がステップＳ１３５に進められる。ベンダ固有語マスタ１３３ａに存在しなければ、処理がステップＳ１３３に進められる。
【００８２】
［ステップＳ１３３］メッセージ関連付け部１３４は、ステップＳ１３１で抽出した文字列が、他の出力元情報で使用されているか否かを判断する。例えばメッセージ関連付け部１３４は、抽出した文字列の抽出元の出力元情報以外のすべての出力元情報から、抽出した文字列を検索する。メッセージ関連付け部１３４は、該当する文字列が少なくとも１件ヒットした場合、他の出力元情報で使用されていると判断し、処理をステップＳ１３５に進める。またメッセージ関連付け部１３４は、該当する文字列がヒットしなかった場合、他の出力元情報で使用されていないと判断し、処理をステップＳ１３４に進める。
【００８３】
［ステップＳ１３４］メッセージ関連付け部１３４は、ステップＳ１３１で抽出した文字列が、ベンダ固有語マスタ１３３ａに登録されておらず、他の出力元情報で使用されていない文字列であれば、その文字列を新たなベンダ固有語と判定する。
【００８４】
［ステップＳ１３５］メッセージ関連付け部１３４は、ステップＳ１２１で取得した出力元情報内の特定の係り受け表現の文字列のうち、未抽出の係り受け表現があるか否かを判断する。未抽出の係り受け表現があれば、処理がステップＳ１３１に進められる。未抽出の係り受け表現がなければ、係り受けによるベンダ固有語の抽出が終了し、処理がステップＳ１３６に進められる。
【００８５】
［ステップＳ１３６］メッセージ関連付け部１３４は、出力元情報から特定の区切り文字に囲まれた文字列を抽出する。例えばメッセージ関連付け部１３４は、かっこ（「」、［］など）、ダブルクォーテーション（“”）、スペース、タブなどの区切り文字で囲まれた文字列を抽出する。
【００８６】
［ステップＳ１３７］メッセージ関連付け部１３４は、ステップＳ１３６で抽出した文字列が、ベンダ固有語マスタ１３３ａに存在するか否かを判断する。ベンダ固有語マスタ１３３ａに存在する場合、処理がステップＳ１４０に進められる。ベンダ固有語マスタ１３３ａに存在しなければ、処理がステップＳ１３８に進められる。
【００８７】
［ステップＳ１３８］メッセージ関連付け部１３４は、ステップＳ１３６で抽出した文字列が、他の出力元情報で使用されているか否かを判断する。例えばメッセージ関連付け部１３４は、抽出した文字列の抽出元の出力元情報以外のすべての出力元情報から、抽出した文字列を検索する。メッセージ関連付け部１３４は、該当する文字列が少なくとも１件ヒットした場合、他の出力元情報で使用されていると判断し、処理をステップＳ１４０に進める。またメッセージ関連付け部１３４は、該当する文字列がヒットしなかった場合、他の出力元情報で使用されていないと判断し、処理をステップＳ１３９に進める。
【００８８】
［ステップＳ１３９］メッセージ関連付け部１３４は、ステップＳ１３６で抽出した抽出した文字列が、ベンダ固有語マスタ１３３ａに登録されておらず、他の出力元情報で使用されていない文字列であれば、その文字列を新たなベンダ固有語と判定する。
【００８９】
［ステップＳ１４０］メッセージ関連付け部１３４は、ステップＳ１３６で取得した出力元情報内の特定の区切り文字に囲まれた文字列のうち、未抽出の該当文字列があるか否かを判断する。未抽出の該当文字列があれば、処理がステップＳ１３６に進められる。特定の区切り文字に囲まれた未抽出の文字列がなければ、ベンダ固有語判定処理が終了する。
【００９０】
図１２、図１３に示した処理により、ベンダ固有語マスタ１３３ａが作成される。
図１４は、ベンダ固有語マスタに登録するベンダ固有語の抽出例を示す図である。例えば出力元情報１３１ｄには、「リソース定義とは、データベースに関する以下の設定内容を記載します。」という文が含まれている。このうちの「リソース定義とは」という表現が、特定の係り受け表現として判定され、そのうちの「リソース定義」がベンダ固有語として抽出されている。
【００９１】
また出力元情報１３１ｅには、「“アプリ実行待ち時間”には、タイムアウトするまでの、アプリケーションの処理実行時間を秒単位で設定します。」という文が含まれている。このうち、特定の区切り文字であるダブルクォーテーションで囲まれた「アプリ実行待ち時間」の文字列が、ベンダ固有語として抽出されている。またこの文内の「タイムアウト」は、「アプリ実行待ち時間」に対する関連語とされている。
【００９２】
単語マスタ１３２ａとベンダ固有語マスタ１３３ａとが生成されると、単語マスタ１３２ａとベンダ固有語マスタ１３３ａとに基づいて、メッセージ情報マスタ１３５ａが作成される。
【００９３】
図１５は、メッセージ情報マスタ作成処理の手順の一例を示すフローチャートである。
［ステップＳ１５１］メッセージ関連付け部１３４は、メッセージからの単語・ベンダ固有語抽出処理を行う。この処理の詳細は後述する（図１６参照）。
【００９４】
［ステップＳ１５２］メッセージ関連付け部１３４は、メッセージグループ化処理を行う。この処理の詳細は後述する（図１７参照）。
次に単語・ベンダ固有語抽出処理の手順について詳細に説明する。
【００９５】
図１６は、単語・ベンダ固有語抽出処理の手順の一例を示すフローチャートである。
［ステップＳ１６１］メッセージ関連付け部１３４は、出力元情報１３１ａ，１３１ｂ，１３１ｃから、未処理のメッセージ情報を１つ取得する。
【００９６】
［ステップＳ１６２］メッセージ関連付け部１３４は、取得したメッセージ情報をメッセージ情報マスタ１３５ａに登録する。例えばメッセージ関連付け部１３４は、新規のメッセージ情報ＩＤに対応づけて、そのメッセージ情報の取得元の出力元情報に対応する製品の製品ＩＤと、そのメッセージ情報のメッセージ番号とを、メッセージ情報マスタ１３５ａに登録する。
【００９７】
［ステップＳ１６３］メッセージ関連付け部１３４は、取得したメッセージ情報のメッセージ本文またはメッセージの説明文から、単語またはフレーズを抽出する。
［ステップＳ１６４］メッセージ関連付け部１３４は、抽出した単語またはフレーズがベンダ固有語マスタ１３３ａに存在するか否かを判断する。抽出した単語またはフレーズがベンダ固有語マスタ１３３ａに存在する場合、処理がステップＳ１６６に進められる。抽出した単語またはフレーズがベンダ固有語マスタ１３３ａに存在しない場合、処理がステップＳ１６５に進められる。
【００９８】
［ステップＳ１６５］メッセージ関連付け部１３４は、抽出した単語またはフレーズがベンダ固有語マスタ１３３ａに存在しない場合、単語マスタ１３２ａから抽出した単語またはフレーズの単語ＩＤを取得する。その後、処理がステップＳ１６９に進められる。
【００９９】
［ステップＳ１６６］メッセージ関連付け部１３４は、抽出した単語またはフレーズがベンダ固有語マスタ１３３ａに存在する場合、ベンダ固有語マスタ１３３ａから、抽出した単語またはフレーズの固有語ＩＤを取得する。
【０１００】
［ステップＳ１６７］メッセージ関連付け部１３４は、抽出した単語またはフレーズに対応づけて、ベンダ固有語マスタ１３３ａ内に関連語があるか否かを判断する。関連語がある場合、処理がステップＳ１６８に進められる。関連語がない場合、処理がステップＳ１６９に進められる。
【０１０１】
［ステップＳ１６８］メッセージ関連付け部１３４は、抽出した単語またはフレーズに対応づけてベンダ固有語マスタ１３３ａ内に登録されている関連語の単語ＩＤを取得する。
【０１０２】
［ステップＳ１６９］メッセージ関連付け部１３４は、メッセージ情報マスタ１３５ａにおける、ステップＳ１６１で取得したメッセージ情報に関する関連単語・固有語ＩＤを更新する。例えばメッセージ関連付け部１３４は、ステップＳ１６５で取得した単語ＩＤ、またはステップＳ１６８で取得した関連語の単語ＩＤを、ステップＳ１６１で取得したメッセージ情報のメッセージ情報ＩＤに関連づけて、関連単語・固有語ＩＤの欄に登録する。
【０１０３】
［ステップＳ１７０］メッセージ関連付け部１３４は、取得したメッセージ情報に対応するメッセージのメッセージ本文または説明文内に、未処理の単語またはフレーズがあるか否かを判断する。未処理の単語またはフレーズがある場合、処理がステップＳ１６３に進められる。未処理の単語またはフレーズがなければ、処理がステップＳ１７１に進められる。
【０１０４】
［ステップＳ１７１］メッセージ関連付け部１３４は、未処理のメッセージ情報があるか否かを判断する。未処理のメッセージ情報があれば、処理がステップＳ１６１に進められる。未処理のメッセージ情報がなければ、単語・ベンダ固有語抽出処理が終了する。
【０１０５】
次にメッセージグループ化処理について説明する。
図１７は、メッセージグループ化処理の手順の一例を示す図である。
［ステップＳ１８１］メッセージ関連付け部１３４は、メッセージ情報マスタ１３５ａから、未処理のメッセージ情報ＩＤを取得する。メッセージ関連付け部１３４は、取得したメッセージ情報ＩＤを「比較対象＃１」とする。
【０１０６】
［ステップＳ１８２］メッセージ関連付け部１３４は、メッセージ情報マスタ１３５ａから、「比較対象＃１」以外のメッセージ情報ＩＤを取得する。メッセージ関連付け部１３４は、取得したメッセージ情報ＩＤを「比較対象＃２」とする。
【０１０７】
［ステップＳ１８３］メッセージ関連付け部１３４は、「比較対象＃１」と「比較対象＃２」とが同一のグループに属するか否かを判断する。例えばメッセージ関連付け部１３４は、「比較対象＃１」の変換メッセージの欄に登録されている単語ＩＤまたは固有語ＩＤと、「比較対象＃２」の変換メッセージの欄に登録されている単語ＩＤまたは固有語ＩＤとを比較する。メッセージ関連付け部１３４は、共通の単語ＩＤまたは固有語ＩＤが所定数以上あれば、同一のグループに属すると判断する。
【０１０８】
「比較対象＃１」と「比較対象＃２」とが同一のグループに属する場合、処理がステップＳ１８４に進められる。「比較対象＃１」と「比較対象＃２」とが同一のグループに属さない場合、処理がステップＳ１８５に進められる。
【０１０９】
［ステップＳ１８４］メッセージ関連付け部１３４は、メッセージ情報マスタ１３５ａ内の、比較対象となった「比較対象＃１」と「比較対象＃２」とのそれぞれのグループ内メッセージ情報ＩＤの欄に、比較相手のメッセージ情報ＩＤを追加する。
【０１１０】
［ステップＳ１８５］メッセージ関連付け部１３４は、「比較対象＃１」以外のメッセージ情報ＩＤのうち、ステップＳ１８２〜Ｓ１８４の処理が未処理のメッセージ情報ＩＤがある否かを判断する。未処理のメッセージ情報ＩＤがあれば、処理がステップＳ１８２に進められる。未処理のメッセージ情報ＩＤがなければ、処理がステップＳ１８６に進められる。
【０１１１】
［ステップＳ１８６］メッセージ関連付け部１３４は、ステップＳ１８１〜Ｓ１８５の処理が未処理のメッセージ情報ＩＤ（まだ「比較対象＃１」とされていないメッセージ情報ＩＤ）があるか否かを判断する。未処理のメッセージ情報ＩＤがあれば、処理がステップＳ１８１に進められる。未処理のメッセージ情報ＩＤがなければ、メッセージグループ化処理が終了する。
【０１１２】
このようなグループ化により、メッセージ本文の単語またはベンダ固有語の類似関係だけでなく、メッセージの説明文のフレーズの類似関係を用いてグルーピングが行われる。グルーピングの結果がメッセージ情報マスタ１３５ａに設定されることで、メッセージ情報マスタ１３５ａが完成する。
【０１１３】
図１８は、メッセージ情報マスタの作成例を示す図である。例えば製品ＩＤ「p-0001」のアプリケーションから出力されるメッセージ番号「10300」のメッセージに対応する、メッセージ情報ＩＤ「m-0003」のメッセージ情報が、メッセージ情報マスタ１３５ａに登録されている。該当メッセージのメッセージ詳細情報３１に、「［発生原因］データベースへの接続処理  ［対処］リソース定義に誤りがあります。」という説明文が含まれている。この説明文内の「データベース」という単語は、単語マスタ１３２ａに登録されている。そのため、その単語の単語ＩＤが、関連単語・固有語ＩＤの欄に設定されている。また説明文内の「リソース定義」という文字列は、ベンダ固有語マスタ１３３ａに登録されている。そのため、そのベンダ固有語の固有語ＩＤが、関連単語・固有語ＩＤの欄に設定されている。
【０１１４】
図１８の例では、含有する単語またはベンダ固有語が２以上共通のメッセージ同士をグループ化するものとする。例えばメッセージ情報ＩＤ「m-0003」のメッセージ情報の関連単語・固有語ＩＤの欄に、「k-0001,k-0005,b-0001」と設定されており、メッセージ情報ＩＤ「m-0005」のメッセージ情報の関連単語・固有語ＩＤの欄に、「k-0001,k-0005,k-0004」と設定されている。これらの２つのメッセージ情報は、２つの単語またはベンダ固有語「k-0001,k-0005」を共通に有している。そのため、メッセージ情報ＩＤ「m-0003」のメッセージ情報のグループ内メッセージ情報ＩＤとして、メッセージ情報ＩＤ「m-0005」が設定されている。同様に、メッセージ情報ＩＤ「m-0005」のメッセージ情報のグループ内メッセージ情報ＩＤとして、メッセージ情報ＩＤ「m-0003」が設定されている。
【０１１５】
このようにして、メッセージ情報マスタ１３５ａにおいて、同じグループに属するメッセージが互いに関連づけられる。
以上が事前処理である。事前処理後、例えばシステムに障害が発生し、障害の原因を解析する際に、作業者の指示に応じて、メッセージのログ解析処理が行われる。
【０１１６】
図１９は、ログ解析処理の手順の一例を示すフローチャートである。
［ステップＳ２０１］ログ解析部１３６は、ログ内メッセージグループ化処理を行う。例えばログ解析部１３６は、複数のログ記憶部１２１〜１２３からメッセージを収集し、作業者が指定したメッセージと同じグループに属する他のメッセージを抽出する。ログ内メッセージグループ化処理の詳細は後述する（図２０参照）。
【０１１７】
［ステップＳ２０２］ログ解析部１３６は、作業者が指定したメッセージ、およびそのメッセージと同じグループに属する他のメッセージをモニタ２１に表示する。この処理の詳細は後述する（図２１参照）。
【０１１８】
次にログ内メッセージグループ化処理について詳細に説明する。
図２０は、ログ内メッセージグループ化処理の手順の一例を示すフローチャートである。
【０１１９】
［ステップＳ２１１］ログ解析部１３６は、ログ記憶部１２１〜１２３からメッセージを収集する。この際、ログ解析部１３６は、所定の期間内に出力されたメッセージに限定して収集することができる。例えばログ解析部１３６は、障害が発生した時刻が分かる場合、その時刻の前後の所定期間内の時刻がタイムスタンプとして付与されているメッセージのみの収集が可能である。ログ解析部１３６は、収集したメッセージに対して、そのメッセージを出力したアプリケーションの製品ＩＤを付与して、メモリに格納する。
【０１２０】
［ステップＳ２１２］ログ解析部１３６は、メッセージ情報マスタ１３５ａから、起点メッセージのグループ内メッセージ情報ＩＤを取得する。例えばログ解析部１３６は、収集したメッセージの中から起点メッセージを指定する操作入力を、作業者から受け付ける。次にログ解析部１３６は、指定された起点メッセージのメッセージ番号、およびその起点メッセージの出力元のアプリケーションの製品ＩＤをキーとして、メッセージ情報マスタ１３５ａからメッセージ情報ＩＤを検索する。そしてログ解析部１３６は、検索でヒットしたメッセージ情報ＩＤに対応するグループ内メッセージ情報ＩＤの欄に登録されているメッセージ情報ＩＤ（グループ内メッセージ情報ＩＤ）をすべて取得する。
【０１２１】
［ステップＳ２１３］ログ解析部１３６は、ステップＳ２１２で取得したグループ内メッセージ情報ＩＤのうち、未処理のグループ内メッセージ情報ＩＤを１つ選択する。
［ステップＳ２１４］ログ解析部１３６は、取得したグループ内メッセージ情報ＩＤに対応するメッセージ情報の製品ＩＤとメッセージ番号とを取得する。例えば、ログ解析部１３６は、取得したグループ内メッセージ情報ＩＤをキーとして、メッセージ情報マスタ１３５ａのメッセージ情報ＩＤの欄を検索する。そしてログ解析部１３６は、検索でヒットしたメッセージ情報ＩＤに対応する製品ＩＤおよびメッセージ番号を、メッセージ情報マスタ１３５ａから取得する。
【０１２２】
［ステップＳ２１５］ログ解析部１３６は、ステップＳ２１１で収集したメッセージの中から、ステップＳ２１４で取得した製品ＩＤおよびメッセージ番号の組を有するメッセージを検索する。そしてログ解析部１３６は、検索でヒットしたメッセージを抽出する。
【０１２３】
［ステップＳ２１６］ログ解析部１３６は、ステップＳ２１２で取得したグループ内メッセージ情報ＩＤの中に、未処理のグループ内メッセージ情報ＩＤがあるか否かを判断する。未処理のグループ内メッセージ情報ＩＤがある場合、処理がステップＳ２１３に進められる。すべてのグループ内メッセージ情報ＩＤについて処理が完了していれば、ログ内メッセージグループ化処理が終了する。
【０１２４】
次にメッセージ表示処理について詳細に説明する。
図２１は、メッセージ表示処理の手順の一例を示すフローチャートである。
［ステップＳ２２１］ログ解析部１３６は、メッセージ抽出処理で抽出されたメッセージのうち、未表示のメッセージを選択する。
【０１２５】
［ステップＳ２２２］ログ解析部１３６は、起点メッセージに関連づけて、選択したメッセージをモニタ２１に表示する。
［ステップＳ２２３］ログ解析部１３６は、メッセージ抽出処理で抽出されたメッセージの中に未選択のメッセージがあるか否かを判断する。未選択のメッセージがあれば、処理がステップＳ２２１に進められる。未選択のメッセージがなければ、メッセージ表示処理が終了する。
【０１２６】
このようにして、互いに関連するメッセージを纏めて表示させることができる。
以上のように、第２の実施の形態によれば、メッセージの説明文を利用してメッセージをグループ化することができ、グループ化の精度を高めることができる。すなわちメッセージ本文には、簡略化した内容しか含まれていないことが多く、メッセージ本文だけを比較したのでは、メッセージ間の関連性の判断を誤る可能性が高い。他方、説明文には、メッセージの内容が詳細に記載されているため、説明文を用いてメッセージ間の関連性を判断すれば、関連性の判断の正確性が向上する。
【０１２７】
図２２は、メッセージ本文を用いたグループ化と説明文を用いたグループ化との違いを示す図である。図２２の例では、メッセージ詳細情報３１に示されている上の２つのメッセージは、データベースへの接続処理に異常が検知された場合に出力されるメッセージである。上から３つ目のメッセージは、データベースへの接続を行うサービスの異常が検知された場合に出力されるメッセージである。
【０１２８】
この例の場合、上の２つのメッセージは、メッセージの発生原因が共通であり、関連性がある。すなわち、同じグループにグループ化するのが適切である。他方、上から３つ目のメッセージは、メッセージの発生原因が他の２つと異なるため、他の２つとの関連性は低く、同じグループにグループ化するのは適切ではない。
【０１２９】
ここで、例えば「接続処理」と「接続」とが類似語（単語ＩＤ「k-0005」）であり、「パニック」、「エラー」、「ダウン」が類似語（単語ＩＤ「k-0002」）であるものとする。またデータベース（単語ＩＤ「k-0001」）とデータベースサーバとは、類似語ではないものとする。また、２つ以上の単語またはベンダ固有語が共通のメッセージを同じグループにグループ化するものとする。
【０１３０】
このとき、メッセージ本文だけでグループ化すると、３つのメッセージのメッセージ本文には、単語ＩＤ「k-0002」の単語と単語ＩＤ「k-0005」の単語とが共に含まれている。すると、３つのメッセージが１つのグループにグループ化されてしまい、不適切な結果となる。
【０１３１】
説明文だけでグループ化すると、上の２つのメッセージの説明文には、単語ＩＤ「k-0001」の単語と単語ＩＤ「k-0005」の単語とが共に含まれている。他方、上から３つ目のメッセージの説明文には、単語ＩＤ「k-0005」の単語は含まれているが、単語ＩＤ「k-0001」の単語は含まれていない。すると、上の２つのメッセージが同じグループにグループ化され、上から３つ目のメッセージはそのグループには含まれず、適切な結果が得られる。
【０１３２】
このように、説明文を用いることで適切なグルーピングを行うことができる。なおメッセージ本文と説明文との両方を用いても、適切なグルーピングを行うことができる。図２２の例であれば、メッセージ本文と説明文との両方を用いる場合、３つ以上の単語またはベンダ固有語が共通のメッセージを同じグループにグループ化するようにすれば、適切なグルーピング結果を得ることができる。
【０１３３】
さらに第２の実施の形態では、ベンダ固有語を抽出し、ベンダ固有語を利用してグルーピングを行うため、関連性の判断の正確性がさらに向上している。すなわちベンダ固有語を用いることで、関連していないメッセージ間の誤った関連付けを抑止できると共に、関連するメッセージ間の関連付け漏れを抑止することもできる。
【０１３４】
図２３は、ベンダ固有語を用いた関連性判断精度向上例を示す図である。一般的には類似語と判断されてしまうが、ベンダ固有語を用いることで類似語とは判断されなくなり、その結果正しい関連付けとなる場合について説明する。例えば説明文内に「リソース定義に設定した値に誤りがあります。」という文を含むメッセージ４１と、説明文内に「資源の設定情報に誤りがあります。」という文を含むメッセージ４２とがある場合を考える。なお、「リソース定義」は、ベンダ固有語である。このときベンダ固有語「リソース定義」に含まれる「リソース」と「資源」は、一般的に類似語と判断される。しかし図２３の例では「リソース定義」がベンダ固有語であることから、「リソース定義」全体でベンダ固有の意味を有していると認識され、「リソース」のみでの類似関係は判断されない。そのため、これらの２つのメッセージ４１，４２は関連性がないと判定される。このようにベンダ固有語を用いることで、アプリケーションのベンダで固有に意味を定義したフレーズについては、一般的な意味での関連付けを行わないようにすることで、関連していないメッセージ間の誤った関連付けを抑止できる。
【０１３５】
次に、一般的には類似語と判断されないが、ベンダ固有語を用いることで類似語と判断されるようになり、その結果正しい関連付けとなる場合について説明する。例えば、以下のようなメッセージ本文と説明文とを有する２つのメッセージ４３，４４があるものとする。
【０１３６】
メッセージ４３のメッセージ本文と説明文とには、
「本文：アプリ実行待ち時間に設定された時間に到達しました 。
説明文：アプリケーションの実行時間がアプリ実行待ち時間を超過しました。
アプリ実行待ち時間に設定した内容と、サービスでの処理実行時間を確認してください。」
と記載されている。
【０１３７】
メッセージ４４のメッセージ本文と説明文とには、
「本文：ABサービスでタイムアウトが発生しました。
説明文：ABサービスでタイムアウトが発生しました。ABサービスで実行しているアプリケーションを確認してください。」
と記載されている。
【０１３８】
ここで「アプリ実行待ち時間」と「タイムアウト」は、一般的には類似語とは判断されない。そのためベンダ固有語を利用しない場合、第１・第２のメッセージは、同じグループには分類されない。しかし図２３に示すように「アプリ実行待ち時間」がベンダ固有語であり、その関連語として「タイムアウト」が登録されている場合、「アプリ実行待ち時間」と「タイムアウト」とは類似すると判断できる。その結果、２つのメッセージ４３，４４の指す内容は類似すると判断でき、これらのメッセージ４３，４４は関連性があるものとして、同じグループに分類される。このようにベンダ固有語を用いることで、アプリケーションのベンダ固有のフレーズを有するメッセージを、そのフレーズと類似する意味の一般的な単語を有するメッセージと関連付けることができる。その結果、関連するメッセージ間の関連付けの漏れを抑止することができる。
【符号の説明】
【０１３９】
１〜３  出力元装置
１ａ，２ａ，３ａ  メッセージ
１ｂ，２ｂ，３ｂ  説明文
１０  グループ化装置
１１  記憶部
１１ａ，１１ｂ，１１ｃ  文書
１２  演算部
１３  表示部
【図１】
0006432266.tif 000002
【図２】
0006432266.tif 000003
【図３】
0006432266.tif 000004
【図４】
0006432266.tif 000005
【図５】
0006432266.tif 000006
【図６】
0006432266.tif 000007
【図７】
0006432266.tif 000008
【図８】
0006432266.tif 000009
【図９】
0006432266.tif 000010
【図１０】
0006432266.tif 000011
【図１１】
0006432266.tif 000012
【図１２】
0006432266.tif 000013
【図１３】
0006432266.tif 000014
【図１４】
0006432266.tif 000015
【図１５】
0006432266.tif 000016
【図１６】
0006432266.tif 000017
【図１７】
0006432266.tif 000018
【図１８】
0006432266.tif 000019
【図１９】
0006432266.tif 000020
【図２０】
0006432266.tif 000021
【図２１】
0006432266.tif 000022
【図２２】
0006432266.tif 000023
【図２３】
0006432266.tif 000024