JP5781685B2 - ログ管理計算機、及びログ管理方法 - Google Patents

ログ管理計算機、及びログ管理方法 Download PDF

Info

Publication number
JP5781685B2
JP5781685B2 JP2014504492A JP2014504492A JP5781685B2 JP 5781685 B2 JP5781685 B2 JP 5781685B2 JP 2014504492 A JP2014504492 A JP 2014504492A JP 2014504492 A JP2014504492 A JP 2014504492A JP 5781685 B2 JP5781685 B2 JP 5781685B2
Authority
JP
Japan
Prior art keywords
log
common
information
extracted
common part
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014504492A
Other languages
English (en)
Other versions
JPWO2013136418A1 (ja
Inventor
美幸 花岡
美幸 花岡
川本 真一
真一 川本
松林 忠孝
忠孝 松林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2013136418A1 publication Critical patent/JPWO2013136418A1/ja
Application granted granted Critical
Publication of JP5781685B2 publication Critical patent/JP5781685B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、動作記録であるログを生成するログ生成システムからログを取得し、取得したログを管理するログ管理計算機に関し、特に、取得したログを格納し、取得したログから所定のログを検索するログ管理計算機に関する。
ログは、機器等の動作記録である。通常、ログを構成する1行は、ログ生成システムの一つの動作記録である。ログ管理システムは、ログ生成システムによって生成されたログを収集し、収集したログを記憶領域に蓄積する。そして、ログ管理システムは、ユーザからの検索要求に応じて、蓄積されたログから検索要求と一致するログを検索し、検索結果を返す。
ログ生成システムは、例えば、各種製造装置、各種組込み機器、並びに、サーバ装置、ストレージ装置、及びネットワーク装置等のIT(Information Technology)機器等である。
ログ生成システムによって生成されるログには、定型ログと非定型ログとがある。定型ログは、各種製造装置及び組込み機器等によって生成される場合が多い。図26に示すように、定型ログは出力形式が定型的である。
また、非定型ログは、OS、ミドルウェア、及びアプリケーション等を実行するIT機器によって生成される場合が多い。図27に示すように、非定型ログは出力形式が行毎に異なる非定型である。
ログ生成システムは、ログをテキスト形式でログ管理システムに送信する。なお、ログ生成システムは、テキスト形式のログを所定の方式でエンコードすることによって、テキスト形式のログをバイナリ形式に変換し、バイナリ形式に変換したログをログ管理システムに送信してもよい。
ログ管理システムは、ログ生成システムによって送信されたログを受信した場合、受信したログを送信されたままの形式等でファイルシステム等に格納してもよいし、リレーショナルデータベースのようなデータベースに格納してもよい。
定型ログを格納するデータベースである定型ログデータベースを図28に示す。定型ログは出力形式が定型的であるので、定型ログデータベースは、定型ログの出力形式に合わせてスキーマが設計されるリレーショナルデータベースであればよい。
非定型ログを格納するデータベースである非定型ログデータベースを図29に示す。
非定型ログの各行で共通する部分(図27に示す日時302、レベル303、ホスト名304)は、対応するカラムに格納される。例えば、非定型ログの日時302は図29に示すdatetime502に登録され、非定型ログのレベル303は図29に示すlevel503に登録され、非定型ログのホスト名504は図29に示すhost504に登録される。
非定型ログのメッセージ305は各行で異なるので、各メッセージ305を構成する各単語型は、型の定まった共通のカラムに登録できない。そこで、一般的には、非定型ログのメッセージ305は、そのままmsg505に格納される。
前述したように、ログは機器等の動作の記録であるので、記録時間に比例してログの格納容量は増大する。また、管理すべきログ生成システムの数に比例してログの格納容量も増大する。
ログの格納容量の増大という問題に対して、ある程度まとまった数のログを圧縮し、圧縮したログを格納することによってログの格納容量を低減し、圧縮されたログを解凍してからログ検索する方法が知られている(例えば、特許文献1参照)。
また、ログを出力する機器の動作の種類は限られているので、ログが示す動作記録の種類も限られる。このため、長時間のログには、同じ動作記録の種類のログが複数存在する。そこで、定型ログに含まれる各データのうち所定の割合以上で出現するデータであって、同じ内容を示すデータをまとめて集約テーブルに格納し、他のデータを、通常のログを格納するテーブルに格納する方法が知られている(例えば、特許文献2参照)。これによって、ログの格納容量を低減できる。
一方、ログを検索する場合にかかる検索時間を短縮するという問題もある。テキストファイルとして格納されたログを検索する場合には、一般的に、すべてのログのすべての内容を検索することによって、検索条件となるキーワードを含むログを抽出する。例えば、UNIX(登録商標)のgrepコマンドは、上述した検索方法を採用する。定型ログをリレーショナルデータベースで管理する場合、リレーショナルデータベースのカラムにインデックスを付加することによって、全件検索を防止する方法も知られている。
しかしながら、非定型ログのリレーショナルデータベースは、msg505にインデックスを付加できないので、msg505に登録された部分の検索は全件検索となるという問題がある。
そこで、msg505に登録された単語を抽出し、抽出した単語をインデックスとしてmsg505に付加することによって、全件検索を防止し、検索時間を短縮する方法が知られている(例えば、非特許文献1参照)。また、例えば、datetime502のようなログのタイムスタンプにインデックスを付加し、検索時間を短縮する方法も知られている(例えば、特許文献2参照)。
特開2004−185460号広報 特開2009―169474号広報
Roger Ford、"Oracle Text An Oracle Technical White Paper"、2007年6月、p.5-9 Ledion Bitincka、 Archana Ganapathi、 Stephen Sorkin、 and Steve Zhang、"Optimizing Data Analysis with a Semi-structured Time Series Database"、USENIX Association、2010年、p.4-5
特許文献1の方法によれば、ログの格納容量を削減できる。しかし、特許文献1の方法では、ログを格納する場合のログの圧縮時間、及び、ログを検索する場合のログの解凍時間が必要であるので、ログの格納時間及びログの検索時間に時間がかかってしまう。
特許文献2の方法によれば、非定型ログの格納容量を削減できる。例えば、図29に示す非定型ログのリレーショナルデータベースでは、level503及びhost504には、他の行と同じ内容が所定の割合以上で登録されているので、これらを集約テーブルにまとめて登録することが可能である(図30A及び図30B参照)。図30Aは、非定型ログのdatetime及びmsgが格納されたデータテーブルであり、図30Bは、非定型ログのlevel及びhostが格納された集約テーブルである。これによって、非定型ログのlevel及びhostを集約した分のログの格納容量は削減できる。しかしながら、非定型ログの大部分を占めるmsgは共通するログが少ないので集約できない。したがって、ログの格納容量はほとんど削減できない。
一方、非定型のログの検索時間の問題に関して、非特許文献1及び非特許文献2の方法は、インデックス検索を可能とするので、検索時間は短縮される。しかし、非特許文献1及び非特許文献2の方法は、ログの格納容量を削減するという課題は解決できない。
本発明は、ログの格納容量を削減しつつ、ログの検索時間を短縮するログ管理計算機を提供することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、動作記録であるログを生成するログ生成システムから前記ログを取得し、前記取得したログを管理するログ管理計算機であって、前記ログ管理計算機は、前記取得したログを記憶する記憶領域と、前記記憶領域に記憶されたログを参照するプロセッサと、を備え、前記記憶領域は共通部分情報と相違部分情報とを含み、前記共通部分情報には、前記ログ生成システムから取得したログに含まれるログメッセージの他のログメッセージと共通する共通部分が格納され、前記相違部分情報には、前記ログメッセージの他のログメッセージと相違する相違部分が格納され、前記プロセッサは、一つのログメッセージが前記共通部分情報に格納されたいずれかの共通部分のすべての部分を含む場合、前記一つのログメッセージから、前記共通部分情報に格納された当該共通部分と一致しない部分を前記相違部分として抽出し、前記一つのログメッセージから前記相違部分として抽出された部分以外の部分を前記共通部分として抽出し、前記抽出した共通部分を前記記憶領域の共通部分情報に格納し、前記抽出した相違部分を前記記憶領域の相違部分情報に格納し、前記一つのログメッセージが、前記共通部分情報に格納されたいずれの共通部分のすべての部分を含まない場合、前記一つのログメッセージを前記記憶領域の仮共通部分情報に格納し、検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログメッセージを検索することを特徴とするログ管理計算機。
本発明の一態様よれば、ログの格納容量を削減しつつ、ログの検索時間を短縮できる。
本発明の第1実施形態の情報処理システムの構成図である。 本発明の第1実施形態のログ管理計算機及びストレージデバイスのブロック図である。 本発明の第1実施形態のLog tableの説明図である。 本発明の第1実施形態のCommon tableの説明図である。 本発明の第1実施形態のTerm tableの説明図である。 本発明の第1実施形態のVariable tableの説明図である。 本発明の第1実施形態のVariable definiton tableの説明図である。 本発明の第1実施形態のTemporary common tableの説明図である。 本発明の第1実施形態のVariable definiton tableに基づくログの格納処理のフローチャートである。 本発明の第1実施形態のCommon tableに基づくログの格納処理のフローチャートである。 本発明の第1実施形態の検索処理のフローチャートである。 本発明の第1実施形態のTerm tableに基づく検索処理のフローチャートである。 本発明の第1実施形態のTerm tableに基づく検索処理の説明図である。 本発明の第1実施形態のVariable tableに基づく検索処理のフローチャートである。 本発明の第1実施形態のVariable tableに基づく検索処理の説明図である。 本発明の第1実施形態の再構成プログラムによる再構成処理のフローチャートである。 本発明の第1実施形態のログ表示画面の説明図である。 本発明の第1実施形態の確認画面の説明図である。 本発明の第2実施形態のLog tableの説明図である。 本発明の第3実施形態のLog tableの説明図である。 本発明の第3実施形態のTerm tableの説明図である。 本発明の第3実施形態のVariable tableの説明図である。 本発明の第3実施形態の変形例のTerm−iD tableの説明図である。 本発明の第3実施形態の変形例のTermid−commonid table1111の説明図である。 本発明の第4実施形態の種別が数字列であるNumber variable tableの説明図である。 本発明の第4実施形態の種別が文字列であるString Variable tableの説明図である。 本発明の第4実施形態の種別がIPアドレスであるIPaddress variable tableの説明図である。 従来の定型ログの説明図である。 従来の非定型ログの説明図である。 従来の定型ログのリレーショナルデータベース説明図である。 従来の非定型ログのリレーショナルデータベース説明図である。 従来の非定型ログのdatetime及びmsgが格納されたデータテーブルの説明図である。 従来の非定型ログのlevel及びhostが格納された集約テーブルである。
以下、図面を参照しつつ、本発明を実施するための形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
(第1実施形態)
以下において、本発明の第1実施形態について図1〜図18を用いて説明する。
図1は、本発明の第1実施形態の情報処理システムの構成図である。
情報処理システムは、ログ管理計算機101、ログ生成システム105、管理者端末103、クライアント端末104、及びログ収集システム106を有する。ログ管理計算機101はストレージデバイス102を有する。
ログ生成システム105は、ネットワーク107及びログ収集システム106を介してログ管理計算機101に接続される。
管理者端末103は、ネットワーク108を介してログ管理計算機101に接続される。なお、管理者端末103は、ログ管理計算機101に直接接続されてもよい。
クライアント端末104は、ネットワーク109を介してログ管理計算機101に接続される。なお、クライアント端末104は、ログ管理計算機101に直接接続されてもよい。
ログ管理計算機101は、ネットワーク110を介してストレージデバイス102に接続される。なお、ログ管理計算機101は、ストレージデバイス102に直接接続されてもよい。
ネットワーク107〜110は、専用線、インターネット等の広域網、及びLAN(Local Area Network)等のローカルなネットワークであればよい。なお、ネットワーク107〜110のうち、少なくとも一組が同じネットワークであってもよい。
ログ生成システム105は、動作記録をログとして生成するシステムである。ログ生成システム105は、自身の動作記録をログとして生成してもよいし、他の装置の動作記録をログとして生成してもよい。ログ生成システム105は、各種製造装置、各種組込み機器、並びに、サーバ装置、ストレージ装置、及びネットワーク装置等のIT(Information Technology)機器等の少なくとも一つを含むが、これら以外の装置を含んでもよい。
ログ管理計算機101は、ログ生成システム105によって生成されたログを取得し、取得したログを管理する。ログ管理計算機101は、ログ収集システム106によって取得された所定時間分のログを取得してもよい。また、ログ収集システム106は、ログ管理計算機101と同一の機器内に実装されていてもよい。ログ生成システム105は、ネットワーク107及びログ収集システム106を介してログ管理計算機101に接続される必要はなく、ログ収集システム106を介さずネットワーク107を介して接続されてもよい。
また、ログ管理計算機101は、ログ生成システム105からネットワーク107又はログ収集システム106を介してログを取得せずに、ログ生成システム105によって生成されたログを記憶した何らかの記憶媒体(例えば、可搬型記憶媒体等)からログを取得してもよい。この場合、ログ生成システム105は、ログ管理計算機101に接続されている必要はない。
ログ管理計算機101は、取得したログをストレージデバイス102に記憶する。ストレージデバイス102は、ログ管理計算機101と同一の機器内に実装されていてもよい。この場合、ログ管理計算機101とストレージデバイス102とを接続するネットワーク110は不要である。
管理者端末103は、ログ管理計算機101の管理者が操作する計算機であり、図示しないプロセッサ及び記憶領域を有し、ログ管理計算機101の各種設定などの入力を受け付ける。管理者端末103は、入力を受け付けた場合、入力情報をログ管理計算機101に送信する。なお、管理者が直接ログ管理計算機101を操作可能な環境では、情報処理システムは管理者端末103を備えなくてもよい。
クライアント端末104は、図示しないプロセッサ及び記憶領域を有し、ログの検索要求をログ管理計算機101に送信する。ログ管理計算機101は、検索要求を受信した場合、ログの検索処理を実行し、検索結果をクライアント端末104に送信する。なお、ログ管理計算機101に検索要求を直接入力可能な環境では、情報処理システムはクライアント端末104を備えなくてもよい。
また、管理者端末103及びクライアント端末104は同一の機器内に実装されてもよい。
図2は、本発明の第1実施形態のログ管理計算機101及びストレージデバイス102のブロック図である。
ログ管理計算機101は、メモリ605、プロセッサ606、ディスクインタフェース607、入出力デバイス608、及びネットワークインタフェース609を有する。メモリ605、プロセッサ606、ディスクインタフェース607、入出力デバイス608、及びネットワークインタフェース609は、バス等によって相互に接続される。
ネットワークインタフェース609はネットワーク107〜109に接続されるインタフェースであり、ログ管理計算機101はネットワークインタフェース609を介してログ生成システム105、管理者端末103、及びクライアント端末104に接続される。
ディスクインタフェース607は、ストレージデバイス102に接続されるインタフェースであり、ログ管理計算機101はディスクインタフェース607を介してストレージデバイス102に接続される。
メモリ605は、例えばRAM(Random Access Memory)のような記憶領域によって構成される。入出力デバイス608は、例えばキーボード、ポインタデバイス、ディスプレイであるが、これら以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェース又はイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ、キーボード及びポインタデバイスを有する表示用計算機を接続されてもよい。
プロセッサ606は、メモリ605に格納された情報を参照し、各種演算処理を実行する。
なお、図2では、ログ管理計算機101は、プロセッサ606、メモリ605、及びストレージデバイス102をそれぞれ一つずつ有するが、これらを複数有してもよい。また、ログ管理計算機101は、プロセッサ606、メモリ605、及びストレージデバイス102を有する複数の機器によって構成されてもよく、また、ストレージデバイス102等の一部のデバイスはログ管理計算機101以外の機器と共有されてもよい。
メモリ605には、格納プログラム613、再構成プログラム614、及び検索プログラム615が記憶され、また、メモリ605は、ログを一時的に格納可能なバッファ616を有する。これらのプログラム613〜615はプロセッサ606によって実行される。
プロセッサ606は、格納プログラム613を実行することによって、ログ管理計算機101が取得したログをストレージデバイス102に格納する格納処理を実行する。格納処理は、図9及び図10で詳細を説明する。
プロセッサ606は、再構成プログラム614を実行することによって、蓄積されたログを再構成する再構成処理を実行する。再構成処理は、図16〜図18で詳細を説明する。
プロセッサ606は、検索プログラム615を実行することによって、クライアント端末104によって送信された検索要求に基づいてログを検索する検索処理を実行する。検索処理は、図11〜図15で詳細を説明する。
上述した格納処理、再構成処理、及び検索処理は、その一部又はすべてを集積回路化する等してハードウェアで実現してもよい。
ストレージデバイス102には、Log table621、Common table622、Variable table623、Term table624、Variable definiton table625、及びTemporary common table626が格納される。
Log table621には、ログの定型部分が格納される。Log table621は図3で詳細を説明する。Common table622には、他のログと共通する共通部分が格納される。Common table622は、図4で詳細を説明する。Variable table623には、他のログと相違する相違部分である変数部分(相違部分)が格納される。Variable table623は、図5で詳細を説明する。Term table624には、Common table622に格納された共通部分を構成する単語、及び単語と当該単語が抽出された共通部分とを関連付ける情報を含む索引情報が格納される。Common table622は、図6で詳細を説明する。
Variable definiton table625には、予め設定された変数部分の定義が登録される。Variable definiton table625は、図7で詳細を説明する。Temporary common table626には、Common table622に格納されたいずれの共通部分にも一致しないログが格納される。Temporary common table626は、図8で詳細を説明する。
本実施形態では、各テーブル621〜626を格納する記憶媒体は、ストレージデバイス102に限定されず、フラッシュメモリを用いた半導体ディスクデバイス、及び光ディスクデバイス等の、永続的にデータを保持可能な記憶媒体であればよい。
また、各テーブル621〜626は、例えばリレーショナルデータベースのテーブルとして説明するが、ファイルシステム上に格納された少なくとも一つのファイルとファイルにアクセスするためのプログラムなど、テーブルとして表現できる手法であれば、どのようなものをテーブルとして用いてもよい。例えば、ファイル内にテキスト形式のまま、又は何らかのバイナリ形式などでテーブルを表現することが考えられるが、これに限定されるものではない。
ここで、本実施形態の処理対象のログについて説明する。
本実施形態の処理対象のログの例としては、ログ生成システム105で起動するオペレーティングシステムが出力するsyslog、又は、Webサーバであるログ生成システム105が出力するアクセスログ等の非定型ログがある。しかし、本実施形態の処理対象のログは、syslog及びアクセスログに限定されるものではない。
図27を用いて非定型ログについて説明する。
ログの1行がログ生成システム105の一つの動作を示す場合が多いが、ログの複数行がログ生成システム105の一つの動作を示す場合もある。
図27では、ログ301は、日時302、レベル303、ホスト名304、及びログメッセージ305を含む。日時302はログが出力された日時を示し、レベル303はログの重要度を示す。ホスト名304はログの動作を実行したログ生成システム105に含まれるホストの識別情報を示す。ログメッセージ305は動作の内容を示す。本実施形態では、ログ301の定型部分文は日時302及びホスト名304を含み、非定型部分はレベル303及びログメッセージ305を含む。
なお、図27では、ログ301は、カンマ及び改行によって区切られたCSV形式である。図27に示す1行目のログ301は、2011年8月5日9時4分53秒に、ログレベルinfoのログメッセージ"apache@[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico"がホストhost1で発生したことを示す。なお、ログに含まれる内容は、図27に限定されない。
次に、図27に示すログをそのままテーブルに格納した場合について、図29を用いて説明する。図29に示すテーブルは、ID501、日時502、レベル503、ホスト名504、及びログメッセージ505を含む。日時502にはログ301の日時302が格納され、レベル503にはログ301のレベル303が格納され、ホスト名504にはログ301のホスト名304が格納され、ログメッセージ505にはログ301のログメッセージ305が格納される。ID501には、ログを識別するための識別情報が格納される。
ログメッセージ505には、ログ301のログメッセージ305がフリーテキストで一つカラムに格納される。このようなフリーテキストで出力されるログメッセージから意味のある構造に変換することは難しいため、ログメッセージ305は、そのまま一つのログメッセージ505に格納される。
このため、本実施形態の格納プログラム613は、ログ301のログメッセージ305から共通部分と変数部分とを抽出し、抽出した共通部分をCommon table622に格納し、抽出した変数部分をVariable table623に格納する。
ログメッセージ305のメッセージは多種多様であるため、文字列がすべて一致するログメッセージ305をまとめることによって容量を削減することは困難である。しかし、ログメッセージ305は、一部のみが異なる場合が多い。例えば、図29に示すテーブルの1行目及び4行目では、クライアントのIPアドレスが異なり、その他の部分は同じである。本実施形態では、格納プログラム613は、IPアドレス、プロセス識別子(PID)、及びファイル名等の他のログメッセージ305と相違する部分を変数部分として抽出し、その他の部分を共通部分として抽出する。なお、変数部分として抽出する部分は、IPアドレス、プロセス識別子(PID)、及びファイル名に限定されない。
なお、ログメッセージ305から共通部分及び変数部分を抽出する方法は複数考えられるが、これらの方法については図9及び図10に示す格納処理で詳細を説明する。
図3は、本発明の第1実施形態のLog table621の説明図である。
Log table621には、ログの日時及びホスト名等の定型部分がログ毎に格納する。
Log table621は、logid701、datetime702、host703、cid704、及びvids705を含む。
logid701には、ログの識別情報が格納される。datetime702には、ログ301の日時302が登録される。host703には、ログ301のホスト名304が登録される。
cid704には、logid701に登録されたログの識別情報によって識別されるログから抽出された共通部分が格納されたCommon table622のcid711に登録された識別情報が登録される。
vids705には、logid701に登録されたログの識別情報によって識別されるログから抽出された変数部分が格納されたVariable table623のvid731に登録された識別情報が登録される。
図4は、本発明の第1実施形態のCommon table622の説明図である。
Common table622には、ログから抽出された共通部分がまとめて格納される。Common table622は、cid711、level712、及びmsg template713を含む。
cid711には、Common table622の各行の識別情報が登録される。level712には、共通部分として抽出されたログ301のレベル303が登録される。msg template713には、共通部分として抽出されたログ301のログメッセージ305の変数部分を抜き出した共通部分が登録される。
図4に示すCommon table622の1行目のmsg template713には、図27に示すテーブルの1行目〜4行目のログのログメッセージから変数部分が格納プログラム613によって抜き出された共通部分(メッセージテンプレート)が登録される。なお、ログメッセージの変数部分が所定の文字列(例えば、「%s」)に変換されることによって、どの部分が変数部分であったかをログ管理計算機101が特定できるようにしている。
なお、格納プログラム613は、ログメッセージの変数部分を削除したままの部分を共通部分としてmsg template713に登録し、削除した部分の先頭からのオフセットを別に記憶しておいてもよい。
また、ログのログメッセージ以外にも共通化可能な部分があれば、格納プログラム613は、当該部分を共通化してCommon table622に格納する。例えば、図4では、ログのレベルがlevel712に登録される。これは、ログレベルは、通常同じ意味となる文字列となる場合が多いためである。また、格納プログラム613は、ログのレベル以外にも共通化できる部分があれば共通化して、Common table622に登録してもよい。
図5は、本発明の第1実施形態のTerm table624の説明図である。
Term table624には、Common table622のmsg template713に登録された共通部分を構成する単語のインデックスが格納される。Term table624は、term721、及びcids722を含む。
term721には、Common table622のmsg template713に登録された共通部分を構成する単語が登録される。cids722には、term721に登録された単語が抽出された共通部分を示すCommon table622の行のcid711に登録された識別情報が登録される。
これによって、検索プログラム615は、検索要求を受け付けた場合、Term table624を参照し、term721に登録された単語が検索要求のキーワードと一致するエントリのcids722に登録された識別情報を取得することによって、キーワードと一致する単語が出現する共通部分を特定できる。
例えば、「apache」が検索要求に含まれるキーワードである場合、検索プログラム615は、Term table624の1行目を参照することによって、「apache」がCommon table622の1行目(cid:1)及び2行目(cid:2)に出現することを特定できる。
図6は、本発明の第1実施形態のVariable table623の説明図である。
Variable table623は、ログメッセージの変数部分が格納される。Variable table623は、vid731、variable732、及びlogids733を含む。
vid731には、Variable table623の各行の識別情報が登録される。variable732には、ログメッセージから抽出された変数部分が登録される。logids733には、Log table621のlogid701に登録された識別情報のうち、変数部分が抽出されたログメッセージを含むログに対応する行の識別情報が登録される。
例えば、図27に示すログの1行目〜4行目のログのログメッセージの変数部分として抽出されたPID及びIPアドレスがVariable table623に格納される。Variable table623の1行目は、変数部分として抽出されたPID「12345」がLog table621の1行目〜4行目のログから抽出されたことを示す。また、Variable table623の2行目は、変数部分として抽出されたIPアドレス「192.168.1.128」がLog table621の1行目及び2行目のログから抽出されたことを示す。
ここで、Log table621のcid704及びvids705は、Common table622のcid711と、Variable table623のvid731とを関連付ける。換言すれば、Common table622及びVariable table623は、お互いを関連付けるための識別情報を含む。
図7は、本発明の第1実施形態のVariable definiton table625の説明図である。
Variable definiton table625は、管理者によって定義された変数部分の型が登録される。Variable definiton table625は、vdid741及びVariable definiton742を含む。
vdid741には、Variable definiton table625の各行の識別情報が登録される。Variable definiton742には、管理者によって定義された変数部分の型が登録される。具体的には、Variable definiton742では、変数部分の型が正規表現を用いて定義される。Variable definiton table625の1行目では、1文字以上の数字列がプロセスID(PID)の種別の変数部分の型として定義され、Variable definiton table625の2行目では、IPアドレスを想定して、ピリオドで区切られた数字列がIPアドレスの種別の変数部分の型として定義される。
図8は、本発明の第1実施形態のTemporary common table626の説明図である。
Temporary common table626には、Common table622のmsg template713に登録されたいずれの共通部分にも一致しないログのレベル及びログメッセージの非定型部分が一時的に格納される。Temporary common table626は、tcid751、level752、及びmsg753を含む。
tcid751には、Temporary common table626の各行の識別情報が登録される。level752には、Common table622のmsg template713に登録されたいずれの共通部分にも対応しないログのレベルが登録される。msg753には、Common table622のmsg template713に登録されたいずれの共通部分にも対応しないログのログメッセージが登録される。
再構成プログラム614は、所定のタイミングで、Temporary common table626に格納されたログメッセージから変数部分を抜き出し、変数部分以外の部分を共通部分として抽出し、抽出した共通部分をCommon table622に格納する。
なお、格納プログラム613が、Common table622のmsg template713に登録されたいずれの共通部分にも対応しないログのログメッセージをそのまま、Common table622のmsg template713に登録してもよい。この場合、ログ管理計算機101は、Common table622とTemporary common table626とを一つのテーブルとして管理できる。
次に、図9及び図10を用いて、格納プログラム613によるログの格納処理について説明する。
図9は、本発明の第1実施形態のVariable definiton table625に基づくログの格納処理のフローチャートである。この格納処理は、格納プログラム613がプロセッサ606によって実行されることによって実行される。
格納処理は、ログ生成システム105によって生成された1行のログを取得したタイミングで実行されるが(1201)、これに限定されず、例えば、所定周期で実行されてもよい。なお、ログ収集システム106が蓄積した所定数のログをログ管理計算機101が取得する場合、ログ管理計算機101は、取得したログから1行のログを取得して、格納処理を実行する。
まず、プロセッサ606は、取得したログの定型部分文を抽出し、抽出したLog table621に格納する(1202)。具体的には、プロセッサ606は、Log table621に新たな行を追加し、logid701には当該行の識別情報を登録し、datetime702にはログに含まれる日時を登録し、host703にはログに含まれるhost703を追加する。ステップ1202の処理では、cid704及びvids705には何も登録しない。
次に、プロセッサ606は、Variable definiton table625を参照し、取得したログのログメッセージから、Variable definiton table625に登録された変数部分の定義と一致する部分を変数部分として抽出し、取得したログのログメッセージの変数部分以外の部分を共通部分として抽出する(1203)。
次に、プロセッサ606は、ステップ1203の処理で抽出された変数部分がVariable table623のvariable732に登録されているか否かを判定する(1204)。
ステップ1203の処理で抽出された変数部分がVariable table623のvariable732に登録されていないと、ステップ1204の処理で判定された場合、プロセッサ606は、Variable table623に新たな行を追加し、vid731に当該行の識別情報を登録し、variable732にはステップ1203の処理で抽出された変数部分を登録し、logids733にはステップ1202の処理でLog table621に追加した行のlogid701に登録された識別情報を登録する(1205)。
次に、プロセッサ606は、ステップ1202の処理でLog table621に追加した行のvids705に、ステップ1205の処理でVariable table623に追加した行のvdid741に登録された識別情報を追加する(1207)。
一方、ステップ1203の処理で抽出された変数部分がVariable table623のvariable732に登録されていると、ステップ1204の処理で判定された場合、プロセッサ606は、Variable table623のvariable732に登録された変数部分がステップ1203の処理で抽出された変数部分と一致する行のlogids733に、ステップ1202の処理でLog table621に追加した行のlogid701に登録された識別情報を登録し(1206)、ステップ1207の処理に進む。この場合のステップ1207の処理では、プロセッサ606は、ステップ1202の処理でLog table621に追加した行のvids705に、ステップ1206の処理でVariable table623のvdid741に追加した識別情報を追加する。
次に、プロセッサ606は、ステップ1203の処理で抽出された共通部分がCommon table622のmsg template713に登録されているか否かを判定する(1208)。
ステップ1203の処理で抽出された共通部分がCommon table622のmsg template713に登録されていないと、ステップ1208の処理で判定された場合、プロセッサ606は、Common table622に新たな行を追加し、cid711には当該行の識別情報を登録し、level712には共通部分として抽出されたログに含まれるレベルを登録し、msg template713には共通部分として抽出されたログメッセージを登録する(1209)。
そして、プロセッサ606は、ステップ1202の処理でLog table621に追加した行のvids705に、ステップ1209の処理でCommon table622に追加した行のcid711に登録された識別情報を登録する(1210)。
一方、ステップ1203の処理で抽出された共通部分がCommon table622のmsg template713に登録されていると、ステップ1208の処理で判定された場合、プロセッサ606は、ステップ1210の処理に進み、ステップ1202の処理でLog table621に追加した行のcid704に、Common table622のmsg template713に登録された変数部分がステップ1203の処理で抽出された共通部分と一致する行のcid711に登録された識別情報を登録する。
次に、プロセッサ606は、ステップ1203の処理で抽出された変数部分を構成する単語を抽出する(1211)。
そして、プロセッサ606は、ステップ1211の処理で抽出された単語がTerm table624のterm721に登録されているか否かを判定する(1212)。
ステップ1211の処理で抽出された単語がTerm table624のterm721に登録されていないと、ステップ1212の処理で判定された場合、プロセッサ606は、Term table624に新たな行を追加し、term721にはステップ1211の処理で抽出された単語を登録し、cids722にはCommon table622のmsg template713に登録された変数部分がステップ1211の処理で単語を抽出した変数部分と一致する行のcid711に登録された識別情報を登録し(1213)、処理を終了する。
一方、ステップ1211の処理で抽出された単語がTerm table624のterm721に登録されていると、ステップ1212の処理で判定された場合、プロセッサ606は、Term table624のterm721に登録された単語がステップ1211の処理で抽出された単語と一致する行のcids722に、Common table622のmsg template713に登録された変数部分がステップ1211の処理で単語を抽出した変数部分と一致する行のcid711に登録された識別情報を登録し(1214)、処理を終了する。
以上によって、ログの共通部分をまとめてCommon table622に格納し、ログの変数部分をまとめてVariable table623に格納するので、ログの格納領域の容量を削減できる。また、Common table622に格納された共通部分はcid711によって、Log table621と関連付けられ、Variable table623に格納された変数部分はvid731によって、Log table621と関連付けられるので、ログ管理計算機101は、これらのテーブルを参照することによって、元のログに復元できる。
図10は、本発明の第1実施形態のCommon table622に基づくログの格納処理のフローチャートである。この格納処理は、格納プログラム613がプロセッサ606によって実行されることによって実行される。
なお、図10に示す処理のうち図9に示す処理と同じ処理は、同じ符号を付与し説明を省略する。また、ログ管理計算機101は、図9に示す格納処理及び図10に示す格納処理のうちどちらか一方の処理で、ログをストレージデバイス102に格納すればよい。
まず、プロセッサ606は、ステップ1201の処理で、ログ生成システム105によって生成された1行のログを取得し、ステップ1202の処理で、取得したログの定型部分文を抽出し、抽出したLog table621に格納する。
次に、プロセッサ606は、ステップ1201の処理で取得したログに含まれるログメッセージがCommon table622のmsg template713に登録された共通部分に対応するか否かを判定するか否かを判定する(1301)。
具体的には、プロセッサ606は、ステップ1201の処理で取得したログに含まれるログメッセージが、Common table622のmsg template713に登録されたいずれかの共通部分を構成するすべての文字列を含むかを判定する。
例えば、Common table622のmsg template713の1行目に「apache[%s] [client %s]: cannot find /var/www/favicon.ico」が登録され、図27に示すログの1行目がステップ1201の処理で取得された場合について説明する。図27に示すログの1行目のログメッセージは、Common table622のmsg template713の1行目の共通部分である「apache」及び「cannot find /var/www/favicon.ico」をすべて含むので、ステップ1301の処理では、図27に示すログの1行目のログメッセージがCommon table622のmsg template713の1行目に対応すると判定される。
ステップ1201の処理で取得したログに含まれるログメッセージがCommon table622のmsg template713に登録された共通部分に対応すると、ステップ1301の処理で判定された場合、プロセッサ606は、ステップ1201の処理で取得したログに含まれるログメッセージから変数部分を抽出する(1302)。
具体的には、プロセッサ606は、ステップ1201の処理で取得したログに含まれるログメッセージから、Common table622のmsg template713に登録された共通部分と一致しない部分を変数部分として抽出する。
次に、プロセッサ606は、ステップ1302の処理で抽出された変数部分がVariable table623のvariable732に登録されているか否かを判定する(1304)。
ステップ1302の処理で抽出された変数部分がVariable table623のvariable732に登録されていないと、ステップ1304の処理で判定された場合、プロセッサ606は、Variable table623に新たな行を追加し、vid731に当該行の識別情報を登録し、variable732にはステップ1302の処理で抽出された変数部分を登録し、logids733にはステップ1202の処理でLog table621に追加した行のlogid701に登録された識別情報を登録する(1305)。
次に、プロセッサ606は、ステップ1202の処理でLog table621に追加した行のvids705に、ステップ1305の処理でVariable table623に追加した行のvdid741に登録された識別情報を追加する(1307)。
一方、ステップ1302の処理で抽出された変数部分がVariable table623のvariable732に登録されていると、ステップ1304の処理で判定された場合、プロセッサ606は、Variable table623のvariable732に登録された変数部分がステップ1302の処理で抽出された変数部分と一致する行のlogids733に、ステップ1202の処理でLog table621に追加した行のlogid701に登録された識別情報を登録し(1306)、ステップ1307の処理に進む。この場合のステップ1307の処理では、プロセッサ606は、ステップ1202の処理でLog table621に追加した行のvids705に、ステップ1306の処理でVariable table623のvdid741に追加した識別情報を追加する。
また、ステップ1201の処理で取得したログに含まれるログメッセージがCommon table622のmsg template713に登録された共通部分に対応しないと、ステップ1301の処理で判定された場合、プロセッサ606は、ステップ1201の処理で取得したログのレベル及びログメッセージをTemporary common table626に登録し(1303)、処理を終了する。
図10による格納処理でも、図9による格納処理と同様に、ログの共通部分をまとめてCommon table622に格納し、ログの変数部分をまとめてVariable table623に格納するので、ログの格納領域の容量を削減できる。また、Common table622に格納された共通部分はcid711によって、Log table621と関連付けられ、Variable table623に格納された変数部分はvid731によって、Log table621と関連付けられるので、ログ管理計算機101は、これらのテーブルを参照することによって、元のログに復元できる。
なお、図9では、Variable definiton table625を用いてログから変数部分と共通部分とを抽出する方法を説明し、図10では、Common table622に格納された共通部分を用いてログから変数部分と共通部分とを抽出する方法を説明したが、ログから変数部分と共通部分とを抽出する方法は他にも考えられる。
例えば、管理者がログ中に変数部分がどこに存在するかの書式を定義し、当該定義を用いてログから変数部分と共通部分とが抽出される方法がある。管理者は、格納されたログを見て、当該書式の定義を設定してもよいし、最初に当該書式の定義を設定してもよい。
また、計算機がログを出力するプログラムのソースコードを解析することによって、共通部分及び変数部分の書式を定義することができる。これについては、文献(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'09)、 2009)に詳細が記載されている。また、共通部分及び変数部分の書式を定義するのではなく、格納プログラム613がログメッセージを取得した場合、共通部分と変数部分とを抽出するプログラムを外部から呼び出すようにしてもよい。
次に、図11〜図15を用いて、検索プログラム615によるログの検索処理について説明する。
図11は、本発明の第1実施形態の検索処理のフローチャートである。この検索処理は、検索プログラム615がプロセッサ606によって実行されることによって、実行される。
検索処理は、ログ管理計算機101がクライアント端末104によって送信された検索要求を受信した場合に、実行される(1501)。検索要求は検索条件を含む。検索処理は、検索要求に検索条件としてキーワード「apache」が含まれる場合は、ログメッセージに「apache」を含むすべてのログを検索し、検索結果をクライアント端末104に送信する処理である。検索条件は、キーワードの他、日時及びログレベル等に対する条件を含んでもよい。例えば、検索条件が、キーワード「apache」、日時「2011年1月1日から2011年4月2日まで」、及びホスト名「host1」を含む場合、ログ管理計算機101は、キーワード、日時、及びホスト名のすべての検索条件と一致するすべてのログを検索結果としてクライアント端末104に送信する。検索条件は、キーワード、日時、ホスト名等に限定されず、また、キーワード等の一部の条件を含まなくてもよい。
まず、プロセッサ606は、Term table624を参照し、受信した検索要求に含まれる検索条件と一致するログを検索する(1502)。ステップ1502の処理は、図12及び図13で詳細を説明する。
次に、プロセッサ606は、Variable table623を参照し、受信した検索要求に含まれる検索条件と一致するログを検索する(1503)。ステップ1503の処理は、図14及び図15で詳細を説明する。
次に、プロセッサ606は、ステップ1502の処理で検索されたログ及びステップ1503の処理で検索されたログを検索結果として、クライアント端末104に送信し(1504)、処理を終了する。クライアント端末104は、図示しないディスプレイなどの出力デバイスに受信した検索結果を表示する。
なお、ステップ1504の処理では、プロセッサ606は、検索結果をクライアント端末104に表示させるために送信しなくてもよく、検索結果をファイル等の形式で記憶デバイス等に出力してもよい。
また、ステップ1502及び1503の処理は、処理順序が逆であってもよく、また、ステップ1502及び1503の処理は同時に実行されてもよい。
図12及び図13を用いてステップ1502の処理(Term table624に基づく検索処理)について説明する。
図12は、本発明の第1実施形態のTerm table624に基づく検索処理のフローチャートである。
まず、プロセッサ606は、Term table624のterm721に登録された単語が検索要求に含まれるキーワードと一致する行のcids722に登録されたすべてのcidを抽出する(1601)。
次に、プロセッサ606は、ステップ1601の処理で抽出されたcidからステップ1603〜1613が実行されていない一つのcidを選択し、ステップ1601の処理で抽出されたすべてのcidに対してステップ1603〜1613の処理が実行されるまでステップ1602〜1613の処理を繰り返し実行する(1602)。
次に、プロセッサ606は、Common table622から、cid711に登録されたcidがステップ1602の処理で選択されたcidと一致する行を抽出する(1603)。
次に、プロセッサ606は、Log table621から、cid704に登録されたcidがステップ1602の処理で選択されたcidと一致する行を抽出する(1604)。
次に、プロセッサ606は、ステップ1604の処理で抽出された行から、ステップ1606〜1612の処理が実行されていない一つの行を選択し、ステップ1604の処理で抽出されたすべての行に対してステップ1606〜1612の処理が実行されるまでステップ1605〜1612の処理を繰り返し実行する(1605)。
次に、プロセッサ606は、ステップ1605の処理で選択されたLog table621の行のvids705に登録されたすべてのvidを抽出する(1606)。
次に、プロセッサ606は、ステップ1606の処理で抽出されたvidから、ステップ1608〜1609の処理が実行されていない一つのvidを選択し、ステップ1606の処理で抽出されたすべてのvidに対してステップ1608〜1609の処理が実行されるまでステップ1607〜1609の処理を繰り返し実行する(1607)。
次に、プロセッサ606は、Variable table623から、vid731に登録されたvidがステップ1607の処理で選択されたvidと一致する行を抽出する(1608)。
次に、プロセッサ606は、ステップ1606の処理で抽出されたすべてのvidに対してステップ1608〜1609の処理が実行された場合、ステップ1610の処理に進み、ステップ1606の処理で抽出されたすべてのvidに対してステップ1608〜1609の処理が実行されていない場合、ステップ1607の処理に戻る(1609)。
次に、プロセッサ606は、ステップ1603の処理で抽出されたCommon table622のmsg template713に登録された共通部分、及びステップ1608の処理で抽出されたVariable table623のvariable732に登録された変数部分に基づいて、変数部分及び共通部分を抽出する前のログメッセージを復元する(1610)。
具体的には、プロセッサ606は、ステップ1603の処理で抽出されたCommon table622のmsg template713に登録された共通部分のうち変数部分が存在したことを示す部分に、ステップ1605の処理で選択されたLog table621の行のvids705に登録されたvid順に、ステップ1608の処理で抽出されたVariable table623のvariable732に登録された変数部分を埋め込むことによって、変数部分及び共通部分を抽出する前のログメッセージを復元する。
次に、プロセッサ606は、ステップ1605の処理で選択されたLog table621の行に登録されたログの定型部分及びステップ1603の処理で抽出されたCommon table622の行のlevel712に登録されたレベルを、ステップ1610の処理で復元されたログメッセージに付加することによって、ログを復元し、当該ログを検索結果として保持する(1611)。
次に、プロセッサ606は、ステップ1604の処理で抽出されたLog table621のすべての行に対してステップ1606〜1612の処理が実行された場合、ステップ1613の処理に進み、ステップ1604の処理で抽出されたLog table621のすべての行に対してステップ1606〜1612の処理が実行されていない場合、ステップ1605の処理に戻る(1612)。
次に、プロセッサ606は、ステップ1601の処理で抽出されたすべてのcidに対してステップ1603〜1613の処理が実行された場合、処理を終了し、ステップ1601の処理で抽出されたすべてのcidに対してステップ1603〜1613の処理が実行された場合、ステップ1602の処理に戻る(1613)。
図13は、本発明の第1実施形態のTerm table624に基づく検索処理の説明図である。
図13では、検索要求には、キーワードとして「apache」が含まれるものとする。
ステップ1601の処理では、Term table624の1行目及び2行目のcids722に登録されたcid(1、2)が抽出される。
ステップ1602の処理では、ステップ1601の処理で抽出されたcid(1、2)からcid(1)が選択される。
ステップ1603の処理では、ステップ1602の処理で選択されたcid(1)がcid711に登録されたCommon table622の1行目が抽出される(図13に示す(1)参照)。
ステップ1604の処理では、ステップ1602の処理で選択されたcid(1)がcid704に登録されたLog table621の1行目〜4行目が抽出される(図13に示す(2)参照)。
ステップ1605の処理では、ステップ1604の処理で抽出されたLog table621の1行目〜4行目から1行目が選択される。
ステップ1606の処理では、ステップ1605の処理で選択されたLog table621の1行目のvids705に登録されたすべてのvid(1、2)が抽出される。
ステップ1607の処理では、ステップ1606の処理で抽出されたvid(1、2)からvid(1)が選択される。
ステップ1608の処理では、ステップ1607の処理で選択されたvid(1)がvid731に登録されたVariable table623の1行目が抽出される(図13に示す(3)参照)。
ステップ1609の処理では、ステップ1606の処理で抽出されたすべてのvid(1,2)に対してステップ1608〜1609の処理が実行されていないので、ステップ1607の処理に戻り、vid(2)が選択される。
ステップ1608の処理では、2回目のステップ1607の処理で選択されたvid(2)がvid731に登録されたVariable table623の2行目が抽出される(図13に示す(4)参照)。
2回目のステップ1609の処理では、ステップ1606の処理で抽出されたすべてのvid(1,2)に対してステップ1608〜1609の処理が実行されたので、ステップ1610の処理に進む。
ステップ1610の処理では、ステップ1603の処理で抽出されたCommon table622の1行目のmsg template713に登録された共通部分「apache[%s] [client %s]: cannot find /var/www/favicon.ico」、並びに、ステップ1608の処理で抽出されたVariable table623の1行目及び2行目のvariable732に登録された変数部分「12345」及び「192.168.1.128」に基づいて、ログメッセージ「apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」が復元される。
ステップ1611の処理では、ログメッセージ「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」が復元される。
ステップ1612の処理では、ステップ1604の処理で抽出されたLog table621の2行目〜4行目に対してステップ1606〜1612の処理が実行されていないので、ステップ1605の処理に戻り、Log table621の2行目が選択される。
Log table621の1行目〜4行目に対してステップ1606〜1612の処理が実行された場合、ステップ1613の処理に進む。
ステップ1613の処理では、ステップ1601の処理で抽出されたcid(2)に対してステップ1603〜1613の処理が実行されていないので、ステップ1602の処理に戻る。
ステップ1602の処理では、ステップ1601の処理で抽出されたcid(1、2)からステップ1603〜1613の処理が実行されていないcid(2)が選択される。
ステップ1603の処理では、ステップ1602の処理で選択されたcid(2)がcid711に登録されたCommon table622の2行目が抽出される(図13に示す(5)参照)。
ステップ1604の処理では、ステップ1602の処理で選択されたcid(2)がcid704に登録されたLog table621の5行目が抽出される(図13に示す(6)参照)。
以降、ステップ1604の処理で抽出されたLog table621の5行目に対してステップ1606〜1613の処理を実行し、処理を終了する。
以上のように、ログメッセージの全文から検索要求に含まれるキーワードと一致する単語を検索せずに、Term table624に登録された単語から検索要求に含まれるキーワードと一致する単語を検索するので、検索効率を向上させることができる。
図14及び図15を用いてステップ1503の処理(Variable table623に基づく検索処理)について説明する。
図14は、本発明の第1実施形態のVariable table623に基づく検索処理のフローチャートである。
まず、プロセッサ606は、Variable table623のvariable732に登録された変数部分が、検索要求に含まれるキーワードと一致する行のlogids733に登録されたlogidを抽出する(1801)。
次に、プロセッサ606は、ステップ1801の処理で抽出されたlogidからステップ1803〜1810の処理が実行されていない一つのlogidを選択し、ステップ1801の処理で抽出されたすべてのcidに対してステップ1803〜1810の処理が実行されるまでステップ1802〜1810の処理を繰り返し実行する(1802)。
次に、プロセッサ606は、Log table621から、logid701に登録されたlogidがステップ1802の処理で選択されたlogidと一致する行のcid704に登録されたcid及びvids705に登録されたvidを抽出する(1803)。
次に、プロセッサ606は、Common table622から、cid711に登録されたcidがステップ1803の処理で抽出されたcidと一致する行を抽出する(1804)。
次に、プロセッサ606は、ステップ1803の処理で抽出されたvidからステップ1806〜1807の処理が実行されていない一つのvidを選択し、ステップ1803の処理で抽出されたすべてのvidに対してステップ1806〜1807の処理が実行されるまでステップ1805〜1807の処理を繰り返し実行する(1805)。
次に、プロセッサ606は、Variable table623から、vid731に登録されたvidがステップ1805の処理で選択されたvidと一致する行を抽出する(1806)。
次に、プロセッサ606は、ステップ1803の処理で抽出されたすべてのvidに対してステップ1806〜1807の処理が実行された場合、ステップ1808の処理に進み、ステップ1803の処理で抽出されたすべてのvidに対してステップ1806〜1807の処理が実行されていない場合、ステップ1805の処理に戻る(1807)。
次に、プロセッサ606は、ステップ1804の処理で抽出されたCommon table622のmsg template713に登録された共通部分、及びステップ1806の処理で抽出されたVariable table623のvariable732に登録された変数部分に基づいて、変数部分及び共通部分を抽出する前のログメッセージを復元する(1808)。ステップ1808の処理の詳細は図12に示すステップ1610の処理と同じであるので、説明を省略する。
次に、プロセッサ606は、ステップ1803の処理で抽出されたLog table621の行に登録されたログの定型部分及びステップ1804の処理で抽出されたCommon table622の行のlevel712に登録されたレベルを、ステップ1808の処理で復元されたログメッセージに付加することによって、ログを復元し、当該ログを検索結果として保持する(1809)。ステップ1809の処理の詳細は図12に示すステップ1611の処理と同じであるので、説明を省略する。
次に、プロセッサ606は、ステップ1801の処理で抽出されたすべてのlogidに対してステップ1803〜1810の処理が実行された場合、処理を終了し、ステップ1801の処理で抽出されたすべてのlogidに対してステップ1803〜1810の処理が実行されていない場合、ステップ1810の処理に戻る(1810)。
図15は、本発明の第1実施形態のVariable table623に基づく検索処理の説明図である。
図15では、検索要求には、キーワードとして「12345」が含まれるものとする。
ステップ1801の処理では、Variable table623の1行目のlogids733に登録されたlogid(1、2、3、4)が抽出される。
ステップ1802の処理では、ステップ1801の処理で抽出されたlogid(1、2、3、4)からlogid(1)が選択される。
ステップ1803の処理では、ステップ1802の処理で選択されたlogid(1)がlogid701に登録されたLog table621の1行目のcid704に登録されたcid(1)、及びvids705に登録されたvid(1、2)が抽出される。ステップ1801の処理でlogid(1、2、3、4)が抽出されているので、ステップ1803の処理では、最終的にはLog table621の1行目〜4行目が抽出されることになる(図15に示す(1)参照)。
ステップ1804の処理では、ステップ1803の処理で抽出されたcid(1)がcid711に登録されたCommon table622の1行目を抽出する(図15に示す(2)参照)。
ステップ1805の処理では、ステップ1803の処理で抽出されたvid(1、2)からvid(1)が選択される。
ステップ1806の処理では、ステップ1805の処理で選択されたvid(1)がvid731に登録されたVariable table623の1行目が抽出される。
ステップ1807の処理では、ステップ1803の処理で抽出されたvid(2)に対して、ステップ1806〜1807の処理が実行されていないので、ステップ1805の処理に戻り、ステップ1803の処理で抽出されたvid(2)が選択される。
2回目のステップ1806の処理では、ステップ1805の処理で選択されたvid(2)がvid731に登録されたVariable table623の2行目が抽出され、ステップ1807の処理では、ステップ1803の処理で抽出されたvid(1、2)に対してステップ1806〜1807の処理が実行されたので、ステップ1808の処理に進む。
ステップ1808の処理では、ステップ1804の処理で抽出されたCommon table622の1行目のmsg template713に登録された共通部分「apache[%s] [client %s]: cannot find /var/www/favicon.ico」、並びに、ステップ1806の処理で抽出されたVariable table623の1行目及び2行目のvariable732に登録された変数部分「12345」及び「192.168.1.128」に基づいて、ログメッセージ「apache[12345] [client 192.168.1.128]: cannot find /var/www/favicon.ico」が復元される。
ステップ1809の処理では、ログメッセージ「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」が復元される。
ステップ1810の処理では、ステップ1801の処理で抽出されたlogid(2、3、4)に対してステップ1802〜1810の処理が実行されていないので、ステップ1802の処理に戻り、ステップ1801の処理で抽出されたlogid(1、2、3、4)に対してステップ1802〜1810の処理を実行されるまでステップ1802〜1810が繰り返し実行される。
以上のように、ログメッセージの全文から検索要求に含まれるキーワードと一致する単語を検索せずに、Variable table623に登録された変数部分から検索要求に含まれるキーワードと一致する単語を検索するので、検索効率を向上させることができる。
次に、図16〜図19を用いて再構成プログラム614によるTemporary common table626に格納されたログを再構成する再構成処理について説明する。
図16は、本発明の第1実施形態の再構成プログラム614による再構成処理のフローチャートである。
再構成処理は、プロセッサ606が再構成プログラム614を所定のタイミングで実行することによって実行される。所定のタイミングは、例えば、Temporary common table626にログが所定数以上格納されたタイミングであってもよいし、所定周期であってもよいし、管理者によって再構成処理の実行指令が入力されたタイミングであってもよい。
まず、プロセッサ606は、Temporary common table626に格納されたログを含むログ表示画面2100(図17参照)を管理者端末103に表示させ、管理者から変数部分の指定をログ表示画面2100を介して受け付ける(2001)。具体的には、プロセッサ606は、ログ表示画面2100を管理者端末103に表示させる指令であるログ表示画面表示指令を管理者端末103に送信する。管理者端末103は、ログ表示画面表示指令を受信した場合、ログ表示画面2100を図示しない出力デバイスに表示する。
なお、管理者がログ管理計算機101を直接操作可能である場合等、プロセッサ606は、入出力デバイス608にログ表示画面2100を表示してもよい。
ログ表示画面2100について図17を用いて説明する。図17は、本発明の第1実施形態のログ表示画面2100の説明図である。
ログ表示画面2100は、メッセージ表示領域2110、ログ表示領域2120、及びOKボタン2130を含む。
メッセージ表示領域2110には、管理者に変数部分の指定を促すメッセージ(「変数部分を選択してください」)が表示される。ログ表示領域2120には、Temporary common table626に格納されたログが表示される。管理者は、ログ表示領域2120に表示されたログを見て、変数部分を指定する。図17では、ログに含まれるログメッセージ中の「717」及び「192.168.242.130」が変数部分として指定された状態を示している。なお、管理者によって指定される変数部分の数は、一つであってもよいし、複数であってもよい。
OKボタン2130は、管理者が指定した変数部分をログ管理計算機101に入力する場合に操作される。
図16に戻り、ステップ2002以降の処理について説明する。
次に、プロセッサ606は、管理者による変数部分の指定を受け付けると、変数部分が指定されたログから、指定された変数部分及び指令された変数部分以外の部分である共通部分を抽出する(2002)。
次に、プロセッサ606は、Temporary common table626に格納されたログから、ステップ2002の処理で抽出された共通部分に対応するログを選択する(2003)。具体的には、プロセッサ606は、ステップ2002の処理で抽出された共通部分をすべて含むログを、ステップ2002の処理で抽出された共通部分に対応するログとして選択する。また、プロセッサ606は、選択したログのうち、ステップ2002の処理で抽出された共通部分と異なる部分を変数部分として抽出する。
次に、プロセッサ606は、ステップ2003の処理で選択されたログを表示する確認画面2200(図18参照)を管理者端末103に表示させる(2004)。具体的には、プロセッサ606は、確認画面2200を管理者端末103に表示させる指令である確認画面表示指令を管理者端末103に送信する。管理者端末103は、確認画面表示指令を受信した場合、確認画面2200を図示しない出力デバイスに表示する。
確認画面2200について図18を用いて説明する。図18は、本発明の第1実施形態の確認画面2200の説明図である。
確認画面2200は、共通部分表示領域2210、選択ログ数表示領域2220、選択ログ表示領域2230、及びOKボタン2240を含む。
共通部分表示領域2210には、ステップ2002の処理で選択された共通部分が表示される。選択ログ数表示領域2220には、ステップ2003の処理でTemporary common table626に格納されたログから選択されたログの数が表示される。選択ログ表示領域2230には、ステップ2003の処理でTemporary common table626に格納されたログから選択されたログのレベル、変数部分及びログメッセージが表示される。なお、ステップ2003の処理で選択されたログは、変数部分及び共通部分をまとめて管理可能なログである。
OKボタン2240は、管理者が指定した変数部分を確認し、指定した変数部分及び当該変数部分に基づいて抽出された共通部分を各テーブルに登録する場合に操作される。
図16に戻り、ステップ2005以降の処理について説明する。
プロセッサ606は、確認画面2200でOKボタン2240が操作されたことを示す情報を受け付けたか否かを判定する(2005)。
ステップ2005の処理で、確認画面2200でOKボタン2240が操作されたことを示す情報を受け付けたと判定された場合、プロセッサ606は、ステップ2002の処理で抽出された共通部分及びステップ2003の処理で選択された共通部分をCommon table622に格納するCommon table格納処理を実行する(2006)。Common table格納処理は、図9に示すステップ1208〜1210の処理と同じであるので、説明を省略する。
次に、プロセッサ606は、ステップ2002の処理で抽出された共通部分及びステップ2003の処理で選択された共通部分を構成する単語をTerm table624に格納するTerm table格納処理を実行する(2007)。Term table格納処理は、図9に示すステップ1211〜1214の処理と同じであるので、説明を省略する。
次に、プロセッサ606は、ステップ2002の処理で抽出された変数部分及びステップ2003の処理で選択された変数部分をVariable table623に格納するVariable table格納処理を実行する。Variable table格納処理は、図9に示すステップ1204〜1207の処理と同じであるので、説明を省略する。
ステップ2005の処理で、確認画面2200でOKボタン2240が操作されたことを示す情報を受け付けていないと判定された場合、プロセッサ606は再構成処理を終了する。
なお、確認画面2200はキャンセルボタンを含み、ステップ2004の処理の後で、プロセッサ606は、キャンセルボタンが操作されたことを示す情報を受け付けた場合、ステップ2001の処理に戻り、ログ表示画面2100を再度表示し、管理者が十分と考えるまで再構成処理を繰り返し実行するようにしてもよい。
また、ステップ2001の処理では、プロセッサ606は、Common table622に格納された共通部分を表示し、新たな変数部分を管理者に指定させてもよい。これによって、共通部分及び変数部分を一度まとめて格納したログをさらにまとめることができるので、ログの格納容量をさらに削減できる。
以上によって、本実施形態によれば、ログに含まれる非定型部分であるログメッセージから共通部分と変数部分とを抽出し、共通部分をまとめてCommon table622に格納でき、変数部分をまとめてVariable table623に格納できるので、ログの格納容量を削減できる。また、Common table622とVariable table623とが関連付けられるので、共通部分と変数部分とを結合させることができ、元のログに復元させることができ、検索処理時間も短縮できる。また、Term table624を用いて検索することによって、検索処理時間も短縮できる。
(第2実施形態)
本発明の第2実施形態について、図19を用いて説明する。
本実施形態では、Log table621に各ログの変数部分が登録されるため、ストレージデバイス102はVariable table623を格納しなくてもよい。
図19は、本発明の第2実施形態のLog table621の説明図である。
Log table621は、logid701、datetime702、host703、cid704、varA901、varB902、varC903、及びvarD904を含む。logid701、datetime702、host703、及びcid704は、第1実施形態の図3に示すLog table621と同じであるので、説明を省略する。
図19に示すLog table621では、一つのログに対して格納可能な変数部分の最大数を4として、変数部分はvarA901〜varD904に登録される。
本実施形態は、第1実施形態と比較して、図12に示すステップ1611の処理及び図14に示す1809の処理で、Log table621に格納されたログの定型部分とVariable table623に格納された変数部分とを結合しなくてもよいので、検索処理を高速化させることができるが、Log table621に格納可能な一つのログに対する変数部分の数を予め設定しなければなない。Log table621に格納可能な一つのログに対する変数部分の数が少なければ、ログから変数部分及び共通部分を効率よく抽出できず、Log table621に格納可能な一つのログに対する変数部分の数が多すぎれば、変数部分が少ない行では余分な格納容量を使ってしまい、Log table621がスパースになってしまう。
(第3実施形態)
本発明の第3実施形態について、図20〜図22を用いて説明する。
第1実施形態の図5に示すTerm table624のcids722及び図6に示すVariable table623のlogids733には、行番号がリストとして登録されるが、本実施形態では、Term table624のcid723(図21参照)及びVariable table623のlogid734(図22参照)には、一つの行番号が登録され、関連付けられる行番号の数だけ行が追加される。
図20は、本発明の第3実施形態のLog table621の説明図である。
本発明の第3実施形態のLog table621は、vids705を含まなくてもよい。Variable table623のlogid734に登録されたLog table621の行番号によって、Variable table623に格納された変数部分とLog table621に格納されたログの定型部分とが一対一で関連付けられ、あるログに含まれる変数部分は、Variable table623のlogid734に登録された識別情報によって識別されるLog table621の行を検索すればよいためである。
図21は、本発明の第3実施形態のTerm table624の説明図である。
Term table624は、term721及びcid723を含む。cid723には、term721に登録された単語が抽出された一つの共通部分を示すCommon table622の1行の識別情報が登録される。例えば、「apache」はCommon table622の1行目及び2行目の共通部分から抽出されるが、これらは、Term table624では2行に渡って登録される。
図22は、本発明の第3実施形態のVariable table623の説明図である。
Variable table623は、vid731、variable732、及びlogid734を含む。logid734には、variable732に登録された変数部分が抽出された一つのログを示すLog table621の1行の識別情報が登録される。例えば、「12345」はLog table621の1行目〜4行目のログから抽出されるが、これらは、Variable table623では4行に渡って登録される。
(第3実施形態の変形例)
第3実施形態の図21に示すTerm table624では、同じ単語が複数の共通部分から抽出された場合、同じ単語が複数行に渡って登録される。本変形例では、共通部分から抽出された単語に識別情報を付与し、当該単語の識別情報と共通部分の識別情報とを関連付ける。
図23は、本発明の第3実施形態の変形例のTerm−iD table1101の説明図である。
Term−iD table1101は、共通部分から抽出された単語と当該単語の識別情報とを管理するテーブルであり、tid1102及びterm1103を含む。
tid1102には、単語に付与された単語が登録される。term1103には、共通部分から抽出された単語が登録される。
図24は、本発明の第3実施形態の変形例のTermid−commonid table1111の説明図である。
Termid−commonid table1111は、単語に付与された識別情報と共通部分が格納されたCommon table622の行の識別情報とを管理するテーブルであり、tid1112及びcid1113を含む。
tid1112には、単語に付与された識別情報が登録される。cid1113には、共通部分が格納されたCommon table622の行の識別情報が登録される。
これによって、Term table624に同じ文字列を冗長して格納しなくてもよいので、格納容量を削減できる。
なお、第3実施形態の図22に示すVariable table623でも、図21に示すTerm table624と同様に、同じ変数部分が複数行に渡って登録される。Variable table623も、変数部分と当該変数部分の識別情報とを管理する不図示のVariable−iD table、及び、当該変数部分の識別情報と、変数部分が抽出されたログが格納されるLog tableの行の識別情報とを管理するVariableid−logid tableによって構成されてもよい。これによって、Variable table623に同じ文字列を冗長して格納しなくてもよいので、格納容量を削減できる。
(第4実施形態)
本発明の第4実施形態について図25A〜図25Cを用いて説明する。
本発明の第4実施形態では、変数部分は種別ごとに異なるテーブルに格納される。これによって、変数部分の種別及び変数部分を検索条件として含む検索要求を受け付けた場合、検索条件の変数部分の種別に対応するテーブルを検索することによって、検索処理を高速化できる。
本実施形態では、図7に示すVariable definiton table625で定義される変数部分の種別は、所定の数字列、IPアドレス、及び所定の文字列である。
図25Aは、本発明の第4実施形態の種別が数字列であるNumber variable table2301の説明図である。
Number variable table2301は、nvid2311、variable2312、及びlogids2313を含む。
nvid2311には、Number variable table2301の行の識別情報が登録される。variable2312には、所定の数字列と一致して抽出された変数部分がINT型で登録される。logids2313には、変数部分が抽出されたログが格納されるLog table621の行の識別情報が登録される。
図25Bは、本発明の第4実施形態の種別が文字列であるString Variable table2302の説明図である。
String Variable table2302は、svid2321、variable2322、及びlogids2323を含む。
svid2321には、String Variable table2302の行の識別情報が登録される。variable2322には、所定の文字列と一致して抽出された変数部分がString型で登録される。logids2323には、変数部分が抽出されたログが格納されるLog table621の行の識別情報が登録される。
図25Cは、本発明の第4実施形態の種別がIPアドレスであるIPaddress variable table2303の説明図である。
IPaddress variable table2303は、ipvid2331、variable2332、及びlogids2333を含む。
ipvid2331には、IPaddress variable table2303の行の識別情報が登録される。variable2332には、IPアドレスの形式と一致して抽出された変数部分がINT型で登録される。なお、variable2332に登録されるIPアドレスは整数型でよいのは、ピリオドで区切られた各数値が2バイトの数値で表現でき、IPアドレスは8バイトの整数型で表現できるためである。logids2323には、変数部分が抽出されたログが格納されるLog table621の行の識別情報が登録される。
以上のように、変数部分が格納されるテーブルを変数の種別ごとに異なるテーブルにすることによって、数値を検索条件として含む場合において、数値範囲を指定可能となる。これによって、例えば、100以上の数値を含むログメッセージが検索可能となり、192.168.23.110から192.168.23.130までのIPアドレスを含むログメッセージが検索可能となる。
また、種別がIPアドレスである変数部分を格納する場合、当該IPアドレスを文字列として格納するより、当該IPアドレスを整数型で格納したほうが、IPアドレスを表現するのに必要なバイト数が少なくてよいので、格納容量を削減できる。
また、本実施形態の検索処理では、検索プログラム615は、図14に示すステップ1801の処理で、検索要求に含まれるキーワードの種別を特定し、特定した種別に対応するVariable table623を検索すればよい。例えば、検索要求に含まれるキーワードがIPアドレスを示す場合、検索プログラム615は、IPaddress variable table2303を検索すればよい。これによって、Variable table623をすべて検索する必要がなくなるので、検索時間を短縮化できる。
以上のように、本発明では、多種多様なメッセージを含む非定型ログの管理において、ログの格納容量を削減でき、格納されたログから検索対象のログを高速に検索できる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
動作記録であるログを生成するログ生成システムからログを取得し、取得したログを格納するログ管理計算機に適用可能である。

Claims (12)

  1. 動作記録であるログを生成するログ生成システムから前記ログを取得し、前記取得したログを管理するログ管理計算機であって、
    前記ログ管理計算機は、
    前記取得したログを記憶する記憶領域と、
    前記記憶領域に記憶されたログを参照するプロセッサと、を備え、
    前記記憶領域は共通部分情報と相違部分情報とを含み、
    前記共通部分情報には、前記ログ生成システムから取得したログに含まれるログメッセージの他のログメッセージと共通する共通部分が格納され、
    前記相違部分情報には、前記ログメッセージの他のログメッセージと相違する相違部分が格納され、
    前記プロセッサは、
    一つのログメッセージが前記共通部分情報に格納されたいずれかの共通部分のすべての部分を含む場合、前記一つのログメッセージから、前記共通部分情報に格納された当該共通部分と一致しない部分を前記相違部分として抽出し、前記一つのログメッセージから前記相違部分として抽出された部分以外の部分を前記共通部分として抽出し、
    前記抽出した共通部分を前記記憶領域の共通部分情報に格納し、
    前記抽出した相違部分を前記記憶領域の相違部分情報に格納し、
    前記一つのログメッセージが、前記共通部分情報に格納されたいずれの共通部分のすべての部分を含まない場合、前記一つのログメッセージを前記記憶領域の仮共通部分情報に格納し、
    検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログメッセージを検索することを特徴とするログ管理計算機。
  2. 請求項1に記載のログ管理計算機であって、
    前記共通部分情報及び前記相違部分情報は、同じログメッセージから抽出された共通部分と相違部分とを関連付けるための識別情報を含むことを特徴とするログ管理計算機。
  3. 請求項2に記載のログ管理計算機であって、
    前記プロセッサは、
    前記検索要求を受け付けた場合、前記共通部分情報に格納された共通部分から前記検索条件と一致する共通部分を選択し、
    前記相違部分情報に相違部分から前記選択した共通部分に関連付けられる前記相違部分を選択し、
    前記選択された相違部分と前記選択された共通部分とを結合することによって、前記相違部分及び前記共通部分をログメッセージに復元し、
    前記復元したログメッセージを前記検索条件と一致するログメッセージとして出力することを特徴とするログ管理計算機。
  4. 請求項3に記載のログ管理計算機であって、
    前記プロセッサは、
    前記共通部分情報に格納された共通部分を構成する単語を抽出し、前記抽出した単語、及び前記抽出した単語と前記単語が抽出された共通部分とを関連付ける情報を含む索引情報を前記記憶領域に格納し、
    前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記索引情報を参照することによって、前記検索条件と一致する共通部分を選択することを特徴とするログ管理計算機。
  5. 請求項2に記載のログ管理計算機であって、
    前記プロセッサは、
    前記検索要求を受け付けた場合、前記相違部分情報として格納された相違部分から前記検索条件と一致する相違部分を選択し、
    前記共通部分情報として格納された共通部分から前記選択した相違部分に関連付けられる前記共通部分を選択し、
    前記選択された相違部分と前記選択された共通部分とを結合することによって、前記相違部分及び前記共通部分をログメッセージに復元し、
    前記復元したログメッセージを前記検索条件と一致するログメッセージとして出力することを特徴とするログ管理計算機。
  6. 請求項1に記載のログ管理計算機であって、
    前記プロセッサは、
    前記仮共通部分情報に格納されたログメッセージから、前記仮共通部分情報に格納された他のログメッセージと共通する共通部分を抽出し、前記仮共通部分情報に格納された他のログメッセージと相違する相違部分を抽出し、
    前記抽出した共通部分を前記記憶領域の前記共通部分情報に格納し、前記抽出した相違部分を前記記憶領域の前記相違部分情報に格納することを特徴とするログ管理計算機。
  7. 動作記録であるログを生成するログ生成システムから前記ログを取得し、前記取得したログを管理するログ管理計算機であって、
    前記ログは、定型部分と動作内容を示すログメッセージを含む非定型部分とを含み、
    前記ログ管理計算機は、
    前記取得したログを記憶する記憶領域と、
    前記記憶領域に記憶されたログを参照するプロセッサと、を備え、
    前記記憶領域は、定型部分情報、共通部分情報、及び相違部分情報を含み、
    前記定型部分情報には、前記ログ生成システムから取得したログの定型部分が格納され、
    前記共通部分情報には、前記ログの非定型部分のうち他のログの非定型部分と共通する共通部分が格納され、
    前記相違部分情報には、前記ログの非定型部分のうち他のログの非定型部分と相違する相違部分が格納され、
    前記プロセッサは、
    前記ログ生成システムから取得したログから、前記定型部分及び前記非定型部分を抽出し、前記抽出した定型部分を前記記憶領域の定型部分情報に格納し、
    前記抽出された非定型部分が、前記共通部分情報に格納されたいずれかの共通部分のすべての部分を含む場合、前記抽出された非定型部分から、前記共通部分情報に格納された当該共通部分と一致しない部分を前記相違部分として抽出し、前記抽出された非定型部分から前記相違部分として抽出された部分以外の部分を前記共通部分として抽出し、
    前記抽出した共通部分を前記記憶領域の共通部分情報に格納し、
    前記抽出した相違部分を前記記憶領域の相違部分情報に格納し、
    前記抽出された非定型部分が、前記共通部分情報に格納されたいずれの共通部分のすべての部分を含まない場合、前記抽出された非定型部分を前記記憶領域の仮共通部分情報に格納し、
    前記仮共通部分情報に格納された非定型部分から、前記仮共通部分情報に格納された他の非定型部分と共通する共通部分を抽出し、前記仮共通部分情報に格納された他の非定型部分と相違する相違部分を抽出し、
    前記抽出した共通部分を前記共通部分情報に格納し、前記抽出した相違部分を前記相違部分情報に格納し、
    検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログを検索することを特徴とするログ管理計算機。
  8. 請求項7に記載のログ管理計算機であって、
    前記定型部分情報、前記共通部分情報、及び前記相違部分情報は、同じログから抽出された定型部分と共通部分と相違部分とを関連付けるための識別情報を含み、
    前記プロセッサは、
    前記共通部分情報に格納された共通部分を構成する単語を抽出し、前記抽出した単語、及び前記抽出した単語と前記単語が抽出された共通情報とを関連付ける情報を含む索引情報を前記記憶領域に格納し、
    前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記索引情報を参照することによって、前記検索条件と一致する共通部分を選択し、
    前記相違部分情報に格納された相違部分から前記選択した共通部分に関連付けられる前記相違部分を選択し、
    前記定型部分情報に格納された定型部分から前記選択した共通部分に関連付けられる前記定型部分を選択し、
    前記選択された共通部分と、前記選択された相違部分と、前記選択された定型部分文と、を結合することによって、前記定型部分、前記共通部分及び前記相違部分をログに復元し、
    前記復元したログを前記検索条件と一致するログとして出力することを特徴とするログ管理計算機。
  9. 請求項7に記載のログ管理計算機であって、
    前記定型部分情報、前記共通部分情報、及び前記相違部分情報は、同じログから抽出された定型部分と共通部分と相違部分とを関連付けるための識別情報を含み、
    前記プロセッサは、
    前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記相違部分情報に格納された相違部分から前記検索条件と一致する相違部分を選択し、
    前記共通部分情報に格納された共通部分から前記選択した相違部分に関連付けられる前記共通部分を選択し、
    前記定型部分情報に格納された定型部分から前記選択した相違部分に関連付けられる前記定型部分を選択し、
    前記選択された共通部分と前記選択された相違部分と前記選択された定型部分文と結合することによって、前記定型部分、前記共通部分及び前記相違部分をログに復元し、
    前記復元したログを前記検索条件と一致するログとして出力することを特徴とするログ管理計算機。
  10. 請求項9に記載のログ管理計算機であって、
    前記プロセッサは、
    前記非定型部分から前記相違部分を抽出した場合、前記抽出した相違部分の種別を特定し、
    前記抽出した相違部分を前記特定した種別に対応する相違部分情報に格納し、
    前記検索条件としてキーワードを含む検索要求を受け付けた場合、前記検索要求に含まれるキーワードの種別を特定し、
    前記特定したキーワードの種別に対応する相違部分情報から前記キーワードと一致する相違部分を選択することを特徴とするログ管理計算機。
  11. 請求項7に記載のログ管理計算機であって、
    前記プロセッサは、
    前記仮共通部分情報に格納された非定型部分文を出力し、
    前記出力された非定型部分文の少なくとも一つの非定型部分の相違部分を指定した管理者の入力を受け付けた場合、前記相違部分の入力を受け付けた非定型部分から前記指定された部分を前記相違部分として抽出し、前記指定された部分以外を前記共通部分として抽出することを特徴とするログ管理計算機。
  12. プロセッサ及び記憶領域を有し、動作記録であるログを生成するログ生成システムから前記ログを取得するログ管理計算機における、前記取得したログを管理するログ管理方法であって、
    前記記憶領域は共通部分情報と相違部分情報とを含み、
    前記共通部分情報には、前記ログ生成システムから取得したログに含まれるログメッセージの他のログメッセージと共通する共通部分が格納され、
    前記相違部分情報には、前記ログメッセージの他のログメッセージと相違する相違部分が格納され、
    前記方法は、
    前記プロセッサが、一つのログメッセージが前記共通部分情報に格納されたいずれかの共通部分のすべての部分を含む場合、前記一つのログメッセージから、前記共通部分情報に格納された当該共通部分と一致しない部分を前記相違部分として抽出し、前記一つのログメッセージから前記相違部分として抽出された部分以外の部分を前記共通部分として抽出するステップと、
    前記プロセッサが、前記抽出した共通部分を前記記憶領域の共通部分情報に格納するステップと、
    前記プロセッサが、前記抽出した相違部分を前記記憶領域の相違部分情報に格納するステップと、
    前記プロセッサが、前記一つのログメッセージが、前記共通部分情報に格納されたいずれの共通部分のすべての部分を含まない場合、前記一つのログメッセージを前記記憶領域の仮共通部分情報に格納するステップと、
    前記プロセッサが、検索条件を含む検索要求を受け付けた場合、前記共通部分情報又は前記相違部分情報を参照して、前記検索条件と一致するログメッセージを検索するステップと、を含むことを特徴とするログ管理方法。
JP2014504492A 2012-03-12 2012-03-12 ログ管理計算機、及びログ管理方法 Expired - Fee Related JP5781685B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/056303 WO2013136418A1 (ja) 2012-03-12 2012-03-12 ログ管理計算機、及びログ管理方法

Publications (2)

Publication Number Publication Date
JPWO2013136418A1 JPWO2013136418A1 (ja) 2015-08-03
JP5781685B2 true JP5781685B2 (ja) 2015-09-24

Family

ID=49160389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014504492A Expired - Fee Related JP5781685B2 (ja) 2012-03-12 2012-03-12 ログ管理計算機、及びログ管理方法

Country Status (3)

Country Link
US (1) US20140317137A1 (ja)
JP (1) JP5781685B2 (ja)
WO (1) WO2013136418A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150248563A1 (en) * 2014-03-03 2015-09-03 International Business Machines Corporation Requesting instant messaging history by validated parties
US9940365B2 (en) * 2014-07-08 2018-04-10 Microsoft Technology Licensing, Llc Ranking tables for keyword search
JPWO2016129275A1 (ja) * 2015-02-10 2017-12-28 日本電気株式会社 情報処理装置、ログ管理システム、ログ管理方法及びプログラム
WO2016199433A1 (ja) * 2015-06-11 2016-12-15 日本電気株式会社 メッセージ分析装置、メッセージ分析方法、および、記憶媒体
JP6048555B1 (ja) * 2015-09-10 2016-12-21 日本電気株式会社 分類情報作成装置、分類情報作成方法、分類情報作成プログラム、検索装置、検索方法、及び、検索プログラム
JP7006272B2 (ja) * 2015-11-13 2022-01-24 日本電気株式会社 ログ分析システム、方法およびプログラム
US20180357214A1 (en) * 2015-11-13 2018-12-13 Nec Corporation Log analysis system, log analysis method, and storage medium
US10839308B2 (en) 2015-12-28 2020-11-17 International Business Machines Corporation Categorizing log records at run-time
US11061944B2 (en) * 2017-01-30 2021-07-13 Micro Focus Llc Inferring topological linkages between components
JP6455541B2 (ja) * 2017-03-30 2019-01-23 日本電気株式会社 通信システム
US11023420B1 (en) * 2018-03-29 2021-06-01 EMC IP Holding Company LLC Real-time compression of log data
US11126531B2 (en) * 2018-06-29 2021-09-21 EMC IP Holding Company LLC Real-time viewing tool for compressed log data
US11151089B2 (en) * 2018-10-29 2021-10-19 EMC IP Holding Company LLC Compression of log data using pattern recognition
CN111639059A (zh) * 2020-05-28 2020-09-08 深圳壹账通智能科技有限公司 日志信息的存储及定位方法、电子设备及存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0554077A (ja) * 1991-08-29 1993-03-05 Nec Corp 単語辞書検索装置
JP3003915B2 (ja) * 1994-12-26 2000-01-31 シャープ株式会社 単語辞書検索装置
JP3566441B2 (ja) * 1996-01-30 2004-09-15 シャープ株式会社 テキスト圧縮用辞書作成装置
JP3778652B2 (ja) * 1997-04-18 2006-05-24 株式会社日立製作所 ログデータ収集管理方法及びその装置
JP2001356939A (ja) * 2000-06-13 2001-12-26 Tokyo Electric Power Co Inc:The ログ情報解析装置、方法および記録媒体
JP2005301497A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd ストレージ管理装置、リストア方法及びそのプログラム
US7865962B2 (en) * 2005-08-15 2011-01-04 Microsoft Corporation Multi-level sequence number based lazy invalidation
JP4483807B2 (ja) * 2006-03-16 2010-06-16 日本電気株式会社 ログフォーマット変換装置、ログフォーマット変換方法、及びログフォーマット変換プログラム
KR100892842B1 (ko) * 2007-08-08 2009-04-10 엔에이치엔(주) 사용자 중심 정보탐색 방법 및 시스템
JP5327784B2 (ja) * 2008-07-30 2013-10-30 株式会社日立製作所 計算機システム、情報収集支援装置及び情報収集支援方法
JP5144488B2 (ja) * 2008-12-22 2013-02-13 Kddi株式会社 情報処理システムおよびプログラム
JP5349103B2 (ja) * 2009-03-24 2013-11-20 大日本スクリーン製造株式会社 基板処理装置および障害要因解明プログラム
US20110196864A1 (en) * 2009-09-03 2011-08-11 Steve Mason Apparatuses, methods and systems for a visual query builder
JP2011128915A (ja) * 2009-12-18 2011-06-30 Mitsubishi Electric Corp ログ収集装置、ログ収集装置のログ収集方法、ログ収集システム、ログ収集システムのログ収集方法

Also Published As

Publication number Publication date
WO2013136418A1 (ja) 2013-09-19
JPWO2013136418A1 (ja) 2015-08-03
US20140317137A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
JP5781685B2 (ja) ログ管理計算機、及びログ管理方法
US10257057B2 (en) System and a process for searching massive amounts of time-series
US9081829B2 (en) System for organizing and fast searching of massive amounts of data
US9031997B2 (en) Log file compression
US20130091105A1 (en) System for organizing and fast searching of massive amounts of data
AU2013210018B2 (en) Location independent files
US11593373B2 (en) Compression, searching, and decompression of log messages
US20130066869A1 (en) Computer system, method of managing a client computer, and storage medium
JP2010224705A (ja) ログ検索システム
JP6184641B1 (ja) 時系列データと分析データとのうちの少なくとも一部を入力データとした分析処理を実行する分析システム及び分析方法
JP2005266916A (ja) サーバ差分管理システム及び情報処理装置の制御方法
WO2022057357A1 (zh) 数据查询方法及装置、数据库系统
JP2016521402A (ja) データの編成及び高速検索
JP5695571B2 (ja) サーバー装置及びコンテンツ取得方法
US10083121B2 (en) Storage system and storage method
US11720591B1 (en) Virtual metrics
US11892988B1 (en) Content pack management
JP5546909B2 (ja) データ処理システム及び方法及びプログラム
JP2023551641A (ja) データ検索のためのリストベースのデータ保存
CN115309863B (zh) 名单内容的扩充方法、装置、电子设备及可读存储介质
US20230195694A1 (en) Compression, searching, and decompression of log messages
US20240364361A1 (en) Management of compressed database segments using multiple compression techniques
JP2013134554A (ja) コマンド処理システム及び方法
US10942969B2 (en) Non-transitory computer-readable storage medium, search control method, and search control apparatus
WO2020065960A1 (ja) 情報処理装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150605

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150715

R150 Certificate of patent or registration of utility model

Ref document number: 5781685

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees