(57)【要約】  ログの格納容量を削減しつつ、ログの検索時間を短縮するログ管理計算機を提供することを目的とする。  動作記録であるログを生成するログ生成システムから取得したログを管理するログ管理計算機であって、ログに含まれるログメッセージから、他のログメッセージと共通する共通部分と他のログメッセージと相違する相違部分とを抽出し、抽出した共通部分を記憶領域の共通部分情報に格納し、抽出した相違部分を記憶領域の相違部分情報に格納し、検索条件を含む検索要求を受け付けた場合、検索条件と一致するログメッセージを検索することを特徴とする。
2013136418.tif 000002
【特許請求の範囲】
【請求項１】
動作記録であるログを生成するログ生成システムから前記ログを取得し、前記取得したログを管理するログ管理計算機であって、
前記ログ管理計算機は、
前記取得したログを記憶する記憶領域と、
前記記憶領域に記憶されたログを参照するプロセッサと、を備え、
前記プロセッサは、
前記ログ生成システムから取得したログに含まれるログメッセージから、他のログメッセージと共通する共通部分と他のログメッセージと相違する相違部分とを抽出し、
前記抽出した共通部分を前記記憶領域の共通部分情報に格納し、
前記抽出した相違部分を前記記憶領域の相違部分情報に格納し、
検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログメッセージを検索することを特徴とするログ管理計算機。
【請求項２】
請求項１に記載のログ管理計算機であって、
前記共通部分情報及び前記相違部分情報は、同じログメッセージから抽出された共通部分と相違部分とを関連付けるための識別情報を含むことを特徴とするログ管理計算機。
【請求項３】
請求項２に記載のログ管理計算機であって、
前記プロセッサは、
前記検索要求を受け付けた場合、前記共通部分情報に格納された共通部分から前記検索条件と一致する共通部分を選択し、
前記相違部分情報に相違部分から前記選択した共通部分に関連付けられる前記相違部分を選択し、
前記選択された相違部分と前記選択された共通部分とを結合することによって、前記相違部分及び前記共通部分をログメッセージに復元し、
前記復元したログメッセージを前記検索条件と一致するログメッセージとして出力することを特徴とするログ管理計算機。
【請求項４】
請求項３に記載のログ管理計算機であって、
前記プロセッサは、
前記共通部分情報に格納された共通部分を構成する単語を抽出し、前記抽出した単語、及び前記抽出した単語と前記単語が抽出された共通部分とを関連付ける情報を含む索引情報を前記記憶領域に格納し、
前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記索引情報を参照することによって、前記検索条件と一致する共通部分を選択することを特徴とするログ管理計算機。
【請求項５】
請求項２に記載のログ管理計算機であって、
前記プロセッサは、
前記検索要求を受け付けた場合、前記相違部分情報として格納された相違部分から前記検索条件と一致する相違部分を選択し、
前記共通部分情報として格納された共通部分から前記選択した相違部分に関連付けられる前記共通部分を選択し、
前記選択された相違部分と前記選択された共通部分とを結合することによって、前記相違部分及び前記共通部分をログメッセージに復元し、
前記復元したログメッセージを前記検索条件と一致するログメッセージとして出力することを特徴とするログ管理計算機。
【請求項６】
請求項１に記載のログ管理計算機であって、
前記記憶領域は、抽出する相違部分が予め定義された相違部分定義情報を記憶し、
前記プロセッサは、
前記一つのログメッセージから前記相違部分定義情報と一致する部分を前記相違部分として抽出し、
前記一つログメッセージの前記抽出された相違部分以外を前記共通部分として抽出し、
前記抽出された共通部分が前記共通部分情報に格納されていなければ、前記抽出された共通部分を前記共通部分情報に格納することを特徴とするログ管理計算機。
【請求項７】
請求項１に記載のログ管理計算機であって、
前記プロセッサは、
前記一つのログメッセージが前記共通部分情報に格納されたいずれかの共通部分のすべての部分を含む場合、前記一つのログメッセージから、前記共通部分情報に格納された当該共通部分と一致しない部分を前記相違部分として抽出し、前記一つのログメッセージから前記相違部分として抽出された部分以外の部分を前記共通部分として抽出し、
前記一つのログメッセージが、前記共通部分情報に格納されたいずれの共通部分のすべての部分を含まない場合、前記一つのログメッセージを前記記憶領域の仮共通部分情報に格納することを特徴とするログ管理計算機。
【請求項８】
請求項７に記載のログ管理計算機であって、
前記プロセッサは、
前記仮共通部分情報に格納されたログメッセージから、前記仮共通部分情報に格納された他のログメッセージと共通する共通部分を抽出し、前記仮共通部分情報に格納された他のログメッセージと相違する相違部分を抽出し、
前記抽出した共通部分を前記記憶領域の前記共通部分情報に格納し、前記抽出した相違部分を前記記憶領域の前記相違部分情報に格納することを特徴とするログ管理計算機。
【請求項９】
動作記録であるログを生成するログ生成システムから前記ログを取得し、前記取得したログを管理するログ管理計算機であって、
前記ログは、定型部分と動作内容を示すログメッセージを含む非定型部分とを含み、
前記ログ管理計算機は、
前記取得したログを記憶する記憶領域と、
前記記憶領域に記憶されたログを参照するプロセッサと、を備え、
前記プロセッサは、
前記ログ生成システムから取得したログから、前記定型部分及び前記非定型部分を抽出し、前記抽出した定型部分を前記記憶領域の定型部分情報に格納し、
前記抽出した非定型部分から、他のログに含まれる非定型部分と共通する共通部分、及び前記他のログに含まれる非定型部分と相違する相違部分を抽出し、
前記抽出した共通部分を前記記憶領域の共通部分情報に格納し、
前記抽出した相違部分を前記記憶領域の相違部分情報に格納し、
検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログを検索することを特徴とするログ管理計算機。
【請求項１０】
請求項９に記載のログ管理計算機であって、
前記定型部分情報、前記共通部分情報、及び前記相違部分情報は、同じログから抽出された定型部分と共通部分と相違部分とを関連付けるための識別情報を含み、
前記プロセッサは、
前記共通部分情報に格納された共通部分を構成する単語を抽出し、前記抽出した単語、及び前記抽出した単語と前記単語が抽出された共通情報とを関連付ける情報を含む索引情報を前記記憶領域に格納し、
前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記索引情報を参照することによって、前記検索条件と一致する共通部分を選択し、
前記相違部分情報に格納された相違部分から前記選択した共通部分に関連付けられる前記相違部分を選択し、
前記定型部分情報に格納された定型部分から前記選択した共通部分に関連付けられる前記定型部分を選択し、
前記選択された共通部分と、前記選択された相違部分と、前記選択された定型部分文と、を結合することによって、前記定型部分、前記共通部分及び前記相違分部分をログに復元し、
前記復元したログを前記検索条件と一致するログとして出力することを特徴とするログ管理計算機。
【請求項１１】
請求項９に記載のログ管理計算機であって、
前記定型部分情報、前記共通部分情報、及び前記相違部分情報は、同じログから抽出された定型部分と共通部分と相違部分とを関連付けるための識別情報を含み、
前記プロセッサは、
前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記相違部分情報に格納された相違部分から前記検索条件と一致する相違部分を選択し、
前記共通部分情報に格納された共通部分から前記選択した相違部分に関連付けられる前記共通部分を選択し、
前記定型部分情報に格納された定型部分から前記選択した相違部分に関連付けられる前記定型部分を選択し、
前記選択された共通部分と前記選択された相違部分と前記選択された定型部分文と結合することによって、前記定型部分、前記共通部分及び前記相違分部分をログに復元し、
前記復元したログを前記検索条件と一致するログとして出力することを特徴とするログ管理計算機。
【請求項１２】
請求項１１に記載のログ管理計算機であって、
前記プロセッサは、
前記非定型部分から前記相違部分を抽出した場合、前記抽出した相違部分の種別を特定し、
前記抽出した相違部分を前記特定した種別に対応する相違部分情報に格納し、
前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記検索要求に含まれるキーワードの種別を特定し、
前記特定したキーワードの種別に対応する相違部分情報から前記キーワードと一致する相違部分を選択することを特徴とするログ管理計算機。
【請求項１３】
請求項９に記載のログ管理計算機であって、
前記プロセッサは、
前記抽出された非定型部分が、前記共通部分情報に格納されたいずれかの共通部分のすべての部分を含む場合、前記抽出された非定型部分から、前記共通部分情報に格納された当該共通部分と一致しない部分を前記相違部分として抽出し、前記一つのログメッセージから前記相違部分として抽出された部分以外の部分を前記共通部分として抽出し、
前記抽出された非定型部分が、前記共通部分情報に格納されたいずれの共通部分のすべての部分を含まない場合、前記抽出された非定型部分を前記記憶領域の仮共通部分情報に格納し、
前記仮共通部分情報に格納された非定型部分から、前記仮共通部分情報に格納された他の非定型部分と共通する共通部分を抽出し、前記仮共通部分情報に格納された他の非定型部分と相違する相違部分を抽出し、
前記抽出した共通部分を前記共通部分情報に格納し、前記抽出した相違部分を前記相違部分情報に格納することを特徴とするログ管理計算機。
【請求項１４】
請求項１３に記載のログ管理計算機であって、
前記プロセッサは、
前記仮共通部分情報に格納された非定型部分文を出力し、
前記出力された非定型部分文の少なくとも一つの非定型部分の相違部分を指定した管理者の入力を受け付けた場合、前記相違部分の入力を受け付けた非定型部分から前記指定された部分を前記相違部分として抽出し、前記指定された部分以外を前記共通部分として抽出することを特徴とするログ管理計算機。
【請求項１５】
プロセッサ及び記憶領域を有し、動作記録であるログを生成するログ生成システムから前記ログを取得するログ管理計算機における、前記取得したログを管理するログ管理方法であって、
前記方法は、
前記記憶領域に記憶されたログに含まれるログメッセージから、他のログメッセージと共通する共通部分と他のログメッセージと相違する相違部分とを抽出するステップと、
前記抽出された共通部分を前記記憶領域の共通部分情報に格納するステップと、
前記抽出された相違部分を前記記憶領域の相違部分情報に格納するステップと、
検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログメッセージを検索するステップと、を含むことを特徴とするログ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作記録であるログを生成するログ生成システムからログを取得し、取得したログを管理するログ管理計算機に関し、特に、取得したログを格納し、取得したログから所定のログを検索するログ管理計算機に関する。
【背景技術】
【０００２】
ログは、機器等の動作記録である。通常、ログを構成する１行は、ログ生成システムの一つの動作記録である。ログ管理システムは、ログ生成システムによって生成されたログを収集し、収集したログを記憶領域に蓄積する。そして、ログ管理システムは、ユーザからの検索要求に応じて、蓄積されたログから検索要求と一致するログを検索し、検索結果を返す。【０００３】
ログ生成システムは、例えば、各種製造装置、各種組込み機器、並びに、サーバ装置、ストレージ装置、及びネットワーク装置等のＩＴ（Information Technology）機器等である。【０００４】
ログ生成システムによって生成されるログには、定型ログと非定型ログとがある。定型ログは、各種製造装置及び組込み機器等によって生成される場合が多い。図２６に示すように、定型ログは出力形式が定型的である。【０００５】
また、非定型ログは、ＯＳ、ミドルウェア、及びアプリケーション等を実行するＩＴ機器によって生成される場合が多い。図２７に示すように、非定型ログは出力形式が行毎に異なる非定型である。【０００６】
ログ生成システムは、ログをテキスト形式でログ管理システムに送信する。なお、ログ生成システムは、テキスト形式のログを所定の方式でエンコードすることによって、テキスト形式のログをバイナリ形式に変換し、バイナリ形式に変換したログをログ管理システムに送信してもよい。【０００７】
ログ管理システムは、ログ生成システムによって送信されたログを受信した場合、受信したログを送信されたままの形式等でファイルシステム等に格納してもよいし、リレーショナルデータベースのようなデータベースに格納してもよい。【０００８】
定型ログを格納するデータベースである定型ログデータベースを図２８に示す。定型ログは出力形式が定型的であるので、定型ログデータベースは、定型ログの出力形式に合わせてスキーマが設計されるリレーショナルデータベースであればよい。【０００９】
非定型ログを格納するデータベースである非定型ログデータベースを図２９に示す。【００１０】
非定型ログの各行で共通する部分（図２７に示す日時３０２、レベル３０３、ホスト名３０４）は、対応するカラムに格納される。例えば、非定型ログの日時３０２は図２９に示すｄａｔｅｔｉｍｅ５０２に登録され、非定型ログのレベル３０３は図２９に示すｌｅｖｅｌ５０３に登録され、非定型ログのホスト名５０４は図２９に示すｈｏｓｔ５０４に登録される。【００１１】
非定型ログのメッセージ３０５は各行で異なるので、各メッセージ３０５を構成する各単語型は、型の定まった共通のカラムに登録できない。そこで、一般的には、非定型ログのメッセージ３０５は、そのままｍｓｇ５０５に格納される。【００１２】
前述したように、ログは機器等の動作の記録であるので、記録時間に比例してログの格納容量は増大する。また、管理すべきログ生成システムの数に比例してログの格納容量も増大する。【００１３】
ログの格納容量の増大という問題に対して、ある程度まとまった数のログを圧縮し、圧縮したログを格納することによってログの格納容量を低減し、圧縮されたログを解凍してからログ検索する方法が知られている（例えば、特許文献１参照）。【００１４】
また、ログを出力する機器の動作の種類は限られているので、ログが示す動作記録の種類も限られる。このため、長時間のログには、同じ動作記録の種類のログが複数存在する。そこで、定型ログに含まれる各データのうち所定の割合以上で出現するデータであって、同じ内容を示すデータをまとめて集約テーブルに格納し、他のデータを、通常のログを格納するテーブルに格納する方法が知られている（例えば、特許文献２参照）。これによって、ログの格納容量を低減できる。【００１５】
一方、ログを検索する場合にかかる検索時間を短縮するという問題もある。テキストファイルとして格納されたログを検索する場合には、一般的に、すべてのログのすべての内容を検索することによって、検索条件となるキーワードを含むログを抽出する。例えば、ＵＮＩＸ（登録商標）のｇｒｅｐコマンドは、上述した検索方法を採用する。定型ログをリレーショナルデータベースで管理する場合、リレーショナルデータベースのカラムにインデックスを付加することによって、全件検索を防止する方法も知られている。【００１６】
しかしながら、非定型ログのリレーショナルデータベースは、ｍｓｇ５０５にインデックスを付加できないので、ｍｓｇ５０５に登録された部分の検索は全件検索となるという問題がある。【００１７】
そこで、ｍｓｇ５０５に登録された単語を抽出し、抽出した単語をインデックスとしてｍｓｇ５０５に付加することによって、全件検索を防止し、検索時間を短縮する方法が知られている（例えば、非特許文献１参照）。また、例えば、ｄａｔｅｔｉｍｅ５０２のようなログのタイムスタンプにインデックスを付加し、検索時間を短縮する方法も知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００４−１８５４６０号広報
【特許文献２】特開２００９―１６９４７４号広報
【非特許文献】
【００１９】
【非特許文献１】Roger Ford、"Oracle Text An Oracle Technical White Paper"、２００７年６月、p.5-9
【非特許文献２】Ledion Bitincka、 Archana Ganapathi、 Stephen Sorkin、 and Steve Zhang、"Optimizing Data Analysis with a Semi-structured Time Series Database"、USENIX Association、２０１０年、p.4-5
【発明の概要】
【発明が解決しようとする課題】
【００２０】
特許文献１の方法によれば、ログの格納容量を削減できる。しかし、特許文献１の方法では、ログを格納する場合のログの圧縮時間、及び、ログを検索する場合のログの解凍時間が必要であるので、ログの格納時間及びログの検索時間に時間がかかってしまう。【００２１】
特許文献２の方法によれば、非定型ログの格納容量を削減できる。例えば、図２９に示す非定型ログのリレーショナルデータベースでは、ｌｅｖｅｌ５０３及びｈｏｓｔ５０４には、他の行と同じ内容が所定の割合以上で登録されているので、これらを集約テーブルにまとめて登録することが可能である（図３０Ａ及び図３０Ｂ参照）。図３０Ａは、非定型ログのｄａｔｅｔｉｍｅ及びｍｓｇが格納されたデータテーブルであり、図３０Ｂは、非定型ログのｌｅｖｅｌ及びｈｏｓｔが格納された集約テーブルである。これによって、非定型ログのｌｅｖｅｌ及びｈｏｓｔを集約した分のログの格納容量は削減できる。しかしながら、非定型ログの大部分を占めるｍｓｇは共通するログが少ないので集約できない。したがって、ログの格納容量はほとんど削減できない。【００２２】
一方、非定型のログの検索時間の問題に関して、非特許文献１及び非特許文献２の方法は、インデックス検索を可能とするので、検索時間は短縮される。しかし、非特許文献１及び非特許文献２の方法は、ログの格納容量を削減するという課題は解決できない。【００２３】
本発明は、ログの格納容量を削減しつつ、ログの検索時間を短縮するログ管理計算機を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、動作記録であるログを生成するログ生成システムから前記ログを取得し、前記取得したログを管理するログ管理計算機であって、前記ログ管理計算機は、前記取得したログを記憶する記憶領域と、前記記憶領域に記憶されたログを参照するプロセッサと、を備え、前記プロセッサは、前記ログ生成システムから取得したログに含まれるログメッセージから、他のログメッセージと共通する共通部分と他のログメッセージと相違する相違部分とを抽出し、前記抽出した共通部分を前記記憶領域の共通部分情報に格納し、前記抽出した相違部分を前記記憶領域の相違部分情報に格納し、検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログメッセージを検索することを特徴とする。
【発明の効果】
【００２５】
本発明の一態様よれば、ログの格納容量を削減しつつ、ログの検索時間を短縮できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１実施形態の情報処理システムの構成図である。
【図２】本発明の第１実施形態のログ管理計算機及びストレージデバイスのブロック図である。
【図３】本発明の第１実施形態のＬｏｇ  ｔａｂｌｅの説明図である。
【図４】本発明の第１実施形態のＣｏｍｍｏｎ  ｔａｂｌｅの説明図である。
【図５】本発明の第１実施形態のＴｅｒｍ  ｔａｂｌｅの説明図である。
【図６】本発明の第１実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅの説明図である。
【図７】本発明の第１実施形態のＶａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅの説明図である。
【図８】本発明の第１実施形態のＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅの説明図である。
【図９】本発明の第１実施形態のＶａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅに基づくログの格納処理のフローチャートである。
【図１０】本発明の第１実施形態のＣｏｍｍｏｎ  ｔａｂｌｅに基づくログの格納処理のフローチャートである。
【図１１】本発明の第１実施形態の検索処理のフローチャートである。
【図１２】本発明の第１実施形態のＴｅｒｍ  ｔａｂｌｅに基づく検索処理のフローチャートである。
【図１３】本発明の第１実施形態のＴｅｒｍ  ｔａｂｌｅに基づく検索処理の説明図である。
【図１４】本発明の第１実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅに基づく検索処理のフローチャートである。
【図１５】本発明の第１実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅに基づく検索処理の説明図である。
【図１６】本発明の第１実施形態の再構成プログラムによる再構成処理のフローチャートである。
【図１７】本発明の第１実施形態のログ表示画面の説明図である。
【図１８】本発明の第１実施形態の確認画面の説明図である。
【図１９】本発明の第２実施形態のＬｏｇ  ｔａｂｌｅの説明図である。
【図２０】本発明の第３実施形態のＬｏｇ  ｔａｂｌｅの説明図である。
【図２１】本発明の第３実施形態のＴｅｒｍ  ｔａｂｌｅの説明図である。
【図２２】本発明の第３実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅの説明図である。
【図２３】本発明の第３実施形態の変形例のＴｅｒｍ−ｉＤ  ｔａｂｌｅの説明図である。
【図２４】本発明の第３実施形態の変形例のＴｅｒｍｉｄ−ｃｏｍｍｏｎｉｄ  ｔａｂｌｅ１１１１の説明図である。
【図２５Ａ】本発明の第４実施形態の種別が数字列であるＮｕｍｂｅｒ  ｖａｒｉａｂｌｅ  ｔａｂｌｅの説明図である。
【図２５Ｂ】本発明の第４実施形態の種別が文字列であるＳｔｒｉｎｇ  Ｖａｒｉａｂｌｅ  ｔａｂｌｅの説明図である。
【図２５Ｃ】本発明の第４実施形態の種別がＩＰアドレスであるＩＰａｄｄｒｅｓｓ  ｖａｒｉａｂｌｅ  ｔａｂｌｅの説明図である。
【図２６】従来の定型ログの説明図である。
【図２７】従来の非定型ログの説明図である。
【図２８】従来の定型ログのリレーショナルデータベース説明図である。
【図２９】従来の非定型ログのリレーショナルデータベース説明図である。
【図３０Ａ】従来の非定型ログのｄａｔｅｔｉｍｅ及びｍｓｇが格納されたデータテーブルの説明図である。
【図３０Ｂ】従来の非定型ログのｌｅｖｅｌ及びｈｏｓｔが格納された集約テーブルである。
【発明を実施するための形態】
【００２７】
以下、図面を参照しつつ、本発明を実施するための形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２８】
（第１実施形態）
以下において、本発明の第１実施形態について図１〜図１８を用いて説明する。
【００２９】
図１は、本発明の第１実施形態の情報処理システムの構成図である。
【００３０】
情報処理システムは、ログ管理計算機１０１、ログ生成システム１０５、管理者端末１０３、クライアント端末１０４、及びログ収集システム１０６を有する。ログ管理計算機１０１はストレージデバイス１０２を有する。
【００３１】
ログ生成システム１０５は、ネットワーク１０７及びログ収集システム１０６を介してログ管理計算機１０１に接続される。
【００３２】
管理者端末１０３は、ネットワーク１０８を介してログ管理計算機１０１に接続される。なお、管理者端末１０３は、ログ管理計算機１０１に直接接続されてもよい。
【００３３】
クライアント端末１０４は、ネットワーク１０９を介してログ管理計算機１０１に接続される。なお、クライアント端末１０４は、ログ管理計算機１０１に直接接続されてもよい。
【００３４】
ログ管理計算機１０１は、ネットワーク１１０を介してストレージデバイス１０２に接続される。なお、ログ管理計算機１０１は、ストレージデバイス１０２に直接接続されてもよい。
【００３５】
ネットワーク１０７〜１１０は、専用線、インターネット等の広域網、及びＬＡＮ（Local Area Network）等のローカルなネットワークであればよい。なお、ネットワーク１０７〜１１０のうち、少なくとも一組が同じネットワークであってもよい。
【００３６】
ログ生成システム１０５は、動作記録をログとして生成するシステムである。ログ生成システム１０５は、自身の動作記録をログとして生成してもよいし、他の装置の動作記録をログとして生成してもよい。ログ生成システム１０５は、各種製造装置、各種組込み機器、並びに、サーバ装置、ストレージ装置、及びネットワーク装置等のＩＴ（Information Technology）機器等の少なくとも一つを含むが、これら以外の装置を含んでもよい。
【００３７】
ログ管理計算機１０１は、ログ生成システム１０５によって生成されたログを取得し、取得したログを管理する。ログ管理計算機１０１は、ログ収集システム１０６によって取得された所定時間分のログを取得してもよい。また、ログ収集システム１０６は、ログ管理計算機１０１と同一の機器内に実装されていてもよい。ログ生成システム１０５は、ネットワーク１０７及びログ収集システム１０６を介してログ管理計算機１０１に接続される必要はなく、ログ収集システム１０６を介さずネットワーク１０７を介して接続されてもよい。
【００３８】
また、ログ管理計算機１０１は、ログ生成システム１０５からネットワーク１０７又はログ収集システム１０６を介してログを取得せずに、ログ生成システム１０５によって生成されたログを記憶した何らかの記憶媒体（例えば、可搬型記憶媒体等）からログを取得してもよい。この場合、ログ生成システム１０５は、ログ管理計算機１０１に接続されている必要はない。
【００３９】
ログ管理計算機１０１は、取得したログをストレージデバイス１０２に記憶する。ストレージデバイス１０２は、ログ管理計算機１０１と同一の機器内に実装されていてもよい。この場合、ログ管理計算機１０１とストレージデバイス１０２とを接続するネットワーク１１０は不要である。
【００４０】
管理者端末１０３は、ログ管理計算機１０１の管理者が操作する計算機であり、図示しないプロセッサ及び記憶領域を有し、ログ管理計算機１０１の各種設定などの入力を受け付ける。管理者端末１０３は、入力を受け付けた場合、入力情報をログ管理計算機１０１に送信する。なお、管理者が直接ログ管理計算機１０１を操作可能な環境では、情報処理システムは管理者端末１０３を備えなくてもよい。
【００４１】
クライアント端末１０４は、図示しないプロセッサ及び記憶領域を有し、ログの検索要求をログ管理計算機１０１に送信する。ログ管理計算機１０１は、検索要求を受信した場合、ログの検索処理を実行し、検索結果をクライアント端末１０４に送信する。なお、ログ管理計算機１０１に検索要求を直接入力可能な環境では、情報処理システムはクライアント端末１０４を備えなくてもよい。
【００４２】
また、管理者端末１０３及びクライアント端末１０４は同一の機器内に実装されてもよい。
【００４３】
図２は、本発明の第１実施形態のログ管理計算機１０１及びストレージデバイス１０２のブロック図である。
【００４４】
ログ管理計算機１０１は、メモリ６０５、プロセッサ６０６、ディスクインタフェース６０７、入出力デバイス６０８、及びネットワークインタフェース６０９を有する。メモリ６０５、プロセッサ６０６、ディスクインタフェース６０７、入出力デバイス６０８、及びネットワークインタフェース６０９は、バス等によって相互に接続される。
【００４５】
ネットワークインタフェース６０９はネットワーク１０７〜１０９に接続されるインタフェースであり、ログ管理計算機１０１はネットワークインタフェース６０９を介してログ生成システム１０５、管理者端末１０３、及びクライアント端末１０４に接続される。
【００４６】
ディスクインタフェース６０７は、ストレージデバイス１０２に接続されるインタフェースであり、ログ管理計算機１０１はディスクインタフェース６０７を介してストレージデバイス１０２に接続される。
【００４７】
メモリ６０５は、例えばＲＡＭ（Random Access Memory）のような記憶領域によって構成される。入出力デバイス６０８は、例えばキーボード、ポインタデバイス、ディスプレイであるが、これら以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェース又はイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ、キーボード及びポインタデバイスを有する表示用計算機を接続されてもよい。
【００４８】
プロセッサ６０６は、メモリ６０５に格納された情報を参照し、各種演算処理を実行する。
【００４９】
なお、図２では、ログ管理計算機１０１は、プロセッサ６０６、メモリ６０５、及びストレージデバイス１０２をそれぞれ一つずつ有するが、これらを複数有してもよい。また、ログ管理計算機１０１は、プロセッサ６０６、メモリ６０５、及びストレージデバイス１０２を有する複数の機器によって構成されてもよく、また、ストレージデバイス１０２等の一部のデバイスはログ管理計算機１０１以外の機器と共有されてもよい。
【００５０】
メモリ６０５には、格納プログラム６１３、再構成プログラム６１４、及び検索プログラム６１５が記憶され、また、メモリ６０５は、ログを一時的に格納可能なバッファ６１６を有する。これらのプログラム６１３〜６１５はプロセッサ６０６によって実行される。
【００５１】
プロセッサ６０６は、格納プログラム６１３を実行することによって、ログ管理計算機１０１が取得したログをストレージデバイス１０２に格納する格納処理を実行する。格納処理は、図９及び図１０で詳細を説明する。
【００５２】
プロセッサ６０６は、再構成プログラム６１４を実行することによって、蓄積されたログを再構成する再構成処理を実行する。再構成処理は、図１６〜図１８で詳細を説明する。
【００５３】
プロセッサ６０６は、検索プログラム６１５を実行することによって、クライアント端末１０４によって送信された検索要求に基づいてログを検索する検索処理を実行する。検索処理は、図１１〜図１５で詳細を説明する。
【００５４】
上述した格納処理、再構成処理、及び検索処理は、その一部又はすべてを集積回路化する等してハードウェアで実現してもよい。
【００５５】
ストレージデバイス１０２には、Ｌｏｇ  ｔａｂｌｅ６２１、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３、Ｔｅｒｍ  ｔａｂｌｅ６２４、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５、及びＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６が格納される。
【００５６】
Ｌｏｇ  ｔａｂｌｅ６２１には、ログの定型部分が格納される。Ｌｏｇ  ｔａｂｌｅ６２１は図３で詳細を説明する。Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２には、他のログと共通する共通部分が格納される。Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２は、図４で詳細を説明する。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３には、他のログと相違する相違部分である変数部分（相違部分）が格納される。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３は、図５で詳細を説明する。Ｔｅｒｍ  ｔａｂｌｅ６２４には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に格納された共通部分を構成する単語、及び単語と当該単語が抽出された共通部分とを関連付ける情報を含む索引情報が格納される。Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２は、図６で詳細を説明する。
【００５７】
Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５には、予め設定された変数部分の定義が登録される。Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５は、図７で詳細を説明する。Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に格納されたいずれの共通部分にも一致しないログが格納される。Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６は、図８で詳細を説明する。
【００５８】
本実施形態では、各テーブル６２１〜６２６を格納する記憶媒体は、ストレージデバイス１０２に限定されず、フラッシュメモリを用いた半導体ディスクデバイス、及び光ディスクデバイス等の、永続的にデータを保持可能な記憶媒体であればよい。
【００５９】
また、各テーブル６２１〜６２６は、例えばリレーショナルデータベースのテーブルとして説明するが、ファイルシステム上に格納された少なくとも一つのファイルとファイルにアクセスするためのプログラムなど、テーブルとして表現できる手法であれば、どのようなものをテーブルとして用いてもよい。例えば、ファイル内にテキスト形式のまま、又は何らかのバイナリ形式などでテーブルを表現することが考えられるが、これに限定されるものではない。
【００６０】
ここで、本実施形態の処理対象のログについて説明する。
【００６１】
本実施形態の処理対象のログの例としては、ログ生成システム１０５で起動するオペレーティングシステムが出力するｓｙｓｌｏｇ、又は、Ｗｅｂサーバであるログ生成システム１０５が出力するアクセスログ等の非定型ログがある。しかし、本実施形態の処理対象のログは、ｓｙｓｌｏｇ及びアクセスログに限定されるものではない。
【００６２】
図２７を用いて非定型ログについて説明する。
【００６３】
ログの１行がログ生成システム１０５の一つの動作を示す場合が多いが、ログの複数行がログ生成システム１０５の一つの動作を示す場合もある。
【００６４】
図２７では、ログ３０１は、日時３０２、レベル３０３、ホスト名３０４、及びログメッセージ３０５を含む。日時３０２はログが出力された日時を示し、レベル３０３はログの重要度を示す。ホスト名３０４はログの動作を実行したログ生成システム１０５に含まれるホストの識別情報を示す。ログメッセージ３０５は動作の内容を示す。本実施形態では、ログ３０１の定型部分文は日時３０２及びホスト名３０４を含み、非定型部分はレベル３０３及びログメッセージ３０５を含む。
【００６５】
なお、図２７では、ログ３０１は、カンマ及び改行によって区切られたＣＳＶ形式である。図２７に示す１行目のログ３０１は、２０１１年８月５日９時４分５３秒に、ログレベルｉｎｆｏのログメッセージ"ａｐａｃｈｅ＠［１２３４５］  ［ｃｌｉｅｎｔ  １９２．１６８．１．１２８］：  ｃａｎｎｏｔ  ｆｉｎｄ  ／ｖａｒ／ｗｗｗ／ｆａｖｉｃｏｎ．ｉｃｏ"がホストｈｏｓｔ１で発生したことを示す。なお、ログに含まれる内容は、図２７に限定されない。
【００６６】
次に、図２７に示すログをそのままテーブルに格納した場合について、図２９を用いて説明する。図２９に示すテーブルは、ＩＤ５０１、日時５０２、レベル５０３、ホスト名５０４、及びログメッセージ５０５を含む。日時５０２にはログ３０１の日時３０２が格納され、レベル５０３にはログ３０１のレベル３０３が格納され、ホスト名５０４にはログ３０１のホスト名３０４が格納され、ログメッセージ５０５にはログ３０１のログメッセージ３０５が格納される。ＩＤ５０１には、ログを識別するための識別情報が格納される。
【００６７】
ログメッセージ５０５には、ログ３０１のログメッセージ３０５がフリーテキストで一つカラムに格納される。このようなフリーテキストで出力されるログメッセージから意味のある構造に変換することは難しいため、ログメッセージ３０５は、そのまま一つのログメッセージ５０５に格納される。
【００６８】
このため、本実施形態の格納プログラム６１３は、ログ３０１のログメッセージ３０５から共通部分と変数部分とを抽出し、抽出した共通部分をＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納し、抽出した変数部分をＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納する。
【００６９】
ログメッセージ３０５のメッセージは多種多様であるため、文字列がすべて一致するログメッセージ３０５をまとめることによって容量を削減することは困難である。しかし、ログメッセージ３０５は、一部のみが異なる場合が多い。例えば、図２９に示すテーブルの１行目及び４行目では、クライアントのＩＰアドレスが異なり、その他の部分は同じである。本実施形態では、格納プログラム６１３は、ＩＰアドレス、プロセス識別子（ＰＩＤ）、及びファイル名等の他のログメッセージ３０５と相違する部分を変数部分として抽出し、その他の部分を共通部分として抽出する。なお、変数部分として抽出する部分は、ＩＰアドレス、プロセス識別子（ＰＩＤ）、及びファイル名に限定されない。
【００７０】
なお、ログメッセージ３０５から共通部分及び変数部分を抽出する方法は複数考えられるが、これらの方法については図９及び図１０に示す格納処理で詳細を説明する。
【００７１】
図３は、本発明の第１実施形態のＬｏｇ  ｔａｂｌｅ６２１の説明図である。
【００７２】
Ｌｏｇ  ｔａｂｌｅ６２１には、ログの日時及びホスト名等の定型部分がログ毎に格納する。
【００７３】
Ｌｏｇ  ｔａｂｌｅ６２１は、ｌｏｇｉｄ７０１、ｄａｔｅｔｉｍｅ７０２、ｈｏｓｔ７０３、ｃｉｄ７０４、及びｖｉｄｓ７０５を含む。
【００７４】
ｌｏｇｉｄ７０１には、ログの識別情報が格納される。ｄａｔｅｔｉｍｅ７０２には、ログ３０１の日時３０２が登録される。ｈｏｓｔ７０３には、ログ３０１のホスト名３０４が登録される。
【００７５】
ｃｉｄ７０４には、ｌｏｇｉｄ７０１に登録されたログの識別情報によって識別されるログから抽出された共通部分が格納されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｃｉｄ７１１に登録された識別情報が登録される。
【００７６】
ｖｉｄｓ７０５には、ｌｏｇｉｄ７０１に登録されたログの識別情報によって識別されるログから抽出された変数部分が格納されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖｉｄ７３１に登録された識別情報が登録される。
【００７７】
図４は、本発明の第１実施形態のＣｏｍｍｏｎ  ｔａｂｌｅ６２２の説明図である。
【００７８】
Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２には、ログから抽出された共通部分がまとめて格納される。Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２は、ｃｉｄ７１１、ｌｅｖｅｌ７１２、及びｍｓｇ  ｔｅｍｐｌａｔｅ７１３を含む。
【００７９】
ｃｉｄ７１１には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２の各行の識別情報が登録される。ｌｅｖｅｌ７１２には、共通部分として抽出されたログ３０１のレベル３０３が登録される。ｍｓｇ  ｔｅｍｐｌａｔｅ７１３には、共通部分として抽出されたログ３０１のログメッセージ３０５の変数部分を抜き出した共通部分が登録される。
【００８０】
図４に示すＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目のｍｓｇ  ｔｅｍｐｌａｔｅ７１３には、図２７に示すテーブルの１行目〜４行目のログのログメッセージから変数部分が格納プログラム６１３によって抜き出された共通部分（メッセージテンプレート）が登録される。なお、ログメッセージの変数部分が所定の文字列（例えば、「％ｓ」）に変換されることによって、どの部分が変数部分であったかをログ管理計算機１０１が特定できるようにしている。
【００８１】
なお、格納プログラム６１３は、ログメッセージの変数部分を削除したままの部分を共通部分としてｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録し、削除した部分の先頭からのオフセットを別に記憶しておいてもよい。
【００８２】
また、ログのログメッセージ以外にも共通化可能な部分があれば、格納プログラム６１３は、当該部分を共通化してＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納する。例えば、図４では、ログのレベルがｌｅｖｅｌ７１２に登録される。これは、ログレベルは、通常同じ意味となる文字列となる場合が多いためである。また、格納プログラム６１３は、ログのレベル以外にも共通化できる部分があれば共通化して、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に登録してもよい。
【００８３】
図５は、本発明の第１実施形態のＴｅｒｍ  ｔａｂｌｅ６２４の説明図である。
【００８４】
Ｔｅｒｍ  ｔａｂｌｅ６２４には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分を構成する単語のインデックスが格納される。Ｔｅｒｍ  ｔａｂｌｅ６２４は、ｔｅｒｍ７２１、及びｃｉｄｓ７２２を含む。
【００８５】
ｔｅｒｍ７２１には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分を構成する単語が登録される。ｃｉｄｓ７２２には、ｔｅｒｍ７２１に登録された単語が抽出された共通部分を示すＣｏｍｍｏｎ  ｔａｂｌｅ６２２の行のｃｉｄ７１１に登録された識別情報が登録される。
【００８６】
これによって、検索プログラム６１５は、検索要求を受け付けた場合、Ｔｅｒｍ  ｔａｂｌｅ６２４を参照し、ｔｅｒｍ７２１に登録された単語が検索要求のキーワードと一致するエントリのｃｉｄｓ７２２に登録された識別情報を取得することによって、キーワードと一致する単語が出現する共通部分を特定できる。
【００８７】
例えば、「ａｐａｃｈｅ」が検索要求に含まれるキーワードである場合、検索プログラム６１５は、Ｔｅｒｍ  ｔａｂｌｅ６２４の１行目を参照することによって、「ａｐａｃｈｅ」がＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目（ｃｉｄ：１）及び２行目（ｃｉｄ：２）に出現することを特定できる。
【００８８】
図６は、本発明の第１実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の説明図である。
【００８９】
Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３は、ログメッセージの変数部分が格納される。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３は、ｖｉｄ７３１、ｖａｒｉａｂｌｅ７３２、及びｌｏｇｉｄｓ７３３を含む。
【００９０】
ｖｉｄ７３１には、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３の各行の識別情報が登録される。ｖａｒｉａｂｌｅ７３２には、ログメッセージから抽出された変数部分が登録される。ｌｏｇｉｄｓ７３３には、Ｌｏｇ  ｔａｂｌｅ６２１のｌｏｇｉｄ７０１に登録された識別情報のうち、変数部分が抽出されたログメッセージを含むログに対応する行の識別情報が登録される。
【００９１】
例えば、図２７に示すログの１行目〜４行目のログのログメッセージの変数部分として抽出されたＰＩＤ及びＩＰアドレスがＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納される。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３の１行目は、変数部分として抽出されたＰＩＤ「１２３４５」がＬｏｇ  ｔａｂｌｅ６２１の１行目〜４行目のログから抽出されたことを示す。また、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３の２行目は、変数部分として抽出されたＩＰアドレス「１９２．１６８．１．１２８」がＬｏｇ  ｔａｂｌｅ６２１の１行目及び２行目のログから抽出されたことを示す。
【００９２】
ここで、Ｌｏｇ  ｔａｂｌｅ６２１のｃｉｄ７０４及びｖｉｄｓ７０５は、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｃｉｄ７１１と、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖｉｄ７３１とを関連付ける。換言すれば、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２及びＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３は、お互いを関連付けるための識別情報を含む。
【００９３】
図７は、本発明の第１実施形態のＶａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５の説明図である。
【００９４】
Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５は、管理者によって定義された変数部分の型が登録される。Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５は、ｖｄｉｄ７４１及びＶａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ７４２を含む。
【００９５】
ｖｄｉｄ７４１には、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５の各行の識別情報が登録される。Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ７４２には、管理者によって定義された変数部分の型が登録される。具体的には、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ７４２では、変数部分の型が正規表現を用いて定義される。Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５の１行目では、１文字以上の数字列がプロセスＩＤ（ＰＩＤ）の種別の変数部分の型として定義され、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５の２行目では、ＩＰアドレスを想定して、ピリオドで区切られた数字列がＩＰアドレスの種別の変数部分の型として定義される。
【００９６】
図８は、本発明の第１実施形態のＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６の説明図である。
【００９７】
Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されたいずれの共通部分にも一致しないログのレベル及びログメッセージの非定型部分が一時的に格納される。Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６は、ｔｃｉｄ７５１、ｌｅｖｅｌ７５２、及びｍｓｇ７５３を含む。
【００９８】
ｔｃｉｄ７５１には、Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６の各行の識別情報が登録される。ｌｅｖｅｌ７５２には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されたいずれの共通部分にも対応しないログのレベルが登録される。ｍｓｇ７５３には、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されたいずれの共通部分にも対応しないログのログメッセージが登録される。
【００９９】
再構成プログラム６１４は、所定のタイミングで、Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログメッセージから変数部分を抜き出し、変数部分以外の部分を共通部分として抽出し、抽出した共通部分をＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納する。
【０１００】
なお、格納プログラム６１３が、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されたいずれの共通部分にも対応しないログのログメッセージをそのまま、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録してもよい。この場合、ログ管理計算機１０１は、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２とＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６とを一つのテーブルとして管理できる。
【０１０１】
次に、図９及び図１０を用いて、格納プログラム６１３によるログの格納処理について説明する。
【０１０２】
図９は、本発明の第１実施形態のＶａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５に基づくログの格納処理のフローチャートである。この格納処理は、格納プログラム６１３がプロセッサ６０６によって実行されることによって実行される。
【０１０３】
格納処理は、ログ生成システム１０５によって生成された１行のログを取得したタイミングで実行されるが（１２０１）、これに限定されず、例えば、所定周期で実行されてもよい。なお、ログ収集システム１０６が蓄積した所定数のログをログ管理計算機１０１が取得する場合、ログ管理計算機１０１は、取得したログから１行のログを取得して、格納処理を実行する。
【０１０４】
まず、プロセッサ６０６は、取得したログの定型部分文を抽出し、抽出したＬｏｇ  ｔａｂｌｅ６２１に格納する（１２０２）。具体的には、プロセッサ６０６は、Ｌｏｇ  ｔａｂｌｅ６２１に新たな行を追加し、ｌｏｇｉｄ７０１には当該行の識別情報を登録し、ｄａｔｅｔｉｍｅ７０２にはログに含まれる日時を登録し、ｈｏｓｔ７０３にはログに含まれるｈｏｓｔ７０３を追加する。ステップ１２０２の処理では、ｃｉｄ７０４及びｖｉｄｓ７０５には何も登録しない。
【０１０５】
次に、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５を参照し、取得したログのログメッセージから、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５に登録された変数部分の定義と一致する部分を変数部分として抽出し、取得したログのログメッセージの変数部分以外の部分を共通部分として抽出する（１２０３）。
【０１０６】
次に、プロセッサ６０６は、ステップ１２０３の処理で抽出された変数部分がＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録されているか否かを判定する（１２０４）。
【０１０７】
ステップ１２０３の処理で抽出された変数部分がＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録されていないと、ステップ１２０４の処理で判定された場合、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に新たな行を追加し、ｖｉｄ７３１に当該行の識別情報を登録し、ｖａｒｉａｂｌｅ７３２にはステップ１２０３の処理で抽出された変数部分を登録し、ｌｏｇｉｄｓ７３３にはステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｌｏｇｉｄ７０１に登録された識別情報を登録する（１２０５）。
【０１０８】
次に、プロセッサ６０６は、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｖｉｄｓ７０５に、ステップ１２０５の処理でＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に追加した行のｖｄｉｄ７４１に登録された識別情報を追加する（１２０７）。
【０１０９】
一方、ステップ１２０３の処理で抽出された変数部分がＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録されていると、ステップ１２０４の処理で判定された場合、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録された変数部分がステップ１２０３の処理で抽出された変数部分と一致する行のｌｏｇｉｄｓ７３３に、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｌｏｇｉｄ７０１に登録された識別情報を登録し（１２０６）、ステップ１２０７の処理に進む。この場合のステップ１２０７の処理では、プロセッサ６０６は、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｖｉｄｓ７０５に、ステップ１２０６の処理でＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖｄｉｄ７４１に追加した識別情報を追加する。
【０１１０】
次に、プロセッサ６０６は、ステップ１２０３の処理で抽出された共通部分がＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されているか否かを判定する（１２０８）。
【０１１１】
ステップ１２０３の処理で抽出された共通部分がＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されていないと、ステップ１２０８の処理で判定された場合、プロセッサ６０６は、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に新たな行を追加し、ｃｉｄ７１１には当該行の識別情報を登録し、ｌｅｖｅｌ７１２には共通部分として抽出されたログに含まれるレベルを登録し、ｍｓｇ  ｔｅｍｐｌａｔｅ７１３には共通部分として抽出されたログメッセージを登録する（１２０９）。
【０１１２】
そして、プロセッサ６０６は、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｖｉｄｓ７０５に、ステップ１２０９の処理でＣｏｍｍｏｎ  ｔａｂｌｅ６２２に追加した行のｃｉｄ７１１に登録された識別情報を登録する（１２１０）。
【０１１３】
一方、ステップ１２０３の処理で抽出された共通部分がＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されていると、ステップ１２０８の処理で判定された場合、プロセッサ６０６は、ステップ１２１０の処理に進み、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｃｉｄ７０４に、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された変数部分がステップ１２０３の処理で抽出された共通部分と一致する行のｃｉｄ７１１に登録された識別情報を登録する。
【０１１４】
次に、プロセッサ６０６は、ステップ１２０３の処理で抽出された変数部分を構成する単語を抽出する（１２１１）。
【０１１５】
そして、プロセッサ６０６は、ステップ１２１１の処理で抽出された単語がＴｅｒｍ  ｔａｂｌｅ６２４のｔｅｒｍ７２１に登録されているか否かを判定する（１２１２）。
【０１１６】
ステップ１２１１の処理で抽出された単語がＴｅｒｍ  ｔａｂｌｅ６２４のｔｅｒｍ７２１に登録されていないと、ステップ１２１２の処理で判定された場合、プロセッサ６０６は、Ｔｅｒｍ  ｔａｂｌｅ６２４に新たな行を追加し、ｔｅｒｍ７２１にはステップ１２１１の処理で抽出された単語を登録し、ｃｉｄｓ７２２にはＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された変数部分がステップ１２１１の処理で単語を抽出した変数部分と一致する行のｃｉｄ７１１に登録された識別情報を登録し（１２１３）、処理を終了する。
【０１１７】
一方、ステップ１２１１の処理で抽出された単語がＴｅｒｍ  ｔａｂｌｅ６２４のｔｅｒｍ７２１に登録されていると、ステップ１２１２の処理で判定された場合、プロセッサ６０６は、Ｔｅｒｍ  ｔａｂｌｅ６２４のｔｅｒｍ７２１に登録された単語がステップ１２１１の処理で抽出された単語と一致する行のｃｉｄｓ７２２に、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された変数部分がステップ１２１１の処理で単語を抽出した変数部分と一致する行のｃｉｄ７１１に登録された識別情報を登録し（１２１４）、処理を終了する。
【０１１８】
以上によって、ログの共通部分をまとめてＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納し、ログの変数部分をまとめてＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納するので、ログの格納領域の容量を削減できる。また、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に格納された共通部分はｃｉｄ７１１によって、Ｌｏｇ  ｔａｂｌｅ６２１と関連付けられ、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納された変数部分はｖｉｄ７３１によって、Ｌｏｇ  ｔａｂｌｅ６２１と関連付けられるので、ログ管理計算機１０１は、これらのテーブルを参照することによって、元のログに復元できる。
【０１１９】
図１０は、本発明の第１実施形態のＣｏｍｍｏｎ  ｔａｂｌｅ６２２に基づくログの格納処理のフローチャートである。この格納処理は、格納プログラム６１３がプロセッサ６０６によって実行されることによって実行される。
【０１２０】
なお、図１０に示す処理のうち図９に示す処理と同じ処理は、同じ符号を付与し説明を省略する。また、ログ管理計算機１０１は、図９に示す格納処理及び図１０に示す格納処理のうちどちらか一方の処理で、ログをストレージデバイス１０２に格納すればよい。
【０１２１】
まず、プロセッサ６０６は、ステップ１２０１の処理で、ログ生成システム１０５によって生成された１行のログを取得し、ステップ１２０２の処理で、取得したログの定型部分文を抽出し、抽出したＬｏｇ  ｔａｂｌｅ６２１に格納する。
【０１２２】
次に、プロセッサ６０６は、ステップ１２０１の処理で取得したログに含まれるログメッセージがＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分に対応するか否かを判定するか否かを判定する（１３０１）。
【０１２３】
具体的には、プロセッサ６０６は、ステップ１２０１の処理で取得したログに含まれるログメッセージが、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録されたいずれかの共通部分を構成するすべての文字列を含むかを判定する。
【０１２４】
例えば、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３の１行目に「apache[%s] [client %s]: cannot find /var/www/favicon.ico」が登録され、図２７に示すログの１行目がステップ１２０１の処理で取得された場合について説明する。図２７に示すログの１行目のログメッセージは、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３の１行目の共通部分である「apache」及び「cannot find /var/www/favicon.ico」をすべて含むので、ステップ１３０１の処理では、図２７に示すログの１行目のログメッセージがＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３の１行目に対応すると判定される。
【０１２５】
ステップ１２０１の処理で取得したログに含まれるログメッセージがＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分に対応すると、ステップ１３０１の処理で判定された場合、プロセッサ６０６は、ステップ１２０１の処理で取得したログに含まれるログメッセージから変数部分を抽出する（１３０２）。
【０１２６】
具体的には、プロセッサ６０６は、ステップ１２０１の処理で取得したログに含まれるログメッセージから、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分と一致しない部分を変数部分として抽出する。
【０１２７】
次に、プロセッサ６０６は、ステップ１３０２の処理で抽出された変数部分がＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録されているか否かを判定する（１３０４）。
【０１２８】
ステップ１３０２の処理で抽出された変数部分がＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録されていないと、ステップ１３０４の処理で判定された場合、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に新たな行を追加し、ｖｉｄ７３１に当該行の識別情報を登録し、ｖａｒｉａｂｌｅ７３２にはステップ１３０２の処理で抽出された変数部分を登録し、ｌｏｇｉｄｓ７３３にはステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｌｏｇｉｄ７０１に登録された識別情報を登録する（１３０５）。
【０１２９】
次に、プロセッサ６０６は、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｖｉｄｓ７０５に、ステップ１３０５の処理でＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に追加した行のｖｄｉｄ７４１に登録された識別情報を追加する（１３０７）。
【０１３０】
一方、ステップ１３０２の処理で抽出された変数部分がＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録されていると、ステップ１３０４の処理で判定された場合、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録された変数部分がステップ１３０２の処理で抽出された変数部分と一致する行のｌｏｇｉｄｓ７３３に、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｌｏｇｉｄ７０１に登録された識別情報を登録し（１３０６）、ステップ１３０７の処理に進む。この場合のステップ１３０７の処理では、プロセッサ６０６は、ステップ１２０２の処理でＬｏｇ  ｔａｂｌｅ６２１に追加した行のｖｉｄｓ７０５に、ステップ１３０６の処理でＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖｄｉｄ７４１に追加した識別情報を追加する。
【０１３１】
また、ステップ１２０１の処理で取得したログに含まれるログメッセージがＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分に対応しないと、ステップ１３０１の処理で判定された場合、プロセッサ６０６は、ステップ１２０１の処理で取得したログのレベル及びログメッセージをＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に登録し（１３０３）、処理を終了する。
【０１３２】
図１０による格納処理でも、図９による格納処理と同様に、ログの共通部分をまとめてＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納し、ログの変数部分をまとめてＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納するので、ログの格納領域の容量を削減できる。また、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に格納された共通部分はｃｉｄ７１１によって、Ｌｏｇ  ｔａｂｌｅ６２１と関連付けられ、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納された変数部分はｖｉｄ７３１によって、Ｌｏｇ  ｔａｂｌｅ６２１と関連付けられるので、ログ管理計算機１０１は、これらのテーブルを参照することによって、元のログに復元できる。
【０１３３】
なお、図９では、Ｖａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５を用いてログから変数部分と共通部分とを抽出する方法を説明し、図１０では、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に格納された共通部分を用いてログから変数部分と共通部分とを抽出する方法を説明したが、ログから変数部分と共通部分とを抽出する方法は他にも考えられる。
【０１３４】
例えば、管理者がログ中に変数部分がどこに存在するかの書式を定義し、当該定義を用いてログから変数部分と共通部分とが抽出される方法がある。管理者は、格納されたログを見て、当該書式の定義を設定してもよいし、最初に当該書式の定義を設定してもよい。
【０１３５】
また、計算機がログを出力するプログラムのソースコードを解析することによって、共通部分及び変数部分の書式を定義することができる。これについては、文献（Wei Xu et al、Detecting Large-Scale System Problems by Mining Console Logs、 in Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP'０９)、 2009）に詳細が記載されている。また、共通部分及び変数部分の書式を定義するのではなく、格納プログラム６１３がログメッセージを取得した場合、共通部分と変数部分とを抽出するプログラムを外部から呼び出すようにしてもよい。
【０１３６】
次に、図１１〜図１５を用いて、検索プログラム６１５によるログの検索処理について説明する。
【０１３７】
図１１は、本発明の第１実施形態の検索処理のフローチャートである。この検索処理は、検索プログラム６１５がプロセッサ６０６によって実行されることによって、実行される。
【０１３８】
検索処理は、ログ管理計算機１０１がクライアント端末１０４によって送信された検索要求を受信した場合に、実行される（１５０１）。検索要求は検索条件を含む。検索処理は、検索要求に検索条件としてキーワード「ａｐａｃｈｅ」が含まれる場合は、ログメッセージに「ａｐａｃｈｅ」を含むすべてのログを検索し、検索結果をクライアント端末１０４に送信する処理である。検索条件は、キーワードの他、日時及びログレベル等に対する条件を含んでもよい。例えば、検索条件が、キーワード「ａｐａｃｈｅ」、日時「２０１１年１月１日から２０１１年４月２日まで」、及びホスト名「ｈｏｓｔ１」を含む場合、ログ管理計算機１０１は、キーワード、日時、及びホスト名のすべての検索条件と一致するすべてのログを検索結果としてクライアント端末１０４に送信する。検索条件は、キーワード、日時、ホスト名等に限定されず、また、キーワード等の一部の条件を含まなくてもよい。
【０１３９】
まず、プロセッサ６０６は、Ｔｅｒｍ  ｔａｂｌｅ６２４を参照し、受信した検索要求に含まれる検索条件と一致するログを検索する（１５０２）。ステップ１５０２の処理は、図１２及び図１３で詳細を説明する。
【０１４０】
次に、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３を参照し、受信した検索要求に含まれる検索条件と一致するログを検索する（１５０３）。ステップ１５０３の処理は、図１４及び図１５で詳細を説明する。
【０１４１】
次に、プロセッサ６０６は、ステップ１５０２の処理で検索されたログ及びステップ１５０３の処理で検索されたログを検索結果として、クライアント端末１０４に送信し（１５０４）、処理を終了する。クライアント端末１０４は、図示しないディスプレイなどの出力デバイスに受信した検索結果を表示する。
【０１４２】
なお、ステップ１５０４の処理では、プロセッサ６０６は、検索結果をクライアント端末１０４に表示させるために送信しなくてもよく、検索結果をファイル等の形式で記憶デバイス等に出力してもよい。
【０１４３】
また、ステップ１５０２及び１５０３の処理は、処理順序が逆であってもよく、また、ステップ１５０２及び１５０３の処理は同時に実行されてもよい。
【０１４４】
図１２及び図１３を用いてステップ１５０２の処理（Ｔｅｒｍ  ｔａｂｌｅ６２４に基づく検索処理）について説明する。
【０１４５】
図１２は、本発明の第１実施形態のＴｅｒｍ  ｔａｂｌｅ６２４に基づく検索処理のフローチャートである。
【０１４６】
まず、プロセッサ６０６は、Ｔｅｒｍ  ｔａｂｌｅ６２４のｔｅｒｍ７２１に登録された単語が検索要求に含まれるキーワードと一致する行のｃｉｄｓ７２２に登録されたすべてのｃｉｄを抽出する（１６０１）。
【０１４７】
次に、プロセッサ６０６は、ステップ１６０１の処理で抽出されたｃｉｄからステップ１６０３〜１６１３が実行されていない一つのｃｉｄを選択し、ステップ１６０１の処理で抽出されたすべてのｃｉｄに対してステップ１６０３〜１６１３の処理が実行されるまでステップ１６０２〜１６１３の処理を繰り返し実行する（１６０２）。
【０１４８】
次に、プロセッサ６０６は、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２から、ｃｉｄ７１１に登録されたｃｉｄがステップ１６０２の処理で選択されたｃｉｄと一致する行を抽出する（１６０３）。
【０１４９】
次に、プロセッサ６０６は、Ｌｏｇ  ｔａｂｌｅ６２１から、ｃｉｄ７０４に登録されたｃｉｄがステップ１６０２の処理で選択されたｃｉｄと一致する行を抽出する（１６０４）。
【０１５０】
次に、プロセッサ６０６は、ステップ１６０４の処理で抽出された行から、ステップ１６０６〜１６１２の処理が実行されていない一つの行を選択し、ステップ１６０４の処理で抽出されたすべての行に対してステップ１６０６〜１６１２の処理が実行されるまでステップ１６０５〜１６１２の処理を繰り返し実行する（１６０５）。
【０１５１】
次に、プロセッサ６０６は、ステップ１６０５の処理で選択されたＬｏｇ  ｔａｂｌｅ６２１の行のｖｉｄｓ７０５に登録されたすべてのｖｉｄを抽出する（１６０６）。
【０１５２】
次に、プロセッサ６０６は、ステップ１６０６の処理で抽出されたｖｉｄから、ステップ１６０８〜１６０９の処理が実行されていない一つのｖｉｄを選択し、ステップ１６０６の処理で抽出されたすべてのｖｉｄに対してステップ１６０８〜１６０９の処理が実行されるまでステップ１６０７〜１６０９の処理を繰り返し実行する（１６０７）。
【０１５３】
次に、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３から、ｖｉｄ７３１に登録されたｖｉｄがステップ１６０７の処理で選択されたｖｉｄと一致する行を抽出する（１６０８）。
【０１５４】
次に、プロセッサ６０６は、ステップ１６０６の処理で抽出されたすべてのｖｉｄに対してステップ１６０８〜１６０９の処理が実行された場合、ステップ１６１０の処理に進み、ステップ１６０６の処理で抽出されたすべてのｖｉｄに対してステップ１６０８〜１６０９の処理が実行されていない場合、ステップ１６０７の処理に戻る（１６０９）。
【０１５５】
次に、プロセッサ６０６は、ステップ１６０３の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分、及びステップ１６０８の処理で抽出されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録された変数部分に基づいて、変数部分及び共通部分を抽出する前のログメッセージを復元する（１６１０）。
【０１５６】
具体的には、プロセッサ６０６は、ステップ１６０３の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分のうち変数部分が存在したことを示す部分に、ステップ１６０５の処理で選択されたＬｏｇ  ｔａｂｌｅ６２１の行のｖｉｄｓ７０５に登録されたｖｉｄ順に、ステップ１６０８の処理で抽出されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録された変数部分を埋め込むことによって、変数部分及び共通部分を抽出する前のログメッセージを復元する。
【０１５７】
次に、プロセッサ６０６は、ステップ１６０５の処理で選択されたＬｏｇ  ｔａｂｌｅ６２１の行に登録されたログの定型部分及びステップ１６０３の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の行のｌｅｖｅｌ７１２に登録されたレベルを、ステップ１６１０の処理で復元されたログメッセージに付加することによって、ログを復元し、当該ログを検索結果として保持する（１６１１）。
【０１５８】
次に、プロセッサ６０６は、ステップ１６０４の処理で抽出されたＬｏｇ  ｔａｂｌｅ６２１のすべての行に対してステップ１６０６〜１６１２の処理が実行された場合、ステップ１６１３の処理に進み、ステップ１６０４の処理で抽出されたＬｏｇ  ｔａｂｌｅ６２１のすべての行に対してステップ１６０６〜１６１２の処理が実行されていない場合、ステップ１６０５の処理に戻る（１６１２）。
【０１５９】
次に、プロセッサ６０６は、ステップ１６０１の処理で抽出されたすべてのｃｉｄに対してステップ１６０３〜１６１３の処理が実行された場合、処理を終了し、ステップ１６０１の処理で抽出されたすべてのｃｉｄに対してステップ１６０３〜１６１３の処理が実行された場合、ステップ１６０２の処理に戻る（１６１３）。
【０１６０】
図１３は、本発明の第１実施形態のＴｅｒｍ  ｔａｂｌｅ６２４に基づく検索処理の説明図である。
【０１６１】
図１３では、検索要求には、キーワードとして「ａｐａｃｈｅ」が含まれるものとする。
【０１６２】
ステップ１６０１の処理では、Ｔｅｒｍ  ｔａｂｌｅ６２４の１行目及び２行目のｃｉｄｓ７２２に登録されたｃｉｄ（１、２）が抽出される。
【０１６３】
ステップ１６０２の処理では、ステップ１６０１の処理で抽出されたｃｉｄ（１、２）からｃｉｄ（１）が選択される。
【０１６４】
ステップ１６０３の処理では、ステップ１６０２の処理で選択されたｃｉｄ（１）がｃｉｄ７１１に登録されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目が抽出される（図１３に示す（１）参照）。
【０１６５】
ステップ１６０４の処理では、ステップ１６０２の処理で選択されたｃｉｄ（１）がｃｉｄ７０４に登録されたＬｏｇ  ｔａｂｌｅ６２１の１行目〜４行目が抽出される（図１３に示す（２）参照）。
【０１６６】
ステップ１６０５の処理では、ステップ１６０４の処理で抽出されたＬｏｇ  ｔａｂｌｅ６２１の１行目〜４行目から１行目が選択される。
【０１６７】
ステップ１６０６の処理では、ステップ１６０５の処理で選択されたＬｏｇ  ｔａｂｌｅ６２１の１行目のｖｉｄｓ７０５に登録されたすべてのｖｉｄ（１、２）が抽出される。
【０１６８】
ステップ１６０７の処理では、ステップ１６０６の処理で抽出されたｖｉｄ（１、２）からｖｉｄ（１）が選択される。
【０１６９】
ステップ１６０８の処理では、ステップ１６０７の処理で選択されたｖｉｄ（１）がｖｉｄ７３１に登録されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の１行目が抽出される（図１３に示す（３）参照）。
【０１７０】
ステップ１６０９の処理では、ステップ１６０６の処理で抽出されたすべてのｖｉｄ（１，２）に対してステップ１６０８〜１６０９の処理が実行されていないので、ステップ１６０７の処理に戻り、ｖｉｄ（２）が選択される。
【０１７１】
ステップ１６０８の処理では、２回目のステップ１６０７の処理で選択されたｖｉｄ（２）がｖｉｄ７３１に登録されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の２行目が抽出される（図１３に示す（４）参照）。
【０１７２】
２回目のステップ１６０９の処理では、ステップ１６０６の処理で抽出されたすべてのｖｉｄ（１，２）に対してステップ１６０８〜１６０９の処理が実行されたので、ステップ１６１０の処理に進む。
【０１７３】
ステップ１６１０の処理では、ステップ１６０３の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分「apache[%s] [client %s]: cannot find /var/www/favicon.ico」、並びに、ステップ１６０８の処理で抽出されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の１行目及び２行目のｖａｒｉａｂｌｅ７３２に登録された変数部分「12345」及び「192.168.1.128」に基づいて、ログメッセージ「apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」が復元される。
【０１７４】
ステップ１６１１の処理では、ログメッセージ「apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」にdatetime「2011-08-05 09:04:53」、level「info」、及びhost「host1」が付与され、元のログ「2011-08-05 09:04:53,info,host1,apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」が復元される。
【０１７５】
ステップ１６１２の処理では、ステップ１６０４の処理で抽出されたＬｏｇ  ｔａｂｌｅ６２１の２行目〜４行目に対してステップ１６０６〜１６１２の処理が実行されていないので、ステップ１６０５の処理に戻り、Ｌｏｇ  ｔａｂｌｅ６２１の２行目が選択される。
【０１７６】
Ｌｏｇ  ｔａｂｌｅ６２１の１行目〜４行目に対してステップ１６０６〜１６１２の処理が実行された場合、ステップ１６１３の処理に進む。
【０１７７】
ステップ１６１３の処理では、ステップ１６０１の処理で抽出されたｃｉｄ（２）に対してステップ１６０３〜１６１３の処理が実行されていないので、ステップ１６０２の処理に戻る。
【０１７８】
ステップ１６０２の処理では、ステップ１６０１の処理で抽出されたｃｉｄ（１、２）からステップ１６０３〜１６１３の処理が実行されていないｃｉｄ（２）が選択される。
【０１７９】
ステップ１６０３の処理では、ステップ１６０２の処理で選択されたｃｉｄ（２）がｃｉｄ７１１に登録されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の２行目が抽出される（図１３に示す（５）参照）。
【０１８０】
ステップ１６０４の処理では、ステップ１６０２の処理で選択されたｃｉｄ（２）がｃｉｄ７０４に登録されたＬｏｇ  ｔａｂｌｅ６２１の５行目が抽出される（図１３に示す（６）参照）。
【０１８１】
以降、ステップ１６０４の処理で抽出されたＬｏｇ  ｔａｂｌｅ６２１の５行目に対してステップ１６０６〜１６１３の処理を実行し、処理を終了する。
【０１８２】
以上のように、ログメッセージの全文から検索要求に含まれるキーワードと一致する単語を検索せずに、Ｔｅｒｍ  ｔａｂｌｅ６２４に登録された単語から検索要求に含まれるキーワードと一致する単語を検索するので、検索効率を向上させることができる。
【０１８３】
図１４及び図１５を用いてステップ１５０３の処理（Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に基づく検索処理）について説明する。
【０１８４】
図１４は、本発明の第１実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に基づく検索処理のフローチャートである。
【０１８５】
まず、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録された変数部分が、検索要求に含まれるキーワードと一致する行のｌｏｇｉｄｓ７３３に登録されたｌｏｇｉｄを抽出する（１８０１）。
【０１８６】
次に、プロセッサ６０６は、ステップ１８０１の処理で抽出されたｌｏｇｉｄからステップ１８０３〜１８１０の処理が実行されていない一つのｌｏｇｉｄを選択し、ステップ１８０１の処理で抽出されたすべてのｃｉｄに対してステップ１８０３〜１８１０の処理が実行されるまでステップ１８０２〜１８１０の処理を繰り返し実行する（１８０２）。
【０１８７】
次に、プロセッサ６０６は、Ｌｏｇ  ｔａｂｌｅ６２１から、ｌｏｇｉｄ７０１に登録されたｌｏｇｉｄがステップ１８０２の処理で選択されたｌｏｇｉｄと一致する行のｃｉｄ７０４に登録されたｃｉｄ及びｖｉｄｓ７０５に登録されたｖｉｄを抽出する（１８０３）。
【０１８８】
次に、プロセッサ６０６は、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２から、ｃｉｄ７１１に登録されたｃｉｄがステップ１８０３の処理で抽出されたｃｉｄと一致する行を抽出する（１８０４）。
【０１８９】
次に、プロセッサ６０６は、ステップ１８０３の処理で抽出されたｖｉｄからステップ１８０６〜１８０７の処理が実行されていない一つのｖｉｄを選択し、ステップ１８０３の処理で抽出されたすべてのｖｉｄに対してステップ１８０６〜１８０７の処理が実行されるまでステップ１８０５〜１８０７の処理を繰り返し実行する（１８０５）。
【０１９０】
次に、プロセッサ６０６は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３から、ｖｉｄ７３１に登録されたｖｉｄがステップ１８０５の処理で選択されたｖｉｄと一致する行を抽出する（１８０６）。
【０１９１】
次に、プロセッサ６０６は、ステップ１８０３の処理で抽出されたすべてのｖｉｄに対してステップ１８０６〜１８０７の処理が実行された場合、ステップ１８０８の処理に進み、ステップ１８０３の処理で抽出されたすべてのｖｉｄに対してステップ１８０６〜１８０７の処理が実行されていない場合、ステップ１８０５の処理に戻る（１８０７）。
【０１９２】
次に、プロセッサ６０６は、ステップ１８０４の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分、及びステップ１８０６の処理で抽出されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｖａｒｉａｂｌｅ７３２に登録された変数部分に基づいて、変数部分及び共通部分を抽出する前のログメッセージを復元する（１８０８）。ステップ１８０８の処理の詳細は図１２に示すステップ１６１０の処理と同じであるので、説明を省略する。
【０１９３】
次に、プロセッサ６０６は、ステップ１８０３の処理で抽出されたＬｏｇ  ｔａｂｌｅ６２１の行に登録されたログの定型部分及びステップ１８０４の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の行のｌｅｖｅｌ７１２に登録されたレベルを、ステップ１８０８の処理で復元されたログメッセージに付加することによって、ログを復元し、当該ログを検索結果として保持する（１８０９）。ステップ１８０９の処理の詳細は図１２に示すステップ１６１１の処理と同じであるので、説明を省略する。
【０１９４】
次に、プロセッサ６０６は、ステップ１８０１の処理で抽出されたすべてのｌｏｇｉｄに対してステップ１８０３〜１８１０の処理が実行された場合、処理を終了し、ステップ１８０１の処理で抽出されたすべてのｌｏｇｉｄに対してステップ１８０３〜１８１０の処理が実行されていない場合、ステップ１８１０の処理に戻る（１８１０）。
【０１９５】
図１５は、本発明の第１実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に基づく検索処理の説明図である。
【０１９６】
図１５では、検索要求には、キーワードとして「１２３４５」が含まれるものとする。
【０１９７】
ステップ１８０１の処理では、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３の１行目のｌｏｇｉｄｓ７３３に登録されたｌｏｇｉｄ（１、２、３、４）が抽出される。
【０１９８】
ステップ１８０２の処理では、ステップ１８０１の処理で抽出されたｌｏｇｉｄ（１、２、３、４）からｌｏｇｉｄ（１）が選択される。
【０１９９】
ステップ１８０３の処理では、ステップ１８０２の処理で選択されたｌｏｇｉｄ（１）がｌｏｇｉｄ７０１に登録されたＬｏｇ  ｔａｂｌｅ６２１の１行目のｃｉｄ７０４に登録されたｃｉｄ（１）、及びｖｉｄｓ７０５に登録されたｖｉｄ（１、２）が抽出される。ステップ１８０１の処理でｌｏｇｉｄ（１、２、３、４）が抽出されているので、ステップ１８０３の処理では、最終的にはＬｏｇ  ｔａｂｌｅ６２１の１行目〜４行目が抽出されることになる（図１５に示す（１）参照）。
【０２００】
ステップ１８０４の処理では、ステップ１８０３の処理で抽出されたｃｉｄ（１）がｃｉｄ７１１に登録されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目を抽出する（図１５に示す（２）参照）。
【０２０１】
ステップ１８０５の処理では、ステップ１８０３の処理で抽出されたｖｉｄ（１、２）からｖｉｄ（１）が選択される。
【０２０２】
ステップ１８０６の処理では、ステップ１８０５の処理で選択されたｖｉｄ（１）がｖｉｄ７３１に登録されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の１行目が抽出される。
【０２０３】
ステップ１８０７の処理では、ステップ１８０３の処理で抽出されたｖｉｄ（２）に対して、ステップ１８０６〜１８０７の処理が実行されていないので、ステップ１８０５の処理に戻り、ステップ１８０３の処理で抽出されたｖｉｄ（２）が選択される。
【０２０４】
２回目のステップ１８０６の処理では、ステップ１８０５の処理で選択されたｖｉｄ（２）がｖｉｄ７３１に登録されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の２行目が抽出され、ステップ１８０７の処理では、ステップ１８０３の処理で抽出されたｖｉｄ（１、２）に対してステップ１８０６〜１８０７の処理が実行されたので、ステップ１８０８の処理に進む。
【０２０５】
ステップ１８０８の処理では、ステップ１８０４の処理で抽出されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目のｍｓｇ  ｔｅｍｐｌａｔｅ７１３に登録された共通部分「apache[%s] [client %s]: cannot find /var/www/favicon.ico」、並びに、ステップ１８０６の処理で抽出されたＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の１行目及び２行目のｖａｒｉａｂｌｅ７３２に登録された変数部分「12345」及び「192.168.1.128」に基づいて、ログメッセージ「apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」が復元される。
【０２０６】
ステップ１８０９の処理では、ログメッセージ「apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」にdatetime「2011-08-05 09:04:53」、level「info」、及びhost「host1」が付与され、元のログ「2011-08-05 09:04:53,info,host1,apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」が復元される。
【０２０７】
ステップ１８１０の処理では、ステップ１８０１の処理で抽出されたｌｏｇｉｄ（２、３、４）に対してステップ１８０２〜１８１０の処理が実行されていないので、ステップ１８０２の処理に戻り、ステップ１８０１の処理で抽出されたｌｏｇｉｄ（１、２、３、４）に対してステップ１８０２〜１８１０の処理を実行されるまでステップ１８０２〜１８１０が繰り返し実行される。
【０２０８】
以上のように、ログメッセージの全文から検索要求に含まれるキーワードと一致する単語を検索せずに、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に登録された変数部分から検索要求に含まれるキーワードと一致する単語を検索するので、検索効率を向上させることができる。
【０２０９】
次に、図１６〜図１９を用いて再構成プログラム６１４によるＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログを再構成する再構成処理について説明する。
【０２１０】
図１６は、本発明の第１実施形態の再構成プログラム６１４による再構成処理のフローチャートである。
【０２１１】
再構成処理は、プロセッサ６０６が再構成プログラム６１４を所定のタイミングで実行することによって実行される。所定のタイミングは、例えば、Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６にログが所定数以上格納されたタイミングであってもよいし、所定周期であってもよいし、管理者によって再構成処理の実行指令が入力されたタイミングであってもよい。
【０２１２】
まず、プロセッサ６０６は、Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログを含むログ表示画面２１００（図１７参照）を管理者端末１０３に表示させ、管理者から変数部分の指定をログ表示画面２１００を介して受け付ける（２００１）。具体的には、プロセッサ６０６は、ログ表示画面２１００を管理者端末１０３に表示させる指令であるログ表示画面表示指令を管理者端末１０３に送信する。管理者端末１０３は、ログ表示画面表示指令を受信した場合、ログ表示画面２１００を図示しない出力デバイスに表示する。
【０２１３】
なお、管理者がログ管理計算機１０１を直接操作可能である場合等、プロセッサ６０６は、入出力デバイス６０８にログ表示画面２１００を表示してもよい。
【０２１４】
ログ表示画面２１００について図１７を用いて説明する。図１７は、本発明の第１実施形態のログ表示画面２１００の説明図である。
【０２１５】
ログ表示画面２１００は、メッセージ表示領域２１１０、ログ表示領域２１２０、及びＯＫボタン２１３０を含む。
【０２１６】
メッセージ表示領域２１１０には、管理者に変数部分の指定を促すメッセージ（「変数部分を選択してください」）が表示される。ログ表示領域２１２０には、Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログが表示される。管理者は、ログ表示領域２１２０に表示されたログを見て、変数部分を指定する。図１７では、ログに含まれるログメッセージ中の「７１７」及び「１９２．１６８．２４２．１３０」が変数部分として指定された状態を示している。なお、管理者によって指定される変数部分の数は、一つであってもよいし、複数であってもよい。
【０２１７】
ＯＫボタン２１３０は、管理者が指定した変数部分をログ管理計算機１０１に入力する場合に操作される。
【０２１８】
図１６に戻り、ステップ２００２以降の処理について説明する。
【０２１９】
次に、プロセッサ６０６は、管理者による変数部分の指定を受け付けると、変数部分が指定されたログから、指定された変数部分及び指令された変数部分以外の部分である共通部分を抽出する（２００２）。
【０２２０】
次に、プロセッサ６０６は、Ｔｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログから、ステップ２００２の処理で抽出された共通部分に対応するログを選択する（２００３）。具体的には、プロセッサ６０６は、ステップ２００２の処理で抽出された共通部分をすべて含むログを、ステップ２００２の処理で抽出された共通部分に対応するログとして選択する。また、プロセッサ６０６は、選択したログのうち、ステップ２００２の処理で抽出された共通部分と異なる部分を変数部分として抽出する。
【０２２１】
次に、プロセッサ６０６は、ステップ２００３の処理で選択されたログを表示する確認画面２２００（図１８参照）を管理者端末１０３に表示させる（２００４）。具体的には、プロセッサ６０６は、確認画面２２００を管理者端末１０３に表示させる指令である確認画面表示指令を管理者端末１０３に送信する。管理者端末１０３は、確認画面表示指令を受信した場合、確認画面２２００を図示しない出力デバイスに表示する。
【０２２２】
確認画面２２００について図１８を用いて説明する。図１８は、本発明の第１実施形態の確認画面２２００の説明図である。
【０２２３】
確認画面２２００は、共通部分表示領域２２１０、選択ログ数表示領域２２２０、選択ログ表示領域２２３０、及びＯＫボタン２２４０を含む。
【０２２４】
共通部分表示領域２２１０には、ステップ２００２の処理で選択された共通部分が表示される。選択ログ数表示領域２２２０には、ステップ２００３の処理でＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログから選択されたログの数が表示される。選択ログ表示領域２２３０には、ステップ２００３の処理でＴｅｍｐｏｒａｒｙ  ｃｏｍｍｏｎ  ｔａｂｌｅ６２６に格納されたログから選択されたログのレベル、変数部分及びログメッセージが表示される。なお、ステップ２００３の処理で選択されたログは、変数部分及び共通部分をまとめて管理可能なログである。
【０２２５】
ＯＫボタン２２４０は、管理者が指定した変数部分を確認し、指定した変数部分及び当該変数部分に基づいて抽出された共通部分を各テーブルに登録する場合に操作される。
【０２２６】
図１６に戻り、ステップ２００５以降の処理について説明する。
【０２２７】
プロセッサ６０６は、確認画面２２００でＯＫボタン２２４０が操作されたことを示す情報を受け付けたか否かを判定する（２００５）。
【０２２８】
ステップ２００５の処理で、確認画面２２００でＯＫボタン２２４０が操作されたことを示す情報を受け付けたと判定された場合、プロセッサ６０６は、ステップ２００２の処理で抽出された共通部分及びステップ２００３の処理で選択された共通部分をＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納するＣｏｍｍｏｎ  ｔａｂｌｅ格納処理を実行する（２００６）。Ｃｏｍｍｏｎ  ｔａｂｌｅ格納処理は、図９に示すステップ１２０８〜１２１０の処理と同じであるので、説明を省略する。
【０２２９】
次に、プロセッサ６０６は、ステップ２００２の処理で抽出された共通部分及びステップ２００３の処理で選択された共通部分を構成する単語をＴｅｒｍ  ｔａｂｌｅ６２４に格納するＴｅｒｍ  ｔａｂｌｅ格納処理を実行する（２００７）。Ｔｅｒｍ  ｔａｂｌｅ格納処理は、図９に示すステップ１２１１〜１２１４の処理と同じであるので、説明を省略する。
【０２３０】
次に、プロセッサ６０６は、ステップ２００２の処理で抽出された変数部分及びステップ２００３の処理で選択された変数部分をＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納するＶａｒｉａｂｌｅ  ｔａｂｌｅ格納処理を実行する。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ格納処理は、図９に示すステップ１２０４〜１２０７の処理と同じであるので、説明を省略する。
【０２３１】
ステップ２００５の処理で、確認画面２２００でＯＫボタン２２４０が操作されたことを示す情報を受け付けていないと判定された場合、プロセッサ６０６は再構成処理を終了する。
【０２３２】
なお、確認画面２２００はキャンセルボタンを含み、ステップ２００４の処理の後で、プロセッサ６０６は、キャンセルボタンが操作されたことを示す情報を受け付けた場合、ステップ２００１の処理に戻り、ログ表示画面２１００を再度表示し、管理者が十分と考えるまで再構成処理を繰り返し実行するようにしてもよい。
【０２３３】
また、ステップ２００１の処理では、プロセッサ６０６は、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２に格納された共通部分を表示し、新たな変数部分を管理者に指定させてもよい。これによって、共通部分及び変数部分を一度まとめて格納したログをさらにまとめることができるので、ログの格納容量をさらに削減できる。
【０２３４】
以上によって、本実施形態によれば、ログに含まれる非定型部分であるログメッセージから共通部分と変数部分とを抽出し、共通部分をまとめてＣｏｍｍｏｎ  ｔａｂｌｅ６２２に格納でき、変数部分をまとめてＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納できるので、ログの格納容量を削減できる。また、Ｃｏｍｍｏｎ  ｔａｂｌｅ６２２とＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３とが関連付けられるので、共通部分と変数部分とを結合させることができ、元のログに復元させることができ、検索処理時間も短縮できる。また、Ｔｅｒｍ  ｔａｂｌｅ６２４を用いて検索することによって、検索処理時間も短縮できる。
（第２実施形態）
本発明の第２実施形態について、図１９を用いて説明する。
【０２３５】
本実施形態では、Ｌｏｇ  ｔａｂｌｅ６２１に各ログの変数部分が登録されるため、ストレージデバイス１０２はＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３を格納しなくてもよい。
【０２３６】
図１９は、本発明の第２実施形態のＬｏｇ  ｔａｂｌｅ６２１の説明図である。
【０２３７】
Ｌｏｇ  ｔａｂｌｅ６２１は、ｌｏｇｉｄ７０１、ｄａｔｅｔｉｍｅ７０２、ｈｏｓｔ７０３、ｃｉｄ７０４、ｖａｒＡ９０１、ｖａｒＢ９０２、ｖａｒＣ９０３、及びｖａｒＤ９０４を含む。ｌｏｇｉｄ７０１、ｄａｔｅｔｉｍｅ７０２、ｈｏｓｔ７０３、及びｃｉｄ７０４は、第１実施形態の図３に示すＬｏｇ  ｔａｂｌｅ６２１と同じであるので、説明を省略する。
【０２３８】
図１９に示すＬｏｇ  ｔａｂｌｅ６２１では、一つのログに対して格納可能な変数部分の最大数を４として、変数部分はｖａｒＡ９０１〜ｖａｒＤ９０４に登録される。
【０２３９】
本実施形態は、第１実施形態と比較して、図１２に示すステップ１６１１の処理及び図１４に示す１８０９の処理で、Ｌｏｇ  ｔａｂｌｅ６２１に格納されたログの定型部分とＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納された変数部分とを結合しなくてもよいので、検索処理を高速化させることができるが、Ｌｏｇ  ｔａｂｌｅ６２１に格納可能な一つのログに対する変数部分の数を予め設定しなければなない。Ｌｏｇ  ｔａｂｌｅ６２１に格納可能な一つのログに対する変数部分の数が少なければ、ログから変数部分及び共通部分を効率よく抽出できず、Ｌｏｇ  ｔａｂｌｅ６２１に格納可能な一つのログに対する変数部分の数が多すぎれば、変数部分が少ない行では余分な格納容量を使ってしまい、Ｌｏｇ  ｔａｂｌｅ６２１がスパースになってしまう。
【０２４０】
（第３実施形態）
本発明の第３実施形態について、図２０〜図２２を用いて説明する。
【０２４１】
第１実施形態の図５に示すＴｅｒｍ  ｔａｂｌｅ６２４のｃｉｄｓ７２２及び図６に示すＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｌｏｇｉｄｓ７３３には、行番号がリストとして登録されるが、本実施形態では、Ｔｅｒｍ  ｔａｂｌｅ６２４のｃｉｄ７２３（図２１参照）及びＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｌｏｇｉｄ７３４（図２２参照）には、一つの行番号が登録され、関連付けられる行番号の数だけ行が追加される。
【０２４２】
図２０は、本発明の第３実施形態のＬｏｇ  ｔａｂｌｅ６２１の説明図である。
【０２４３】
本発明の第３実施形態のＬｏｇ  ｔａｂｌｅ６２１は、ｖｉｄｓ７０５を含まなくてもよい。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｌｏｇｉｄ７３４に登録されたＬｏｇ  ｔａｂｌｅ６２１の行番号によって、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に格納された変数部分とＬｏｇ  ｔａｂｌｅ６２１に格納されたログの定型部分とが一対一で関連付けられ、あるログに含まれる変数部分は、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３のｌｏｇｉｄ７３４に登録された識別情報によって識別されるＬｏｇ  ｔａｂｌｅ６２１の行を検索すればよいためである。
【０２４４】
図２１は、本発明の第３実施形態のＴｅｒｍ  ｔａｂｌｅ６２４の説明図である。
【０２４５】
Ｔｅｒｍ  ｔａｂｌｅ６２４は、ｔｅｒｍ７２１及びｃｉｄ７２３を含む。ｃｉｄ７２３には、ｔｅｒｍ７２１に登録された単語が抽出された一つの共通部分を示すＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行の識別情報が登録される。例えば、「ａｐａｃｈｅ」はＣｏｍｍｏｎ  ｔａｂｌｅ６２２の１行目及び２行目の共通部分から抽出されるが、これらは、Ｔｅｒｍ  ｔａｂｌｅ６２４では２行に渡って登録される。
【０２４６】
図２２は、本発明の第３実施形態のＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３の説明図である。
【０２４７】
Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３は、ｖｉｄ７３１、ｖａｒｉａｂｌｅ７３２、及びｌｏｇｉｄ７３４を含む。ｌｏｇｉｄ７３４には、ｖａｒｉａｂｌｅ７３２に登録された変数部分が抽出された一つのログを示すＬｏｇ  ｔａｂｌｅ６２１の１行の識別情報が登録される。例えば、「１２３４５」はＬｏｇ  ｔａｂｌｅ６２１の１行目〜４行目のログから抽出されるが、これらは、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３では４行に渡って登録される。
【０２４８】
（第３実施形態の変形例）
第３実施形態の図２１に示すＴｅｒｍ  ｔａｂｌｅ６２４では、同じ単語が複数の共通部分から抽出された場合、同じ単語が複数行に渡って登録される。本変形例では、共通部分から抽出された単語に識別情報を付与し、当該単語の識別情報と共通部分の識別情報とを関連付ける。
【０２４９】
図２３は、本発明の第３実施形態の変形例のＴｅｒｍ−ｉＤ  ｔａｂｌｅ１１０１の説明図である。
【０２５０】
Ｔｅｒｍ−ｉＤ  ｔａｂｌｅ１１０１は、共通部分から抽出された単語と当該単語の識別情報とを管理するテーブルであり、ｔｉｄ１１０２及びｔｅｒｍ１１０３を含む。
【０２５１】
ｔｉｄ１１０２には、単語に付与された単語が登録される。ｔｅｒｍ１１０３には、共通部分から抽出された単語が登録される。
【０２５２】
図２４は、本発明の第３実施形態の変形例のＴｅｒｍｉｄ−ｃｏｍｍｏｎｉｄ  ｔａｂｌｅ１１１１の説明図である。
【０２５３】
Ｔｅｒｍｉｄ−ｃｏｍｍｏｎｉｄ  ｔａｂｌｅ１１１１は、単語に付与された識別情報と共通部分が格納されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の行の識別情報とを管理するテーブルであり、ｔｉｄ１１１２及びｃｉｄ１１１３を含む。
【０２５４】
ｔｉｄ１１１２には、単語に付与された識別情報が登録される。ｃｉｄ１１１３には、共通部分が格納されたＣｏｍｍｏｎ  ｔａｂｌｅ６２２の行の識別情報が登録される。
【０２５５】
これによって、Ｔｅｒｍ  ｔａｂｌｅ６２４に同じ文字列を冗長して格納しなくてもよいので、格納容量を削減できる。
【０２５６】
なお、第３実施形態の図２２に示すＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３でも、図２１に示すＴｅｒｍ  ｔａｂｌｅ６２４と同様に、同じ変数部分が複数行に渡って登録される。Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３も、変数部分と当該変数部分の識別情報とを管理する不図示のＶａｒｉａｂｌｅ−ｉＤ  ｔａｂｌｅ、及び、当該変数部分の識別情報と、変数部分が抽出されたログが格納されるＬｏｇ  ｔａｂｌｅの行の識別情報とを管理するＶａｒｉａｂｌｅｉｄ−ｌｏｇｉｄ  ｔａｂｌｅによって構成されてもよい。これによって、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３に同じ文字列を冗長して格納しなくてもよいので、格納容量を削減できる。
【０２５７】
（第４実施形態）
本発明の第４実施形態について図２５Ａ〜図２５Ｃを用いて説明する。
【０２５８】
本発明の第４実施形態では、変数部分は種別ごとに異なるテーブルに格納される。これによって、変数部分の種別及び変数部分を検索条件として含む検索要求を受け付けた場合、検索条件の変数部分の種別に対応するテーブルを検索することによって、検索処理を高速化できる。
【０２５９】
本実施形態では、図７に示すＶａｒｉａｂｌｅ  ｄｅｆｉｎｉｔｏｎ  ｔａｂｌｅ６２５で定義される変数部分の種別は、所定の数字列、ＩＰアドレス、及び所定の文字列である。
【０２６０】
図２５Ａは、本発明の第４実施形態の種別が数字列であるＮｕｍｂｅｒ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０１の説明図である。
【０２６１】
Ｎｕｍｂｅｒ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０１は、ｎｖｉｄ２３１１、ｖａｒｉａｂｌｅ２３１２、及びｌｏｇｉｄｓ２３１３を含む。
【０２６２】
ｎｖｉｄ２３１１には、Ｎｕｍｂｅｒ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０１の行の識別情報が登録される。ｖａｒｉａｂｌｅ２３１２には、所定の数字列と一致して抽出された変数部分がＩＮＴ型で登録される。ｌｏｇｉｄｓ２３１３には、変数部分が抽出されたログが格納されるＬｏｇ  ｔａｂｌｅ６２１の行の識別情報が登録される。
【０２６３】
図２５Ｂは、本発明の第４実施形態の種別が文字列であるＳｔｒｉｎｇ  Ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０２の説明図である。
【０２６４】
Ｓｔｒｉｎｇ  Ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０２は、ｓｖｉｄ２３２１、ｖａｒｉａｂｌｅ２３２２、及びｌｏｇｉｄｓ２３２３を含む。
【０２６５】
ｓｖｉｄ２３２１には、Ｓｔｒｉｎｇ  Ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０２の行の識別情報が登録される。ｖａｒｉａｂｌｅ２３２２には、所定の文字列と一致して抽出された変数部分がＳｔｒｉｎｇ型で登録される。ｌｏｇｉｄｓ２３２３には、変数部分が抽出されたログが格納されるＬｏｇ  ｔａｂｌｅ６２１の行の識別情報が登録される。
【０２６６】
図２５Ｃは、本発明の第４実施形態の種別がＩＰアドレスであるＩＰａｄｄｒｅｓｓ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０３の説明図である。
【０２６７】
ＩＰａｄｄｒｅｓｓ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０３は、ｉｐｖｉｄ２３３１、ｖａｒｉａｂｌｅ２３３２、及びｌｏｇｉｄｓ２３３３を含む。
【０２６８】
ｉｐｖｉｄ２３３１には、ＩＰａｄｄｒｅｓｓ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０３の行の識別情報が登録される。ｖａｒｉａｂｌｅ２３３２には、ＩＰアドレスの形式と一致して抽出された変数部分がＩＮＴ型で登録される。なお、ｖａｒｉａｂｌｅ２３３２に登録されるＩＰアドレスは整数型でよいのは、ピリオドで区切られた各数値が２バイトの数値で表現でき、ＩＰアドレスは８バイトの整数型で表現できるためである。ｌｏｇｉｄｓ２３２３には、変数部分が抽出されたログが格納されるＬｏｇ  ｔａｂｌｅ６２１の行の識別情報が登録される。
【０２６９】
以上のように、変数部分が格納されるテーブルを変数の種別ごとに異なるテーブルにすることによって、数値を検索条件として含む場合において、数値範囲を指定可能となる。これによって、例えば、１００以上の数値を含むログメッセージが検索可能となり、１９２．１６８．２３．１１０から１９２．１６８．２３．１３０までのＩＰアドレスを含むログメッセージが検索可能となる。
【０２７０】
また、種別がＩＰアドレスである変数部分を格納する場合、当該ＩＰアドレスを文字列として格納するより、当該ＩＰアドレスを整数型で格納したほうが、ＩＰアドレスを表現するのに必要なバイト数が少なくてよいので、格納容量を削減できる。
【０２７１】
また、本実施形態の検索処理では、検索プログラム６１５は、図１４に示すステップ１８０１の処理で、検索要求に含まれるキーワードの種別を特定し、特定した種別に対応するＶａｒｉａｂｌｅ  ｔａｂｌｅ６２３を検索すればよい。例えば、検索要求に含まれるキーワードがＩＰアドレスを示す場合、検索プログラム６１５は、ＩＰａｄｄｒｅｓｓ  ｖａｒｉａｂｌｅ  ｔａｂｌｅ２３０３を検索すればよい。これによって、Ｖａｒｉａｂｌｅ  ｔａｂｌｅ６２３をすべて検索する必要がなくなるので、検索時間を短縮化できる。
【０２７２】
以上のように、本発明では、多種多様なメッセージを含む非定型ログの管理において、ログの格納容量を削減でき、格納されたログから検索対象のログを高速に検索できる。
【０２７３】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【産業上の利用可能性】
【０２７４】
動作記録であるログを生成するログ生成システムからログを取得し、取得したログを格納するログ管理計算機に適用可能である。
【図１】
2013136418.tif 000003
【図２】
2013136418.tif 000004
【図３】
2013136418.tif 000005
【図４】
2013136418.tif 000006
【図５】
2013136418.tif 000007
【図６】
2013136418.tif 000008
【図７】
2013136418.tif 000009
【図８】
2013136418.tif 000010
【図９】
2013136418.tif 000011
【図１０】
2013136418.tif 000012
【図１１】
2013136418.tif 000013
【図１２】
2013136418.tif 000014
【図１３】
2013136418.tif 000015
【図１４】
2013136418.tif 000016
【図１５】
2013136418.tif 000017
【図１６】
2013136418.tif 000018
【図１７】
2013136418.tif 000019
【図１８】
2013136418.tif 000020
【図１９】
2013136418.tif 000021
【図２０】
2013136418.tif 000022
【図２１】
2013136418.tif 000023
【図２２】
2013136418.tif 000024
【図２３】
2013136418.tif 000025
【図２４】
2013136418.tif 000026
【図２５Ａ】
2013136418.tif 000027
【図２５Ｂ】
2013136418.tif 000028
【図２５Ｃ】
2013136418.tif 000029
【図２６】
2013136418.tif 000030
【図２７】
2013136418.tif 000031
【図２８】
2013136418.tif 000032
【図２９】
2013136418.tif 000033
【図３０Ａ】
2013136418.tif 000034
【図３０Ｂ】
2013136418.tif 000035
【国際調査報告】
2013136418.tif 000036
2013136418.tif 000037
2013136418.tif 000038
2013136418.tif 000039