以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るメッセージ表示装置の機能構成例を示す図である。メッセージ表示装置10は、記憶部11、演算部12、および表示部13を有する。メッセージ表示装置10は、例えばコンピュータである。記憶部11は、例えばメモリである。演算部12は、例えばプロセッサである。表示部13は、例えばモニタである。
記憶部11には、複数の出力元装置1〜3それぞれに関連する文書11a,11b,11cが格納されている。文書11a,11b,11cは、例えば出力元装置1〜3のマニュアルである。なお出力元装置1〜3は、例えばメッセージ表示装置10にネットワーク経由で接続された通信機器、コンピュータなどである。またメッセージ表示装置10または他のコンピュータで動作する仮想マシンを出力元装置1〜3とすることもできる。さらに、メッセージ表示装置10または他のコンピュータで動作するアプリケーションソフトウェアの実行単位(プロセス、タスクなど)を、出力元装置1〜3とすることもできる。
演算部12は、複数の出力元装置1〜3から出力された複数のメッセージ1a,2a,3aを取得する。次に演算部12は、複数のメッセージ1a,2a,3aそれぞれについて、メッセージを出力した出力元装置1〜3に関連する文書11a,11b,11cの内容に基づいて、そのメッセージ内のフレーズを判別する。フレーズは、1以上の単語が連続して一つのまとまった意味を表すものである。例えば演算部12は、複数のメッセージ1a,2a,3aそれぞれに含まれる各単語をフレーズとする。また演算部12は、複数のメッセージ1a,2a,3aそれぞれ内の1以上の単語を含む文字列が、そのメッセージを出力した出力元装置に関連する文書においてその文書固有の意味で使用されている固有語の場合、その文字列全体で1つのフレーズと判別する。例えば演算部12は、「電文がロスト」という文字列が、文書11b内でのみ使用され、他の文書11a,11cで使用されていないのであれば、「電文がロスト」という文字列を、文書11bに対応する出力元装置2の固有語と判別する。この場合、「電文がロスト」が1つのフレーズとなる。同様に、演算部12は、「キュー消失監視」という文字列が、文書11c内でのみ使用され、他の文書11a,11bで使用されていないのであれば、「キュー消失監視」という文字列を、文書11cに対応する出力元装置3の固有語と判別する。この場合、「キュー消失監視」が1つのフレーズとなる。
次に演算部12は、メッセージ1a,2a,3a内のフレーズを、そのフレーズと意味が類似する他のフレーズと共通のグループ化単位フレーズに変換した変換後メッセージ1b,2b,3bを取得する。グループ化単位フレーズは、変換後メッセージ1b,2b,3bをグループ化する際に、関連性の判断の基準となる情報である。グループ化単位フレーズとしては、例えば意味が類似するフレーズ群のうちの1つのフレーズを用いることができる。なお演算部12は、複数の単語が助詞でつなげられたフレーズ(例えば「電文がロスト」)がある場合、そのフレーズ内の各単語を、その単語に意味が類似する他の単語に変換することで、フレーズをグループ化単位フレーズに変換する。例えばフレーズ「電文がロスト」内の「電文」は「メッセージ」に変換され、「ロスト」は「消失」に変換される。
さらに演算部12は、複数のメッセージ1a,2a,3aそれぞれに対応する複数の変換後メッセージ1b,2b,3bそれぞれに含まれるグループ化単位フレーズに基づいて、互いに関連する変換後メッセージ1b,2bを検出する。そして演算部12は、関連する変換後メッセージ1b,2b同士を同一のグループにグループ化する。例えば演算部12は、変換後メッセージ1b,2b,3bのうち、所定数の同じグループ化単位フレーズを含む変換後メッセージ同士を、関連性があるものと判断し、同一のグループにグループ化する。このとき演算部12は、フレーズ内の複数の単語の少なくとも一部を類似する単語に変換したグループ化単位フレーズが一方の変換後メッセージに含まれる場合、それらのグループ化単位フレーズ内のすべての単語が他方の変換後メッセージに含まれている場合に、それらの変換後メッセージを同一のグループにグループ化する。例えば、変換後メッセージ1b「要求に対して、メッセージが消失しました。」と変換後メッセージ2b「受信時にメッセージが消失しました。」とでは、「メッセージが消失」という共通のグループ化単位フレーズが含まれる。そのため変換後メッセージ1bと変換後メッセージ2bとが、同一のグループにグループ化される。
他方、変換後メッセージ3b「キュー消失監視の設定が不当です。」の「キュー消失監視」は、これ全体で1つのグループ化単位フレーズであるため、「消失」のみが重複する他の変換後メッセージ1b,2bとは関連性がなく、グループ化されない。
そして演算部12は、同じグループにグループ化された変換後メッセージ1b,2bそれぞれに対応する変換前のメッセージ1a,2aを、関連づけて表示部13に表示する。
このようにメッセージ表示装置10では、メッセージ1a,2a,3aを変換した変換後メッセージ1b,2b,3bによりグループ化が行われるが、表示対象は変換前のメッセージ1a,2a,3aである。変換前のオリジナルのメッセージが表示されることで、用語が変換されて表示されることによる混乱が抑止され、障害分析がしやすくなる。
しかも、出力元装置に関連する文書の内容に基づいて、その出力元装置から出力されるメッセージのフレーズを判別することで、出力元装置ごとの用語の意味の違いを考慮したグルーピングが行われる。その結果、異なる出力元装置から出力された複数のメッセージの内容を正しく判断することができ、信頼性の高いグルーピングが可能となる。
さらに第1の実施の形態では、グループ間の判断を、グループ化単位フレーズに基づいて行っている。これにより、単語の同一性のみによってグルーピングを行う場合に比べ、信頼性の高いグルーピングが可能となる。
例えば「パニック」や「ダウン」といった単語を「エラー」に置換して、「エラー」という単語を含む変換後メッセージをすべて同じグループにすると、「エラー」と類似する単語を含むだけで同じグループになってしまう。この場合、関連性の低い変換後メッセージまでも同じグループに含まれる可能性がある。
一方、第1の実施の形態では、意味的なまとまりを有するフレーズ単位で比較してグルーピングを行うため、各メッセージの内容を正確に判断し、関連性の低い変換後メッセージ同士が同じグループになることを抑止できる。その結果、グルーピングの信頼性が向上する。
なお出力元装置1〜3に対応する文書11a,11b,11cには、出力元装置1〜3それぞれが出力可能なメッセージ(出力可能メッセージ)に関するメッセージ情報が含まれることがある。そこで、メッセージ情報に基づいて、出力可能メッセージ間の関連性を予め判断しておくこともできる。その場合、演算部12は、複数のメッセージ1a,2a,3aの取得前に、事前処理として以下の処理を行う。
演算部12は、出力元装置1〜3に関する複数の文書11a,11b,11cそれぞれから、出力元装置1〜3から出力可能な複数の出力可能メッセージを取得する。次に演算部12は、複数の出力可能メッセージそれぞれについて、出力可能メッセージを出力する出力元装置に関連する文書の内容に基づいて、その出力可能メッセージ内のフレーズを判別する。そして演算部12は、出力可能メッセージ内のフレーズを、そのフレーズと意味が類似する他のフレーズと共通のグループ化単位フレーズに変換した変換後出力可能メッセージを取得する。この処理は、メッセージ1a,2a,3aからの変換後メッセージ1b,2b,3bの取得処理と同様である。さらに演算部12は、複数の出力可能メッセージそれぞれに対応する複数の変換後出力可能メッセージそれぞれに含まれるグループ化単位フレーズに基づいて、互いに関連する変換後出力可能メッセージを検出する。そして演算部12は、互いに関連する変換後出力可能メッセージそれぞれに対応する変換前の出力可能メッセージのメッセージ番号を関連づけて、メモリなどに保持する。例えば演算部12は、取得した複数の変換後出力可能メッセージのうち、同じグループ化単位フレーズを所定数含む2以上の変換後出力可能メッセージそれぞれに対応する変換前の出力可能メッセージのメッセージ番号を関連づけて、メモリなどに保持する。以上で、事前処理は終了である。
その後、演算部12は、メッセージ1a,2a,3aを取得すると、変換後メッセージの取得やグループ化の手順を行わずに、メッセージ番号間の関連付けの有無のみで、表示の際のメッセージ1a,2a,3aの関連付けを行う。例えば演算部12は、一方のメッセージのメッセージ番号に他方メッセージのメッセージ番号が関連づけられているとき、それらのメッセージを関連づけて表示する。
このように、事前処理を行っておくことにより、障害解析時の処理が簡略化され、障害解析を迅速に行うことができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、情報処理装置が、各種のアプリケーションソフトウェアそれぞれを実行するプロセスが出力したメッセージを、統合管理するものである。この情報処理装置は、第1の実施の形態のメッセージ表示装置10の一例である。
図2は、本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。情報処理装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、情報処理装置100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、情報処理装置100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、情報処理装置100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示したメッセージ表示装置10も、図2に示した情報処理装置100と同様のハードウェアにより実現することができる。
情報処理装置100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。情報処理装置100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また情報処理装置100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図3は、情報処理装置の機能を示すブロック図である。情報処理装置100には、複数のアプリケーションソフトウェアが導入されている。これらのアプリケーションソフトウェアは、例えば、異なるベンダの製品である。以下、アプリケーションソフトウェアを実行するプロセスを、アプリケーション111〜113と呼ぶ。
アプリケーション111〜113は、処理の実行中に所定のイベントが発生すると、メッセージを出力する。例えばエラー発生時に、そのエラー内容を示すメッセージが出力される。アプリケーション111〜113から出力されたメッセージは、各アプリケーション111〜113に対応するログ記憶部121〜123にログとして記録される。なおアプリケーション111〜113は、第1の実施の形態における出力元装置1〜3の一例である。
情報処理装置100は、さらに、各アプリケーション111〜113から出力されたメッセージを管理するメッセージ管理部130を有する。メッセージ管理部130は、出力元情報記憶部131、単語マスタ記憶部132、ベンダ固有語マスタ記憶部133、メッセージ情報変換部134、メッセージ情報マスタ記憶部135、およびログ解析部136を有する。
出力元情報記憶部131は、アプリケーション111〜113それぞれのソフトウェア製品に関する情報を、出力元情報として記憶する。出力元情報は、例えばソフトウェアのマニュアルや仕様書などである。出力元情報記憶部131としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
単語マスタ記憶部132は、メッセージに含まれている可能性のある単語をリストアップした単語マスタを記憶する。単語マスタには、同様の意味を有する単語が、関連づけて登録される。単語マスタ記憶部132としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
ベンダ固有語マスタ記憶部133は、ベンダ固有の用語を、フレーズとしてリストアップしたベンダ固有語マスタを記憶する。ベンダ固有語マスタには、例えば、複数の単語を組み合わせることでベンダ固有の意味を持たせたフレーズが登録される。ベンダ固有語マスタ記憶部133としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
メッセージ情報変換部134は、アプリケーション111〜113のいずれかから出力される可能性のあるメッセージに関する情報(メッセージ情報)を生成する。メッセージ情報は、例えばアプリケーション111〜113のいずれかから出力される可能性のあるメッセージ間の同じ意味のフレーズを統一するためにフレーズを変換したものである。なおメッセージ情報変換部134によるメッセージ内のフレーズの変換は、出力元情報記憶部131、単語マスタ記憶部132、およびベンダ固有語マスタ記憶部133を参照して行われる。またメッセージ情報変換部134は、各メッセージ情報に該当するメッセージのグループ分けを行う。例えばメッセージ情報変換部134は、同じ意味のフレーズを含むメッセージを同じグループに振り分ける。メッセージ情報変換部134は、生成したメッセージ情報をメッセージ情報マスタ記憶部135に格納する。
メッセージ情報マスタ記憶部135は、生成されたメッセージ情報の集合であるメッセージ情報マスタを記憶する。メッセージ情報マスタ記憶部135としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
ログ解析部136は、複数のログ記憶部121〜123に格納されたメッセージを取得し、メッセージを解析してグルーピングを行う。そしてログ解析部136は、作業者からの指示に従って、同じグループに属するメッセージを関連づけてモニタ21に表示させる。例えばログ解析部136は、作業者が指定したメッセージをモニタ21に表示させる。またログ解析部136は、作業者が指定したメッセージに関連づけて、そのメッセージと同じグループに属するメッセージをモニタ21に表示させることもできる。
なお、図3に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図3に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
次にログ記憶部121〜123に記憶されるメッセージの例について説明する。
図4は、ログ記憶部内のメッセージの例を示す図である。ログ記憶部121には、アプリケーション111から出力されたメッセージが格納されている。ログ記憶部121内のメッセージには、レベル、時刻、メッセージ本文、番号(メッセージ識別番号)の順で情報が記載されている。レベルは、エラーの重要度を示す絵図である。図4の例では、特に重要なエラーを示すメッセージのレベルは、目立つ図柄の絵図となっている。
ログ記憶部122には、アプリケーション112から出力されたメッセージが格納されている。ログ記憶部122内のメッセージには、ラベル、レベル、時刻、番号、メッセージ本文の順で情報が記載されている。ラベルは、アプリケーション112の名称などの付加情報である。
ログ記憶部123には、アプリケーション113から出力されたメッセージが格納されている。ログ記憶部123内のメッセージには、時刻、番号−レベル、メッセージ本文の順で情報が記載されている。番号−レベルは、「−」の左がメッセージ識別番号であり、右がレベルである。
このように、異なるアプリケーションから出力されるメッセージは、データフォーマットが異なる。また、メッセージ本文で示される内容についても、同様の事象を示すエラーメッセージであっても、アプリケーションごとに表現が異なることがある。そこで第2の実施の形態では、メッセージ本文で使用される類義語を統一するなどのメッセージの変換が行われる。
次に、出力元情報記憶部131、単語マスタ記憶部132、ベンダ固有語マスタ記憶部133、およびメッセージ情報マスタ記憶部135に格納される情報について、詳細に説明する。
図5は、出力元情報記憶部に記憶される情報の一例を示す図である。出力元情報記憶部131には、アプリケーション111〜113それぞれの出力元情報131a,131b,131cが格納されている。出力元情報131a,131b,131cは、例えばアプリケーション111〜113のマニュアルや仕様書などである。出力元情報131a,131b,131cには、アプリケーション111〜113に関する各種技術情報が含まれる。例えば出力元情報131a,131b,131cには、アプリケーション111〜113それぞれが出力する可能性のあるメッセージに関する情報(メッセージ情報)の一覧が含まれる。メッセージ情報の一覧には、例えばメッセージ情報の番号、メッセージ情報に対応するメッセージに含まれる文字列、および対応するメッセージの説明などが含まれる。メッセージの説明には、そのメッセージの意味、そのメッセージが出力される条件、そのメッセージが出力された場合の対処方法などが記されている。
このような出力元情報131a,131b,131cが予め用意され、出力元情報記憶部131に格納される。なおアプリケーション111〜113それぞれの出力元情報131a,131b,131cは、アプリケーション111〜113それぞれのファイルを管理するフォルダ(ディレクトリ)に格納しておくことができる。この場合、メッセージ情報変換部134には、アプリケーション111〜113それぞれの出力元情報131a,131b,131cのパスとファイル名とが予め設定される。
図6は、単語マスタの一例を示す図である。単語マスタ記憶部132には、単語マスタ132aが格納されている。単語マスタ132aには、例えば単語IDに対応づけて、1以上のフレーズが登録されている。例えば、互いに類似語となる複数のフレーズが、共通の単語IDに対応づけて登録されている。
図7は、ベンダ固有語マスタの一例を示す図である。ベンダ固有語マスタ記憶部133には、ベンダ固有語マスタ133aが格納されている。ベンダ固有語マスタ133aには、例えば、固有語ID、製品ID、固有語、および構成要素群の欄が設けられている。固有語IDの欄には、ベンダ固有語の識別情報(固有語ID)が設定される。製品IDの欄には、ベンダ固有語の抽出元である出力元情報に対応するアプリケーションの識別情報(製品ID)が設定される。固有語の欄には、抽出されたベンダ固有語が設定される。構成要素群の欄には、ベンダ固有語に関連する単語の単語IDが設定される。
図8は、変換メッセージ生成処理後のメッセージ情報マスタの一例を示す図である。メッセージ情報マスタ記憶部135には、メッセージ情報マスタ135aが格納されている。メッセージ情報マスタ135aには、メッセージ情報ID、製品ID、メッセージ番号、変換メッセージ、およびグループ内メッセージ情報IDの欄が設けられている。
メッセージ情報IDの欄には、メッセージ情報をメッセージ管理部130内で識別するための識別子(メッセージ情報ID)が設定される。製品IDの欄には、メッセージ情報の抽出元である出力元情報に対応するアプリケーションの製品IDが設定される。メッセージ番号の欄には、メッセージ情報で示されるメッセージが出力される際に、対応するアプリケーションが付与するそのメッセージの識別番号(メッセージ番号)が設定される。
変換メッセージの欄には、メッセージ情報に示されるメッセージ内のフレーズのうち、単語マスタ132aに登録されているフレーズの単語ID、またはベンダ固有語マスタ133aに登録されているベンダ固有語の固有語IDが登録される。固有語IDには、対応するベンダ固有語の構成要素群として含まれる単語IDが付随している。
変換メッセージの欄に登録されている情報は、メッセージに対する変換内容を示している。メッセージ情報IDに対応するメッセージ内の、変換メッセージに登録されている単語IDまたは固有語IDに対応するフレーズを、グループ化単位フレーズに変換すれば、変換メッセージとなる。なお第2の実施の形態では、変換メッセージは表示対象とならないため、グループ化単位フレーズは、数字や記号であってもよい。例えば単語IDや固有語IDを、そのままグループ化単位フレーズとすることができる。
グループ内メッセージ情報IDの欄には、対応するメッセージ情報と同じグループに属する他のメッセージ情報のメッセージ情報IDが設定される。グループ内メッセージ情報IDの欄に設定されている情報により、変換後のメッセージのグループが示される。すなわち、あるメッセージ情報IDのグループ内メッセージ情報IDとして、他のメッセージ情報IDが設定されていれば、それらのメッセージ情報IDに示されるメッセージそれぞれを変換した変換後のメッセージが同一のグループに属する。
次に、単語マスタ記憶部132、ベンダ固有語マスタ記憶部133、およびメッセージ情報マスタ記憶部135それぞれを生成する事前処理について説明する。
図9は、事前処理の手順の一例を示すフローチャートである。
[ステップS101]メッセージ情報変換部134は、出力元情報記憶部131から、出力元情報131a,131b,131cを読み込む。
[ステップS102]メッセージ情報変換部134は、単語マスタ132aを作成する。メッセージ情報変換部134は、作成した単語マスタ132aを、単語マスタ記憶部132に格納する。単語マスタ作成処理の詳細は、後述する(図10参照)。
[ステップS103]メッセージ情報変換部134は、ベンダ固有語マスタ133aを作成する。メッセージ情報変換部134は、作成したベンダ固有語マスタ133aは、ベンダ固有語マスタ記憶部133に格納する。ベンダ固有語マスタ作成処理の詳細は後述する(図11参照)。
[ステップS104]メッセージ情報変換部134は、メッセージ情報マスタを作成する。メッセージ情報変換部134は、作成したメッセージ情報マスタ135aを、メッセージ情報マスタ記憶部135に格納する。メッセージ情報マスタ作成処理の詳細は後述する(図12参照)。
次に、単語マスタ作成処理の手順について詳細に説明する。
図10は、単語マスタ作成処理の手順の一例を示すフローチャートである。
[ステップS111]メッセージ情報変換部134は、出力元情報131a,131b,131c内のメッセージ情報のうち、未処理のメッセージ情報を取得する。例えばメッセージ情報変換部134は、出力元情報131a,131b,131cを解析し、メッセージ情報一覧を判別する。そしてメッセージ情報変換部134は、出力元情報131a,131b,131cのメッセージ情報一覧から、メッセージ情報を1つずつ取得する。
[ステップS112]メッセージ情報変換部134は、取得したメッセージ情報からフレーズを抽出する。例えばメッセージ情報変換部134は、メッセージ情報に対応するメッセージに含まれる文字列に対して形態素解析を行い、単語を抽出する。メッセージ情報変換部134は、抽出した単語を、そのメッセージ情報のフレーズとする。またメッセージ情報変換部134は、出力されるメッセージの説明からフレーズを抽出することもできる。
[ステップS113]メッセージ情報変換部134は、抽出したフレーズが、単語マスタ記憶部132内の単語マスタ132aに存在するか否かを判断する。フレーズが単語マスタ132aに存在しなければ、処理がステップS114に進められる。フレーズが単語マスタ132aに存在すれば、処理がステップS112に進められ、別のフレーズが抽出される。
[ステップS114]メッセージ情報変換部134は、抽出したフレーズが単語マスタ132aに存在しない場合、フレーズの類似語を取得する。フレーズの類似語は、例えばネットワーク経由で公開されている類語辞書などから取得できる。また情報処理装置100のHDD103内に類語辞書を格納しておき、HDD103内の類語辞書を用いて類似語を取得することもできる。このとき類語辞書として、複数の単語の関係を参照して、類似語の範囲を変更することができる。例えば一般的な類似語辞書では、「破棄」の類似語として「消失」はない。しかし「メッセージの破棄」と「メッセージの消失」とでは、似た意味となる。そこでメッセージ情報変換部134は、例えば「破棄」が「メッセージ」という単語に続く場合には、「破棄」が「消失」の類似語であると判断する。
[ステップS115]メッセージ情報変換部134は、取得したフレーズの類似語が単語マスタ132aに存在するか否かを判断する。類似語が単語マスタ132aに存在する場合、処理がステップS116に進められる。類似語が単語マスタ132aに存在しない場合、処理がステップS117に進められる。
[ステップS116]メッセージ情報変換部134は、類似語が単語マスタ132aに存在する場合、抽出したフレーズを、類似語と同じ単語IDに対応づけて、単語マスタ132aに登録する。その後、処理がステップS118に進められる。
[ステップS117]メッセージ情報変換部134は、類似語が単語マスタ132aに存在しない場合、新規の単語IDに対応づけて、抽出したフレーズを単語マスタ132aに登録する。
[ステップS118]メッセージ情報変換部134は、取得したメッセージ情報に未処理のフレーズがあるか否かを判断する。未処理のフレーズがあれば、処理がステップS112に進められ、別のフレーズの抽出が行われる。取得したメッセージ情報内のすべてのフレーズについて処理が終了した場合、処理がステップS119に進められる。
[ステップS119]メッセージ情報変換部134は、未処理のメッセージ情報があるか否かを判断する。未処理のメッセージ情報があれば、処理がステップS111に進められ、別のメッセージ情報が取得される。すべてのメッセージ情報について処理が終了した場合、単語マスタ作成処理が終了する。
このようにして単語マスタ132aが作成される。作成された単語マスタ132aを利用して、ベンダ固有語マスタ133aが作成される。
図11は、ベンダ固有語マスタ作成処理の手順の一例を示す図である。
[ステップS121]メッセージ情報変換部134は、出力元情報記憶部131から、未処理の出力元情報を1つ取得する。
[ステップS122]メッセージ情報変換部134は、取得した出力元情報からフレーズを抽出する。例えばメッセージ情報変換部134は、マニュアルなどの全体の形態素解析を行い、形態素解析で判別された単語を、フレーズとして抽出する。またメッセージ情報変換部134は、複数の単語を続けた連語や、複数の単語を助詞で接続した文字列も、フレーズとして抽出する。
[ステップS123]メッセージ情報変換部134は、抽出したフレーズがベンダ固有語マスタ133aに存在するか否かを判断する。フレーズがベンダ固有語マスタ133aに存在すれば、処理がステップS122に進められ、別のフレーズの抽出が行われる。フレーズがベンダ固有語マスタ133aに存在しなければ、処理がステップS124に進められる。
[ステップS124]メッセージ情報変換部134は、抽出したフレーズがベンダ固有語か否かを判断する。例えばメッセージ情報変換部134は、抽出元の出力元情報にのみ出現し、他の出力元情報には出現しないフレーズは、ベンダ固有語と判断する。またメッセージ情報変換部134は、抽出元の出力元情報において、特別にフレーズの意味が定義されている場合に、ベンダ固有語を判断することもできる。例えば「本製品における“IP-Address”とは・・・」というように、一般的に用いられるフレーズであっても、特別にフレーズの意味が定義されている場合は、ベンダ固有語と判断される。抽出したフレーズがベンダ固有語の場合、処理がステップS125に進められる。抽出したフレーズがベンダ固有語でなければ、処理がステップS122に進められる。
[ステップS125]メッセージ情報変換部134は、新規の固有語IDに対応づけて、抽出したフレーズをベンダ固有語マスタ133aに登録する。
[ステップS126]メッセージ情報変換部134は、抽出したフレーズに関連するフレーズ(関連語)が単語マスタ132aに登録されているか否かを判断する。例えば抽出したフレーズが複数の単語を助詞で接続した文字列の場合、そのフレーズに含まれる各単語が関連語となる。なお抽出したフレーズが、複数の単語を連結して1つのまとまった意味を有する連語の場合、全体で1つとみなされ、内包される単語での関連語の検出は行われない。関連語がある場合、処理がステップS127に進められる。関連語がない場合、処理がステップS128に進められる。
[ステップS127]メッセージ情報変換部134は、関連語を、抽出したフレーズの構成要素群として、ベンダ固有語マスタ133aに登録する。
[ステップS128]メッセージ情報変換部134は、取得した出力元情報に、未処理のフレーズがあるか否かを判断する。未処理のフレーズがあれば、処理がステップS122に進められ、別のフレーズの抽出が行われる。取得した出力元情報内のすべてのフレーズの処理が完了した場合、処理がステップS129に進められる。
[ステップS129]メッセージ情報変換部134は、未処理の出力元情報があるか否かを判断する。未処理の出力元情報があれば処理がステップS121に進められ、別の出力元情報が取得される。すべての出力元情報に対する処理が完了した場合、ベンダ固有語マスタ作成処理が終了する。
このようにしてベンダ固有語マスタ133aが作成される。作成された単語マスタ132aとベンダ固有語マスタ133aを用いて、メッセージ情報マスタ135aが作成される。
図12は、メッセージ情報マスタ作成処理の手順の一例を示すフローチャートである。
[ステップS141]メッセージ情報変換部134は、変換メッセージ生成処理を行う。この処理の詳細は後述する(図13参照)。
[ステップS142]メッセージ情報変換部134は、変換メッセージグループ化処理を行う。この処理の詳細は後述する(図14参照)。
次に変換メッセージ生成処理の手順について詳細に説明する。
図13は、変換メッセージ生成処理の手順の一例を示すフローチャートである。
[ステップS151]メッセージ情報変換部134は、出力元情報131a,131b,131cから、未処理のメッセージ情報を1つ取得する。
[ステップS152]メッセージ情報変換部134は、取得したメッセージ情報をメッセージ情報マスタ135aに登録する。例えばメッセージ情報変換部134は、新規のメッセージ情報IDに対応づけて、そのメッセージ情報の取得元の出力元情報に対応する製品の製品IDと、そのメッセージ情報のメッセージ番号とを、メッセージ情報マスタ135aに登録する。
[ステップS153]メッセージ情報変換部134は、取得したメッセージ情報からフレーズを抽出する。
[ステップS154]メッセージ情報変換部134は、抽出したフレーズがベンダ固有語マスタ133aに存在するか否かを判断する。抽出したフレーズがベンダ固有語マスタ133aに存在する場合、処理がステップS156に進められる。抽出したフレーズがベンダ固有語マスタ133aに存在しない場合、処理がステップS155に進められる。
[ステップS155]メッセージ情報変換部134は、抽出したフレーズがベンダ固有語マスタ133aに存在しない場合、単語マスタ132aから抽出したフレーズの単語IDを取得する。その後、処理がステップS159に進められる。
[ステップS156]メッセージ情報変換部134は、抽出したフレーズがベンダ固有語マスタ133aに存在する場合、ベンダ固有語マスタ133aから、抽出したフレーズの固有語IDを取得する。
[ステップS157]メッセージ情報変換部134は、抽出したフレーズに対応づけて、ベンダ固有語マスタ133a内に構成要素群があるか否かを判断する。構成要素群がある場合、処理がステップS158に進められる。構成要素群がない場合、処理がステップS159に進められる。
[ステップS158]メッセージ情報変換部134は、抽出したフレーズに対応づけてベンダ固有語マスタ133a内に登録されている構成要素群を取得する。
[ステップS159]メッセージ情報変換部134は、メッセージ情報マスタ135aにおける、ステップS152で取得したメッセージ情報に関する変換メッセージを更新する。例えばメッセージ情報変換部134は、ステップS155で取得した単語ID、またはステップS158で取得した構成要素群を、ステップS152で取得したメッセージ情報のメッセージ情報IDに関連づけて、変換メッセージの欄に登録する。
[ステップS160]メッセージ情報変換部134は、未処理のメッセージ情報があるか否かを判断する。未処理のメッセージ情報があれば、処理がステップS151に進められる。未処理のメッセージ情報がなければ、変換メッセージ生成処理が終了する。
このようにして変換メッセージ生成処理が行われる。この変換メッセージ生成処理により、各メッセージ情報について、メッセージの文字列内の変換対象のフレーズが特定される。
次に変換メッセージグループ化処理について説明する。
図14は、変換メッセージグループ化処理の手順の一例を示す図である。
[ステップS171]メッセージ情報変換部134は、メッセージ情報マスタ135aから、未処理のメッセージ情報IDを取得する。メッセージ情報変換部134は、取得したメッセージ情報IDを「比較対象#1」とする。
[ステップS172]メッセージ情報変換部134は、メッセージ情報マスタ135aから、「比較対象#1」以外のメッセージ情報IDを取得する。メッセージ情報変換部134は、取得したメッセージ情報IDを「比較対象#2」とする。
[ステップS173]メッセージ情報変換部134は、「比較対象#1」と「比較対象#2」とが同一のグループに属するか否かを判断する。例えばメッセージ情報変換部134は、「比較対象#1」の変換メッセージの欄に登録されている単語IDまたはベンダ固有語IDと、「比較対象#2」の変換メッセージの欄に登録されている単語IDまたはベンダ固有語IDとを比較する。メッセージ情報変換部134は、共通の単語ID(ベンダ固有語IDに付属する単語IDを除く)があれば、同一のグループに属すると判断する。またメッセージ情報変換部134は、一方のベンダ固有語IDに付随するすべての単語IDが、他方にも含まれている場合、同一のグループに属すると判断する。
「比較対象#1」と「比較対象#2」とが同一のグループに属する場合、処理がステップS174に進められる。「比較対象#1」と「比較対象#2」とが同一のグループに属さない場合、処理がステップS175に進められる。
[ステップS174]メッセージ情報変換部134は、メッセージ情報マスタ135a内の、比較対象となった「比較対象#1」と「比較対象#2」とのそれぞれのグループ内メッセージ情報IDの欄に、比較相手のメッセージ情報IDを追加する。
[ステップS175]メッセージ情報変換部134は、「比較対象#1」以外のメッセージ情報IDのうち、ステップS172〜S174の処理が未処理のメッセージ情報IDがある否かを判断する。未処理のメッセージ情報IDがあれば、処理がステップS172に進められる。未処理のメッセージ情報IDがなければ、処理がステップS176に進められる。
[ステップS176]メッセージ情報変換部134は、ステップS171〜S175の処理が未処理のメッセージ情報ID(まだ「比較対象#1」とされていないメッセージ情報ID)があるか否かを判断する。未処理のメッセージ情報IDがあれば、処理がステップS171に進められる。未処理のメッセージ情報IDがなければ、変換メッセージグループ化処理が終了する。
このようなグループ化により、メッセージ本文の単語の類似関係だけでなく、複数の単語の組み合わせにより認識される意味を判断して、グルーピングが行われる。
図15は、グルーピングの例を示す図である。図15の例では、以下の3つのメッセージ情報のメッセージ本文41〜43が示されている。
(a)要求に対して、メッセージが破棄されました。
(b)受信時に電文がロストしました。
(c)キュー消失監視の設定が不当です。
このようなメッセージ本文41〜43について、個々の単語の類似関係でグルーピングを行う場合を考える。その場合、例えばメッセージ本文41の「破棄」はメッセージ本文43の「消失」と非類似と判断されるが、メッセージ本文42の「ロスト」は「消失」と類似するものと判断される。その結果、メッセージ本文41を有するメッセージ情報とメッセージ本文42を有するメッセージ情報とは同じグループにならない。またメッセージ本文42を有するメッセージ情報とメッセージ本文43を有するメッセージ情報とは同じグループ44にグルーピングされる。
しかしメッセージ本文43の「消失」は、「キュー消失監視」という連語の一部であり、メッセージが失われたことを示すような意味ではない。そのため、個々の単語の類時関係でグルーピングしただけでは、不適切なグルーピングになることがある。
そこで第2の実施の形態では、複数の単語を組み合わせた意味を考慮したグルーピングが行われる。例えばメッセージ本文41の「破棄」は、「メッセージが破棄」というように「メッセージ」に続くフレーズであるため「消失」に類似すると判断される。またメッセージ本文42の「電文」は「受信」に続くフレーズであるため、「メッセージ」に類似すると判断される。さらにメッセージ本文42の「ロスト」は、「電文」に続くフレーズであるため「消失」に類似すると判断される。なお図15の例は、メッセージ本文42の「電文がロスト」とメッセージ本文43の「キュー消失監視」は、ベンダ固有語であるものとする。
この場合、メッセージ本文41の「破棄」は「消失」と同じ意味に解され、メッセージ本文42のベンダ固有語「電文がロスト」は「メッセージが消失」と同じ意味に解される。するとメッセージ本文41を有するメッセージ情報とメッセージ本文42を有するメッセージ情報とは、共に「メッセージが消失」というフレーズを含むこととなり、同じグループ45にグルーピングされる。
一方、メッセージ本文43は、「キュー消失監視」で1つのフレーズと認識されるため、類似するフレーズが他のメッセージ本文41,42に含まれないと判断される。
このようにして、メッセージを失う意味を含むメッセージ本文41,42を有するメッセージ情報が正しく同じグループ45にグルーピングされる。また「キュー消失監視」という別の意味のメッセージ本文43を有するメッセージ情報は、グループ45に含まれないものと正しく判断される。
以上が事前処理である。事前処理後、例えばシステムに障害が発生し、障害の原因を解析する際に、作業者の指示に応じて、メッセージのログ解析処理が行われる。
図16は、ログ解析処理の手順の一例を示すフローチャートである。
[ステップS201]ログ解析部136は、ログ内メッセージグループ化処理を行う。例えばログ解析部136は、複数のログ記憶部121〜123からメッセージを収集し、作業者が指定したメッセージと同じグループに属する他のメッセージを抽出する。ログ内メッセージグループ化処理の詳細は後述する(図17参照)。
[ステップS202]ログ解析部136は、作業者が指定したメッセージ、およびそのメッセージと同じグループに属する他のメッセージをモニタ21に表示する。この処理の詳細は後述する(図18参照)。
次にログ内メッセージグループ化処理について詳細に説明する。
図17は、ログ内メッセージグループ化処理の手順の一例を示すフローチャートである。
[ステップS211]ログ解析部136は、ログ記憶部121〜123からメッセージを収集する。この際、ログ解析部136は、所定の期間内に出力されたメッセージに限定して収集することができる。例えばログ解析部136は、障害が発生した時刻が分かる場合、その時刻の前後の所定期間内の時刻がタイムスタンプとして付与されているメッセージのみの収集が可能である。ログ解析部136は、収集したメッセージに対して、そのメッセージを出力したアプリケーションの製品IDを付与して、メモリに格納する。
[ステップS212]ログ解析部136は、メッセージ情報マスタ135aから、起点メッセージのグループ内メッセージ情報IDを取得する。例えばログ解析部136は、収集したメッセージの中から起点メッセージを指定する操作入力を、作業者から受け付ける。次にログ解析部136は、指定された起点メッセージのメッセージ番号、およびその起点メッセージの出力元のアプリケーションの製品IDをキーとして、メッセージ情報マスタ135aからメッセージ情報IDを検索する。そしてログ解析部136は、検索でヒットしたメッセージ情報IDに対応するグループ内メッセージ情報IDの欄に登録されているメッセージ情報ID(グループ内メッセージ情報ID)をすべて取得する。
[ステップS213]ログ解析部136は、ステップS212で取得したグループ内メッセージ情報IDのうち、未処理のグループ内メッセージ情報IDを1つ選択する。
[ステップS214]ログ解析部136は、取得したグループ内メッセージ情報IDに対応するメッセージ情報の製品IDとメッセージ番号とを取得する。例えば、ログ解析部136は、取得したグループ内メッセージ情報IDをキーとして、メッセージ情報マスタ135aのメッセージ情報IDの欄を検索する。そしてログ解析部136は、検索でヒットしたメッセージ情報IDに対応する製品IDおよびメッセージ番号を、メッセージ情報マスタ135aから取得する。
[ステップS215]ログ解析部136は、ステップS211で収集したメッセージの中から、ステップS214で取得した製品IDおよびメッセージ番号の組を有するメッセージを検索する。そしてログ解析部136は、検索でヒットしたメッセージを抽出する。
[ステップS216]ログ解析部136は、ステップS212で取得したグループ内メッセージ情報IDの中に、未処理のグループ内メッセージ情報IDがあるか否かを判断する。未処理のグループ内メッセージ情報IDがある場合、処理がステップS213に進められる。すべてのグループ内メッセージ情報IDについて処理が完了していれば、ログ内メッセージグループ化処理が終了する。
次にメッセージ表示処理について詳細に説明する。
図18は、メッセージ表示処理の手順の一例を示す図である。
[ステップS221]ログ解析部136は、メッセージ抽出処理で抽出されたメッセージのうち、未表示のメッセージを選択する。
[ステップS222]ログ解析部136は、起点メッセージに関連づけて、選択したメッセージをモニタ21に表示する。
[ステップS223]ログ解析部136は、メッセージ抽出処理で抽出されたメッセージの中に未選択のメッセージがあるか否かを判断する。未選択のメッセージがあれば、処理がステップS221に進められる。未選択のメッセージがなければ、メッセージ表示処理が終了する。
このようにして、互いに関連するメッセージを纏めて表示させることができる。
図19は、ログ内のメッセージのグループ化の一例を示す図である。例えばログ記憶部121からメッセージ51が取得され、ログ記憶部122からメッセージ52が取得され、ログ記憶部123からメッセージ53が取得されたものとする。
メッセージ51の出力元の製品IDは「p-0001」であり、メッセージ番号は「10300」である。するとメッセージ51は、メッセージ情報ID「m-0001」に対応するメッセージであることが分かる。この場合、メッセージ情報ID「m-0001」に対応する変換メッセージの欄に登録されている単語IDまたは固有語IDにより、メッセージ51をメッセージ61のように変換できる。同様に、メッセージ52はメッセージ62に変換でき、メッセージ53はメッセージ63に変換できる。
なお図19の例では、変換後のメッセージ61〜63内のフレーズは、単語IDまたは固有語IDに置き換えられている。第2の実施の形態では、メッセージ61〜63は表示対象ではないため、人による可読性を考慮せずに済む。そのため、図19に示すように、フレーズを変換する際に、意味のある単語に変換するのではなく、フレーズに対応する識別子に置き換えることができる。
変換後のメッセージ61〜63を互いに比較すると、関連性の有無が判断できる。例えばメッセージ62のベンダ固有語「”b-0002("k-0003"が”k-0004")」は、そのベンダ固有語全体と一致するフレーズがメッセージ61にも含まれる。そのため、メッセージ61とメッセージ62とは関連性がある。他方、メッセージ63は、他のメッセージ61,62のいずれとも共通のフレーズを有していないため、いずれのメッセージとも関連性がない。その結果、2つのメッセージ61,62が同じグループ64に纏められる。
このような関連性の判断結果は、メッセージ情報マスタ135aのグループ内メッセージ情報IDに事前処理によって設定されている。そのため、ログ解析部136は、起点メッセージのグループ内メッセージ情報IDを参照することで、起点メッセージと同じグループに属する他のメッセージを、迅速に見つけ出すことができる。
このように、変換後のメッセージ61〜63に基づいてグルーピングが行われるが、作業者への表示対象は、変換前のメッセージ51〜53である。
図20は、メッセージの表示例を示す図である。例えばログ表示画面70に、製品Bから出力されたメッセージのログ71が表示されているとき、メッセージ52が表示された領域を、作業者がマウスポインタ72で選択したものとするこの選択により、メッセージ52が、ログ解析部136で起点メッセージと認識される。すると、メッセージ52の変換後のメッセージ62と同じグループ64に属する別のメッセージ61の変換前のメッセージ51が抽出され、製品Aから出力されたメッセージのログ73として、ログ表示画面70に表示される。この際、選択されたメッセージの表示部からログ73の表示部に、関連付けを表す線が示される。なおメッセージ52の変換後のメッセージ62と同じグループ64に属する別の変換後のメッセージが複数あれば、それらのメッセージに対応する複数の変換前のメッセージが表示される。
以上説明したように、第2の実施の形態によれば、注目したメッセージに関連する他のメッセージを、オリジナルのまま纏めて確認することができる。そのため、表示されたメッセージの内容が変換されていることにより作業者が混乱することがなくなり、関連するメッセージの内容を迅速に把握することができ、故障の原因究明・復旧時間が短縮される。その結果、コンピュータシステムの信頼性向上に繋がる。
また第2の実施の形態では、事前処理によって変換後のメッセージのグループ化を行っている。そのため、ログ解析時には、グループ化までの手順を省略することができ、ログ解析時のメッセージ表示処理を迅速に行うことができる。
なお事前処理を行わずに、ログ記憶部121〜123から収集したメッセージそのものを用いて、図12に示したメッセージ情報マスタ作成処理を行うこともできる。その場合、図13のステップS151では、出力元情報からのメッセージ情報の取得に代えて、ログ記憶部121〜123から収集したメッセージが取得される。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。