(57)【要約】 【課題】ログファイルからエラーメッセージとともに、そのエラーメッセージを出力するプログラム名も取得する、ログファイル解析システムを提供する。【解決手段】エラーメッセージ検出部２１で、ログファイルからエラーメッセージを検出する。次に、メッセージ情報採取部２２が先ほど検出されたエラーメッセージでメッセージ情報ＤＢを検索し、検出されたレコードに記憶されているエラーメッセージの出力元プログラム名を取得する。検索されなかった場合は、メッセージ検出部２３がプログラムソースから、ログファイルに書き込むメッセージを検出し、メッセージ情報登録部２４がそのメッセージとその出力元プログラム名を対応付けてメッセージ情報ＤＢに登録し、再度メッセージ情報採取部２２が、メッセージ情報ＤＢを検索することで、出力元プログラム名を取得する。【選択図】図２
2007265307.tif 000002
【特許請求の範囲】
【請求項１】
ログファイルに書き込まれているメッセージから、特定のメッセージを抽出するログメッセージ抽出手段と、
ログファイルに書き込まれているメッセージと該メッセージに関連する情報とを対応付けて記録するメッセージ情報記録手段と、
前記ログメッセージ抽出手段で抽出したメッセージで前記メッセージ情報記録手段を検索して、該メッセージに関連する情報を取得するメッセージ情報取得手段と、
を備えることを特徴とする、ログファイル解析システム。
【請求項２】
前記ログメッセージ抽出手段は、エラーが発生したことを報知するメッセージを抽出すること、
を特徴とする請求項１に記載のログファイル解析システム。
【請求項３】
前記メッセージに関連する情報は、該メッセージをログファイルに出力するプログラムの識別情報であることを特徴とする、請求項１又は２に記載のログファイル解析システム。
【請求項４】
プログラムのソースからログファイルに出力されるメッセージと該プログラムの識別情報とを関連付けて取得し、前記メッセージ情報記録手段に登録するメッセージ情報登録手段をさらに備えること、
を特徴とする請求項３に記載のログファイル解析システム。
【請求項５】
ログファイルに書き込まれているメッセージから、特定のメッセージを抽出するログメッセージ抽出手段と、
ログファイルに書き込まれているメッセージと該メッセージを該ログファイルに出力するプログラムの識別情報とを対応付けて記録するメッセージ情報記録手段と、
前記ログメッセージ抽出手段で抽出したメッセージで前記メッセージ情報記録手段を検索して、該メッセージに関連する情報を取得できなかった場合、プログラムのソースからログファイルに出力されるメッセージと該プログラムの識別情報とを関連付けて取得し、前記メッセージ情報記録手段に登録するメッセージ情報登録手段と、
前記メッセージ情報登録手段で前記メッセージ情報記録手段にメッセージ情報を登録した後、再度前記ログメッセージ抽出手段で抽出したメッセージで前記メッセージ情報記録手段を検索して、該メッセージに関連する情報を取得するメッセージ情報再取得手段と、
を備えることを特徴とする、ログファイル解析システム。
【請求項６】
ログファイルに書き込まれているメッセージから、特定のメッセージを抽出するログメッセージ抽出手順と、
ログファイルに書き込まれているメッセージと該メッセージに関連する情報とを対応付けて記録しているメッセージ情報記録手順と、
前記ログメッセージ抽出手順で抽出したメッセージで前記メッセージ情報記録手順を検索して、該メッセージに関連する情報を取得するメッセージ情報取得手順と、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの操作記録やデータ通信の記録等がログファイルになされるコンピュータシステムにおいて、ログファイルに出力されているメッセージを解析するログファイル解析システムおよびプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムは、システムの利用状況やデータ通信の記録等が記録されるログファイルを有しているのが一般的である。ログファイルには、操作やデータの送受信が行われた日時と、行われた操作の内容や送受信されたデータの中身等が記録される。
【０００３】
また、ログファイルからエラーメッセージを自動的に検出する技術が開示されている（例えば特許文献１の段落（００４５）〜（００４６）参照）。
【特許文献１】特開平１１−１４３７４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された技術では、ログファイルに出力されたエラーメッセージが、どのプログラムによって出力されたのかを知ることはできない。そのため、上記情報を得るためには、手動でプログラムソースを調査する必要がある。上記調査は手動で行わなければならないため、人手による誤りが生じる可能性や、作業に時間がかかるという問題がある。
【０００５】
本発明は上述した問題に鑑みてなされたものであって、ログファイルにエラーメッセージが書き込まれた場合、そのエラメッセージの出力元プログラムを特定してくれるログファイル解析システムおよび、コンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の観点に係るログファイル解析システムは、
ログファイルに書き込まれているメッセージから、特定のメッセージを抽出するログメッセージ抽出手段と、
ログファイルに書き込まれているメッセージと該メッセージに関連する情報とを対応付けて記録するメッセージ情報記録手段と、
前記ログメッセージ抽出手段で抽出したメッセージで前記メッセージ情報記録手段を検索して、該メッセージに関連する情報を取得するメッセージ情報取得手段と、
を備えることを特徴とする。
【０００７】
前記ログメッセージ抽出手段は、エラーが発生したことを報知するメッセージを抽出してもよい。
【０００８】
前記メッセージに関連する情報は、該メッセージをログファイルに出力するプログラムの識別情報であってもよい。
【０００９】
プログラムのソースからログファイルに出力されるメッセージと該プログラムの識別情報とを関連付けて取得し、前記メッセージ情報記録手段に登録するメッセージ情報登録手段をさらに備えてもよい。
【００１０】
本発明の第２の観点に係るログファイル解析システムは、
ログファイルに書き込まれているメッセージから、特定のメッセージを抽出するログメッセージ抽出手段と、
ログファイルに書き込まれているメッセージと該メッセージを該ログファイルに出力するプログラムの識別情報とを対応付けて記録するメッセージ情報記録手段と、
前記ログメッセージ抽出手段で抽出したメッセージで前記メッセージ情報記録手段を検索して、該メッセージに関連する情報を取得できなかった場合、プログラムのソースからログファイルに出力されるメッセージと該プログラムの識別情報とを関連付けて取得し、前記メッセージ情報記録手段に登録するメッセージ情報登録手段と、
前記メッセージ情報登録手段で前記メッセージ情報記録手段にメッセージ情報を登録した後、再度前記ログメッセージ抽出手段で抽出したメッセージで前記メッセージ情報記録手段を検索して、該メッセージに関連する情報を取得するメッセージ情報再取得手段と、
を備えることを特徴とする。
【００１１】
本発明の第３の観点に係るプログラムは、
ログファイルに書き込まれているメッセージから、特定のメッセージを抽出するログメッセージ抽出手順と、
ログファイルに書き込まれているメッセージと該メッセージに関連する情報とを対応付けて記録しているメッセージ情報記録手順と、
前記ログメッセージ抽出手順で抽出したメッセージで前記メッセージ情報記録手順を検索して、該メッセージに関連する情報を取得するメッセージ情報取得手順と、
をコンピュータに実行させる。
【発明の効果】
【００１２】
本発明は、ログファイルからエラーメッセージを取得する際、そのエラーメッセージに関連する情報(エラーメッセージの出力元のプログラムの名称等）を、取得することが可能である。
【発明を実施するための最良の形態】
【００１３】
本発明の実施の形態に係るコンピュータシステムについて図を用いて説明する。
本発明の実施の形態に係るコンピュータシステムは、図１に示すように、入力部１１と、表示部１２と、記憶部１３と、制御部１４からなる。
【００１４】
入力部１１は、キーボードや、マウス等からなり、様々な情報を入力するために使用される。
表示部１２は、ディスプレイ等からなり、様々な情報を出力する。
【００１５】
記憶部１３は、ハードディスク装置等から構成され、制御部１４が実行するためのプログラムソース及び、処理に必要な各種データ等が格納される。
【００１６】
また、記憶部１３は、後述するログファイルエラー解析処理で解析対象となるログファイルを格納する。
ここで、ログファイルについて説明する。図３にログファイルの例を示す。ログファイルにはコンピュータシステムの入出力動作やエラーなどのイベントが発生する毎に、そのイベントに対応した記録（ログ）が動作プログラムからログファイルに書き込まれる。ログファイルへの書込は行単位でなされ、１行は、その行が書き込まれた日時を表す書込日時部と、ログファイルへの書込元プログラムによって書き込まれるメッセージ部とからなる。
【００１７】
また、記憶部１３は、後述するログファイルエラー解析処理で使用される、メッセージ情報ＤＢ（データベース）を格納する。
メッセージ情報ＤＢは、ログファイルに出力されるエラーメッセージの様々な情報を記録するものであり、例えば図４に示すようにメッセージと、そのエラーメッセージの各種情報（メッセージがメッセージ情報ＤＢに登録された日付、メッセージの出力元のマシン名、メッセージの出力元のプログラム名、カーネルバージョン等）が記憶される。
【００１８】
制御部１４は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等から構成され、コンピュータシステム全体の動作を制御する。
また、記憶部１３に予め記憶されたプログラムを読み出して実行することにより、後述するログファイルエラー解析処理を実現する。
【００１９】
ログファイルエラー解析処理について、図２の機能構成図を元に説明する。
ログファイルエラー解析処理は、エラーメッセージ検出部２１と、メッセージ情報採取部２２と、メッセージ検出部２３と、メッセージ情報登録部２４と、出力データ表示部２５とから構成される。
【００２０】
エラーメッセージ検出部２１は、ログファイルの中からエラーメッセージを検出する。
検出の具体的な方法を説明する。例えば、ログファイルに図３のようなメッセージが書き込まれているものとする。エラーメッセージ検索部は、ログファイルの中に、エラーを表すキーワード（”error”、”warning”、”fail”等）が出力されている行を検出する。なお、このキーワードはエラーメッセージ検出部２１自体に記憶されていてもよいし、または外部のデータベース等に記憶されているものであってもよい。
そして、エラーメッセージ検出部２１は、検出された行のメッセージ部に書き込まれているメッセージを抽出する。この例の場合は、キーワード"Warning"を持つ行のメッセージ部に出力されているメッセージ”Warning : acpi_table_parse(ACPI_SRAT) returned 0!! ”がエラーメッセージとして抽出される。
【００２１】
メッセージ情報採取部２２は、エラーメッセージ検出部２１で検出されたエラーメッセージをキーにしてメッセージ情報ＤＢ内を検索し、一致するレコードの有無を判断する。そして、メッセージ情報採取部２２は、一致するレコードがあった場合、そのレコードの情報を出力データ表示部２５に送信する。条件に一致するレコードが無かった場合、メッセージ検出部２３による処理を行う。
【００２２】
出力データ表示部２５は、メッセージ情報採取部２２から送信されたメッセージ情報ＤＢのレコード情報に基づいて、エラーメッセージおよびその出力元プログラム名等の情報を表示部１２に図６に示すように一覧表示する。
【００２３】
メッセージ検出部２３は、コンピュータシステム内のプログラムソースから、ログファイルに出力されるメッセージを取得する。
メッセージの具体的な取得の方法としては、プログラムソース内を、ログファイルに書込を行う関数名等のキーワード（例えばlinux環境でログファイルにメッセージを表示するprintk関数等）で検索して、メッセージを取得する。なお、このキーワードはメッセージ検出部２３自体に記憶されていてもよいし、または外部のデータベース等に記憶されているものであってもよい。
具体的には、例えばプログラムソース内に、"printk("klogd startup succeeded");"と記述されていれば、メッセージ検出部２３はメッセージ"klogd startup succeeded."を取得する。また、プログラムソース内に、"printk("Warning:acpi_table_parse(ACPI_SLIT) returned %d\n",result);"という形で、出力されるメッセージに可変部分（この場合は%dが変数resultの値に伴って変わる可変部分）がある場合は、可変部分を削除したメッセージ"Warning:acpi_table_parse(ACPI_SLIT) returned"を取得する。
【００２４】
メッセージ情報登録部２４は、メッセージ検出部２３によって検出されたメッセージをキーにしてメッセージ情報ＤＢ内を検索する。そして、メッセージ情報ＤＢ内にそのレコードが存在していない場合は、新たにメッセージ情報ＤＢにそのメッセージおよび、そのメッセージ情報（出力元プログラム名、カーネルバージョン等）を記憶する。
【００２５】
次に、ログファイル解析処理の動作について図５のフローチャートを用いて説明する。
【００２６】
ログファイル解析処理は、ユーザが入力部１１から、ログファイル解析処理を開始するための情報を入力し、その入力情報が制御部１４に送信されたときに行われる。
【００２７】
まず、制御部１４は、ログファイルのメッセージ部を検索して、エラーメッセージがないか検索する（ステップＳ０１）。
【００２８】
そして、エラーメッセージが検索できなかった場合（ステップＳ０２；Ｎｏ）、制御部１４は、ログファイルにエラーメッセージは出力されていないことを示すメッセージを表示部１２に表示して（ステップＳ０４）、処理を終了する。
【００２９】
エラーメッセージが検出された場合は（ステップＳ０２；Ｙｅｓ）、そのエラーメッセージをキーにして、メッセージ情報ＤＢを検索する（ステップＳ０３）。
【００３０】
検索した結果そのエラーメッセージをキーに持つレコードがメッセージ情報ＤＢにある場合（ステップＳ０５；Ｙｅｓ）、そのレコード内に格納されているメッセージ情報とエラーメッセージとを対応づけて表示部１２に表示させて（ステップＳ０９）、処理を終了する。
【００３１】
検索した結果そのエラーメッセージをキーに持つレコードがメッセージ情報ＤＢにない場合（ステップＳ０５；Ｎｏ）、制御部１４はプログラムソースから、ログファイルに出力するメッセージとそのプログラム名称等のメッセージ情報を検出する（ステップＳ０６）。そして、制御部１４は、検出したメッセージが未だメッセージ情報ＤＢに記憶されていない場合、そのメッセージとメッセージ情報を対応づけてメッセージ情報ＤＢに登録する（ステップＳ０７）。
【００３２】
そして、制御部１４は、再度エラーメッセージをキーにしてメッセージ情報ＤＢ内を先ほど検索したエラーメッセージをキーにして検索し（ステップＳ０８）、検出されたレコード内に格納されているメッセージ情報とエラーメッセージとを表示部１２に表示させて（ステップＳ０９）、処理を終了する。
【００３３】
このように、ログファイルからエラーメッセージを取得すると共に、それに関連する情報(エラーメッセージの出力元のプログラムの名称等）を抽出することができる。
【００３４】
なお、本発明は上記実施の形態に限定されず、種々の変形および応用が可能である。
【００３５】
例えば、本実施の形態では、まず制御部１４は、ログファイルからエラーメッセージを検出する。そして、制御部１４は、そのエラーメッセージでメッセージ情報ＤＢを検索して、検索できなかった場合に限り、プログラムソースからログファイルに書き込むメッセージを検索して、それをメッセージＤＢに登録する処理（メッセージ情報登録処理）を行ったが、単独でメッセージ情報登録処理のみを行っても良い。
また、ユーザーが手動でメッセージ情報ＤＢにメッセージ情報の変更や追加を行ってもよい。
【００３６】
例えば、本実施の形態では、ログファイルからエラーメッセージを検出し、そのエラーメッセージの出力元プログラム名を取得したが、これに限るものでなく、例えば、ログファイルから入出力操作に関連するメッセージのみを検出し、その検出したメッセージの出力元プログラム名を取得するようにしてもよく、ログファイルに出力されているメッセージから検出する条件は任意である。
【００３７】
なお、本実施の形態では、ログファイルエラー解析処理を実現するためのプログラムは記憶部１３に記憶されているとしたが、これに限るものでなく、例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体（ＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ等）に格納して配布し、該プログラムをコンピュータにインストールすることにより、ログファイルエラー解析処理を行ってもよい。また、インターネット等のネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えばコンピュータにダウンロード等するようにしてもよい。
また、上述の機能を、ＯＳが分担又はＯＳとアプリケーションの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【図面の簡単な説明】
【００３８】
【図１】本実施の形態に係るコンピュータシステムのブロック図である。
【図２】本実施の形態に係るログファイル解析処理の機能構成図である。
【図３】ログファイルに書き込まれている情報の例を示した図である。
【図４】メッセージ情報データベースに記憶されている情報の例を示した図である。
【図５】本実施の形態に係るログファイル解析処理を説明するためのフローチャートである。
【図６】エラー情報解析結果を示す表示画面の例である。
【符号の説明】
【００３９】
２１  エラーメッセージ検出部
２２  メッセージ情報採取部
２３  メッセージ検出部
２４  メッセージ情報登録部
２５  出力データ表示部
【図１】
2007265307.tif 000003
【図２】
2007265307.tif 000004
【図３】
2007265307.tif 000005
【図４】
2007265307.tif 000006
【図５】
2007265307.tif 000007
【図６】
2007265307.tif 000008