(57)【特許請求の範囲】
【請求項１】
データを処理する処理装置と、ログ単位取得部と、ログ差分生成部と、差分対象判定部と、圧縮単位出力部とを有し、
上記ログ単位取得部は、上記処理装置を用いて、ログデータを構成する複数のログ単位データのなかからログ単位データを取得して、取得単位データとし、
上記ログ差分生成部は、上記処理装置を用いて、上記複数のログ単位データのうち、上記取得単位データと異なる２以上のログ単位データそれぞれについて、上記ログ単位取得部が取得した取得単位データとの違いを表わす差分データを生成し、
上記差分対象判定部は、上記処理装置を用いて、上記複数のログ単位データのうち、上記ログ差分生成部が生成した差分データのデータ量が最も小さいログ単位データを判定して、選択対象データとし、
上記圧縮単位出力部は、上記処理装置を用いて、上記ログ単位取得部が取得した取得単位データを圧縮した圧縮単位データとして、上記差分対象判定部が判定した選択対象データについて上記ログ差分生成部が生成した差分データを出力することを特徴とするログ圧縮装置。
【請求項２】
上記ログ圧縮装置は、更に、ログ分割部を有し、
上記ログ分割部は、上記処理装置を用いて、上記ログデータを分割して、複数のログ単位データを生成し、
上記ログ単位取得部は、上記処理装置を用いて、上記ログ分割部が生成した複数のログ単位データのなかから上記取得単位データを取得することを特徴とする請求項１に記載のログ圧縮装置。
【請求項３】
上記ログ圧縮装置は、更に、分割方式判定部を有し、
上記ログ分割部は、上記処理装置を用いて、複数の分割方式を使って上記ログデータを分割し、上記複数の分割方式それぞれに対応する複数のログ単位データの組を生成し、
上記分割方式判定部は、上記処理装置を用いて、上記ログ分割部が使用した複数の分割方式のなかから、上記ログデータの同じ範囲を分割した１以上のログ単位データに基づいて上記ログ差分生成部が生成した１以上の差分データのデータ量の合計が最も小さい分割方式を判定して、選択分割方式とし、
上記圧縮単位出力部は、上記処理装置を用いて、上記ログ単位取得部が取得した取得単位データを圧縮した圧縮単位データとして、上記分割方式判定部が判定した選択分割方式を使って上記ログ分割部が分割したログ単位データに基づいて上記ログ差分生成部が生成した差分データを出力することを特徴とする請求項２に記載のログ圧縮装置。
【請求項４】
上記ログ圧縮装置は、更に、ログ単位分類部を有し、
上記ログ単位分類部は、上記処理装置を用いて、上記複数のログ単位データを複数の種別に分類し、
上記ログ差分生成部は、上記処理装置を用いて、上記複数のログ単位データのうち、上記ログ単位分類部が上記取得単位データと同じ種別に分類したログ単位データについて、上記ログ単位取得部が取得した取得単位データとの差分データを生成することを特徴とする請求項１乃至請求項３のいずれかに記載のログ圧縮装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載のログ圧縮装置と、ログ復元装置とを有し、
上記ログ復元装置は、上記圧縮単位出力部が出力した圧縮単位データを取得し、取得した圧縮単位データから、上記ログ単位取得部が取得したログ単位データを復元することを特徴とするログ収集システム。
【請求項６】
データを処理する処理装置を有するコンピュータが実行することにより、上記コンピュータが請求項１乃至請求項４のいずれかに記載のログ圧縮装置として機能することを特徴とするコンピュータプログラム。
【請求項７】
データを処理する処理装置を有するログ圧縮装置がログデータを圧縮するログ圧縮方法において、
上記処理装置が、上記ログデータを構成する複数のログ単位データのなかからログ単位データを取得して、取得単位データとし、
上記処理装置が、上記複数のログ単位データのうち、上記取得単位データと異なる２以上のログ単位データそれぞれについて、取得した取得単位データとの差分データを生成し、
上記処理装置が、生成した差分データのうち、データ量が最も小さい差分データを判定し、
上記処理装置が、取得した取得単位データを圧縮した圧縮単位データとして、判定した差分データを出力することを特徴とするログ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器やシステムの動作を監視するために記録するログデータを圧縮するログ圧縮装置に関する。
【背景技術】
【０００２】
機器やシステムの動作を監視し、問題が発生した場合にその原因を探るため、機器やシステムの動作を記録したログデータを生成する装置がある。ログデータを生成する装置と、ログデータを蓄積保存する装置とが離れている場合、両者を通信回線などにより接続し、ログデータを転送する。
ログデータを生成する装置が単位時間当たりに生成するログデータの量が膨大である場合、通信回線の容量による制限などにより、すべてのログデータを転送できない場合がある。そのため、ログデータを圧縮することによりデータ量を小さくする技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１００７３号公報
【特許文献２】特開平１０−２３２７９９号公報
【特許文献３】特開２００９−１６９４７４号公報
【特許文献４】特開平９−２４５００９号公報
【特許文献５】特開２０００−３５００４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の圧縮方式では、ログデータの圧縮が十分でなく、すべてのログデータを収集できない場合がある。
この発明は、例えば上記のような課題を解決するためになされたものであり、ログデータを圧縮する圧縮率を高めることを目的とする。
【課題を解決するための手段】
【０００５】
この発明にかかるログ圧縮装置は、
データを処理する処理装置と、ログ単位取得部と、ログ差分生成部と、差分対象判定部と、圧縮単位出力部とを有し、
上記ログ単位取得部は、上記処理装置を用いて、ログデータを構成する複数のログ単位データのなかからログ単位データを取得して、取得単位データとし、
上記ログ差分生成部は、上記処理装置を用いて、上記複数のログ単位データのうち、上記取得単位データと異なる２以上のログ単位データそれぞれについて、上記ログ単位取得部が取得した取得単位データとの違いを表わす差分データを生成し、
上記差分対象判定部は、上記処理装置を用いて、上記複数のログ単位データのうち、上記ログ差分生成部が生成した差分データのデータ量が最も小さいログ単位データを判定して、選択対象データとし、
上記圧縮単位出力部は、上記処理装置を用いて、上記ログ単位取得部が取得した取得単位データを圧縮した圧縮単位データとして、上記差分対象判定部が判定した選択対象データについて上記ログ差分生成部が生成した差分データを出力することを特徴とする。
【発明の効果】
【０００６】
この発明にかかるログ圧縮装置によれば、ログ単位データを圧縮した圧縮単位データの圧縮率が高くなるので、ログ収集装置に対して送信するデータ量を少なくすることができる。したがって、通信線の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１におけるログ収集システム８００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１におけるログ生成装置８１０・ログ収集装置８３０の外観の一例を示す斜視図。
【図３】実施の形態１におけるログ生成装置８１０・ログ収集装置８３０のハードウェア資源の一例を示す図。
【図４】実施の形態１におけるログ圧縮装置８１２の機能ブロックの構成の一例を示すブロック構成図。
【図５】実施の形態１におけるログ復元装置８３２の機能ブロックの構成の一例を示すブロック構成図。
【図６】実施の形態１におけるログ圧縮処理Ｓ５１０の流れの一例を示すフローチャート図。
【図７】実施の形態１におけるログ復元処理Ｓ６１０の流れの一例を示すフローチャート図。
【図８】実施の形態１におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図９】実施の形態１におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図１０】実施の形態１におけるログ復元装置８３２が処理するデータの一例を示す図。
【図１１】実施の形態２におけるログ収集システム８００の構成の一例を示す構成図。
【図１２】実施の形態２におけるログ情報送信側の動作の一例を示す図。
【図１３】実施の形態２におけるログ情報受信側の動作の一例を示す図。
【図１４】実施の形態２におけるデータの流れの一例を示す図。
【図１５】実施の形態３におけるログ収集システム８００の構成の一例を示す構成図。
【図１６】実施の形態３におけるログ情報送信側のデータの流れの一例を示す図。
【図１７】実施の形態３におけるログ情報受信側のデータの流れの一例を示す図。
【図１８】実施の形態４におけるログ圧縮装置８１２の機能ブロックの構成の一例を示すブロック構成図。
【図１９】実施の形態４におけるログ圧縮処理Ｓ５１０の流れの一例を示すフローチャート図。
【図２０】実施の形態４におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図２１】実施の形態４におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図２２】実施の形態４におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図２３】実施の形態４におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図２４】実施の形態５におけるログ情報送信側のデータの流れの一例を示す図。
【図２５】実施の形態６におけるログ圧縮装置８１２の機能ブロックの構成の一例を示すブロック構成図。
【図２６】実施の形態６におけるログ圧縮処理Ｓ５１０の流れの一例を示すフローチャート図。
【図２７】実施の形態６におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図２８】実施の形態６におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図２９】実施の形態６におけるログ圧縮装置８１２が処理するデータの一例を示す図。
【図３０】実施の形態７におけるログ情報分割部がログ情報の順序を入れ替える様子の一例を示す図。
【図３１】実施の形態８におけるログ収集システム８００の構成の一例を示す構成図。
【図３２】実施の形態９におけるログ収集システム８００の構成の一例を示す構成図。
【発明を実施するための形態】
【０００８】
実施の形態１．
実施の形態１について、図１〜図１０を用いて説明する。
【０００９】
図１は、この実施の形態におけるログ収集システム８００の全体構成の一例を示すシステム構成図である。
ログ収集システム８００は、ログ生成装置８１０、通信線８２０、ログ収集装置８３０を有する。ログ生成装置８１０は、動作ログなどのログを表わすログデータを生成する。ログ収集装置８３０は、ログ生成装置８１０から離れた場所に位置し、通信線８２０を介してログ生成装置８１０に接続している。ログ収集装置８３０は、通信線８２０を介して、ログ生成装置８１０が生成したログデータを収集し、蓄積する。通信線８２０は、ログ生成装置８１０とログ収集装置８３０との間の通信をするための回線であり、例えばインターネットである。
【００１０】
通信線８２０を介して単位時間当たりに伝送できるデータ量には、上限がある。ログ生成装置８１０は、生成したログデータを圧縮して、圧縮ログデータを生成し、生成した圧縮ログデータを送信する。ログ収集装置８３０は、ログ生成装置８１０が送信した圧縮ログデータを受信して、受信した圧縮ログデータからログデータを復元する。これにより、ログ生成装置８１０が生成するログデータのデータ量が多く、通信線８２０の通信容量を上回るような場合であっても、ログ収集装置８３０は、すべてのログデータを欠落なく収集し、蓄積することができる。
【００１１】
ログ生成装置８１０は、例えばログ記録装置８１１、ログ圧縮装置８１２、ログ送信装置８１３を有する。ログ記録装置８１１は、動作ログなどのログを記録して、ログデータを生成する。ログ圧縮装置８１２は、ログ記録装置８１１が生成したログデータを圧縮して、圧縮ログデータを生成する。ログ送信装置８１３は、通信線８２０を介してログ収集装置８３０に対して、ログ圧縮装置８１２が生成した圧縮ログデータを送信する。
ログ収集装置８３０は、例えばログ受信装置８３１、ログ復元装置８３２、ログ蓄積装置８３３を有する。ログ受信装置８３１は、通信線８２０を介してログ生成装置８１０が送信した圧縮ログデータを受信する。ログ復元装置８３２は、ログ受信装置８３１が受信した圧縮ログデータからログデータを復元する。ログ蓄積装置８３３は、ログ復元装置８３２が復元したログデータを蓄積する。
【００１２】
図２は、この実施の形態におけるログ生成装置８１０・ログ収集装置８３０の外観の一例を示す斜視図である。
ログ生成装置８１０・ログ収集装置８３０は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
【００１３】
図３は、この実施の形態におけるログ生成装置８１０・ログ収集装置８３０のハードウェア資源の一例を示す図である。
ログ生成装置８１０・ログ収集装置８３０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置（ＨＤＤ９２０）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１４】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１５】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、ＨＤＤ９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１６】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００１７】
図４は、この実施の形態におけるログ圧縮装置８１２の機能ブロックの構成の一例を示すブロック構成図である。
ログ圧縮装置８１２は、ログ取得部１１１、ログ分割部１１２、ログ単位取得部１２１、ログ単位記憶部１２２、ログ差分生成部１２３、差分対象判定部１３１、ログ差分記憶部１３２、圧縮単位出力部１３４を有する。
【００１８】
ログ取得部１１１は、ＣＰＵ９１１を用いて、ログ記録装置８１１が生成したログデータを取得する。
ログ分割部１１２は、ＣＰＵ９１１を用いて、ログ取得部１１１が取得したログデータを分割して、ログ単位データを生成する。例えば、ログ分割部１１２は、ログデータのなかに改行文字が含まれる場合に、改行文字を境界として、ログデータを１行ごとに分割する。この場合、ログ単位データは、ログデータの１行分である。通常、ログ記録装置８１１は、１行を単位とするログデータを生成する。しかし、ログ記録装置８１１によっては、複数行を１つの単位とするログデータを生成するものもある。その場合、ログ分割部１１２は、ログデータの単位となる行数ごとに、ログデータを分割する。
【００１９】
ログ単位取得部１２１は、ＣＰＵ９１１を用いて、ログ分割部１１２が分割したログ単位データを１つずつ順に取得する。
ログ単位記憶部１２２は、ＨＤＤ９２０を用いて、ログ単位取得部１２１が取得したログ単位データを記憶する。ログ単位記憶部１２２は、所定の数のログ単位データをバッファする。ログ単位記憶部１２２は、例えば１０個のログ単位データを記憶する。ログ単位記憶部１２２は、ログ単位取得部１２１が取得した１つ目のログ単位データから１０個目のログ単位データまでを順番に記憶する。ログ単位取得部１２１が１１個目のログ単位データを取得すると、ログ単位記憶部１２２は、１つ目のログ単位データに上書きして、１１個目のログ単位データを記憶することにより、２つ目のログ単位データから１１個目のログ単位データまでを記憶する。次に、ログ単位取得部１２１が１２個目のログ単位データを取得すると、ログ単位記憶部１２２は、２つ目のログ単位データを捨てて、３つ目のログ単位データから１２個目のログ単位データまでを記憶する。このように、ログ単位記憶部１２２は、最新のログ単位データからさかのぼって所定の数に至るまでのログ単位データを記憶する。
ログ差分生成部１２３は、ＣＰＵ９１１を用いて、ログ単位取得部１２１が取得したログ単位データ（以下「取得単位データ」と呼ぶ。）と、ログ単位記憶部１２２が記憶した複数のログ単位データそれぞれとの差分を取り、差分データを生成する。差分データは、取得単位データとログ単位データとの違いを表わすものであり、差分データとログ単位データとから取得単位データを復元することができる。取得単位データとログ単位データとの違いが小さければ、差分データのデータ量は小さくなり、逆に、取得単位データとログ単位データとの違いが大きければ、差分データのデータ量は大きくなる。
【００２０】
差分対象判定部１３１は、ＣＰＵ９１１を用いて、ログ差分生成部１２３が生成した差分データのなかから、最もデータ量が小さい差分データを判定する。すなわち、差分対象判定部１３１は、ログ単位記憶部１２２が記憶したログ単位データのなかから、取得単位データとの違いが最も小さいログ単位データを判定する。差分対象判定部１３１は、ＣＰＵ９１１を用いて、取得単位データとの違いが最も小さいと判定したログ単位データがどれであるかを表わすデータ（以下「差分対象データ」と呼ぶ。）を生成する。
ログ差分記憶部１３２は、ＨＤＤ９２０を用いて、差分対象判定部１３１が生成した差分対象データと、ログ差分生成部１２３が生成した差分データのうち最もデータ量が小さいと差分対象判定部１３１が判定した差分データとを記憶する。
【００２１】
なお、取得単位データとログ単位データとの違いが大きい場合、差分を取ることにより、逆にデータ量が大きくなる場合もある。そのため、差分対象判定部１３１は、ログ単位取得部１２１が取得した取得単位データも、ログ差分生成部１２３が生成した差分データの一つとみなして、最もデータ量が小さい差分データを判定する。これにより、もとの取得単位データのほうがデータ量が小さい場合、ログ差分記憶部１３２は、もとの取得単位データを差分データとして記憶する。
【００２２】
圧縮単位出力部１３４は、ＣＰＵ９１１を用いて、ログ差分記憶部１３２が記憶した差分対象データと差分データとの組を、圧縮単位データとして出力する。圧縮単位出力部１３４が出力した圧縮単位データは、ログ単位取得部１２１が取得したログ単位データに対応する。ログ分割部１１２が分割した１以上のログ単位データに対応する１以上の圧縮単位データ全体が、ログ取得部１１１が取得したログデータに対応する圧縮ログデータとなる。
圧縮単位出力部１３４が出力した圧縮単位データは、ログ送信装置８１３が通信線８２０を介してログ収集装置８３０に対して送信する。ログ送信装置８１３は、圧縮単位データをそのまま送信する構成でもよいし、複数の圧縮単位データを結合して送信する構成でもよい。また、ログ送信装置８１３は、圧縮単位データあるいはその結合を更に別の圧縮方式を用いて圧縮したものを送信する構成でもよい。
【００２３】
図５は、この実施の形態におけるログ復元装置８３２の機能ブロックの構成の一例を示すブロック構成図である。
ログ復元装置８３２は、圧縮単位取得部２１１、ログ単位復元部２２１、復元単位記憶部２２２、ログ結合部２３１、ログ出力部２３２を有する。
【００２４】
圧縮単位取得部２１１は、ＣＰＵ９１１を用いて、ログ受信装置８３１が受信した圧縮単位データを取得する。ログ送信装置８１３が複数の圧縮単位データを結合して送信する構成の場合、ログ受信装置８３１は、受信したデータを分割して、圧縮単位データを復元する。また、ログ送信装置８１３が圧縮単位データあるいはその結合を更に圧縮して送信する構成の場合、ログ受信装置８３１は、受信したデータを展開して、圧縮単位データを復元する。圧縮単位取得部２１１は、ログ受信装置８３１が復元した圧縮単位データを取得する。
【００２５】
ログ単位復元部２２１は、ＣＰＵ９１１を用いて、圧縮単位取得部２１１が取得した圧縮単位データに基づいて、取得単位データを復元する。
復元単位記憶部２２２は、ＨＤＤ９２０を用いて、ログ単位復元部２２１が復元した取得単位データを復元単位データとして記憶する。
圧縮単位取得部２１１が取得した圧縮単位データは、差分対象データと差分データとの組である。ログ単位復元部２２１は、ＣＰＵ９１１を用いて、復元単位記憶部２２２が記憶した復元単位データのなかから、差分対象データが表わすログ単位データを復元した復元単位データを取得し、取得した復元単位データと差分データとから、取得単位データを復元する。
そのため、復元単位記憶部２２２は、少なくとも、ログ単位記憶部１２２が記憶するログ単位データの数と同じ数かそれ以上の数の復元単位データを記憶する。復元単位記憶部２２２は、ログ単位記憶部１２２と同様、最新の復元単位データからさかのぼって所定の数に至るまでの復元単位データを記憶する。
【００２６】
ログ結合部２３１は、ＣＰＵ９１１を用いて、復元単位記憶部２２２が記憶した復元単位データを結合して、復元ログデータを生成する。
ログ出力部２３２は、ＣＰＵ９１１を用いて、ログ結合部２３１が生成した復元ログデータを出力する。
ログ出力部２３２が出力した復元ログデータは、ログ蓄積装置８３３が蓄積して記憶する。
【００２７】
図６は、この実施の形態におけるログ圧縮処理Ｓ５１０の流れの一例を示すフローチャート図である。
ログ圧縮処理Ｓ５１０において、ログ圧縮装置８１２は、ログデータを圧縮する。ログ圧縮処理Ｓ５１０は、新規ログ取得工程Ｓ５１１、ログ分割工程Ｓ５１３、取得単位取得工程Ｓ５１４、圧縮初期化工程Ｓ５２１、ログ単位取得工程Ｓ５２２、ログ差分生成工程Ｓ５２３、データ量比較工程Ｓ５２４、圧縮更新工程Ｓ５２５、圧縮単位出力工程Ｓ５３２、取得単位記憶工程Ｓ５３３を有する。
【００２８】
新規ログ取得工程Ｓ５１１において、ログ取得部１１１は、ＣＰＵ９１１を用いて、ログ記録装置８１１が新たに生成したログデータを取得する。ログ取得部１１１は、ログ記録装置８１１が新たなログデータを出力するたびに取得する構成でもよいし、前回の取得時以降にログ記録装置８１１が出力したログデータを定期的に取得する構成でもよい。
【００２９】
ログ分割工程Ｓ５１３において、ログ分割部１１２は、ＣＰＵ９１１を用いて、新規ログ取得工程Ｓ５１１でログ取得部１１１が取得したログデータを分割して、１以上のログ単位データを生成する。
【００３０】
取得単位取得工程Ｓ５１４において、ログ単位取得部１２１は、ＣＰＵ９１１を用いて、ログ分割工程Ｓ５１３でログ分割部１１２が生成したログ単位データのなかから、未処理のログ単位データを１つ取得して、取得単位データとする。
ログ分割工程Ｓ５１３でログ分割部１１２が生成したログ単位データがすべて処理済であり、未処理のログ単位データがない場合、ログ圧縮装置８１２は、ログ圧縮処理Ｓ５１０を終了する。
ログ単位取得部１２１が未処理のログ単位データを取得した場合、ログ圧縮装置８１２は、圧縮初期化工程Ｓ５２１へ進む。
【００３１】
圧縮初期化工程Ｓ５２１において、ログ差分記憶部１３２は、ＨＤＤ９２０を用いて、取得単位取得工程Ｓ５１４でログ単位取得部１２１が取得した取得単位データを、圧縮単位データとなる差分データの候補として記憶する。
【００３２】
ログ単位取得工程Ｓ５２２において、ログ差分生成部１２３は、ＣＰＵ９１１を用いて、ログ単位記憶部１２２が記憶したログ単位データのなかから、未処理のログ単位データを１つ取得する。
ログ単位記憶部１２２が記憶したログ単位データがすべて処理済であり、未処理のログ単位データがない場合、ログ圧縮装置８１２は、圧縮単位出力工程Ｓ５３２へ進む。
ログ差分生成部１２３が未処理のログ単位データを取得した場合、ログ圧縮装置８１２は、ログ差分生成工程Ｓ５２３へ進む。
【００３３】
ログ差分生成工程Ｓ５２３において、ログ差分生成部１２３は、ＣＰＵ９１１を用いて、取得単位取得工程Ｓ５１４でログ単位取得部１２１が取得した取得単位データと、ログ単位取得工程Ｓ５２２で取得したログ単位データとに基づいて、差分データを生成する。
データ量比較工程Ｓ５２４において、差分対象判定部１３１は、ＣＰＵ９１１を用いて、ログ差分生成工程Ｓ５２３でログ差分生成部１２３が生成した差分データのデータ量と、ログ差分記憶部１３２が記憶した差分データのデータ量とを比較する。
ログ差分生成工程Ｓ５２３でログ差分生成部１２３が生成した差分データのデータ量のほうが大きい場合、ログ圧縮装置８１２は、ログ単位取得工程Ｓ５２２に戻り、ログ差分生成部１２３は、次のログ単位データを取得する。
ログ差分生成工程Ｓ５２３でログ差分生成部１２３が生成した差分データのデータ量のほうが小さい場合、ログ圧縮装置８１２は、圧縮更新工程Ｓ５２５へ進む。
【００３４】
圧縮更新工程Ｓ５２５において、ログ差分記憶部１３２は、ＨＤＤ９２０を用いて、ログ差分生成工程Ｓ５２３でログ差分生成部１２３が生成した差分データを、圧縮単位データとなる差分データの候補として記憶する。
ログ圧縮装置８１２は、ログ単位取得工程Ｓ５２２に戻り、ログ差分生成部１２３は、次のログ単位データを取得する。
【００３５】
圧縮単位出力工程Ｓ５３２において、差分対象判定部１３１は、ＣＰＵ９１１を用いて、ログ差分生成部１２３が圧縮単位データとなる差分データの候補として記憶した差分データのもととなるログ単位データを表わす差分対象データを生成する。圧縮単位出力部１３４は、ＣＰＵ９１１を用いて、差分対象判定部１３１が生成した差分対象データと、ログ差分生成部１２３が記憶した差分データとの組を圧縮単位データとして出力する。
【００３６】
図７は、この実施の形態におけるログ復元処理Ｓ６１０の流れの一例を示すフローチャート図である。
ログ復元処理Ｓ６１０において、ログ復元装置８３２は、圧縮ログデータからログデータを復元する。ログ復元処理Ｓ６１０は、圧縮単位取得工程Ｓ６１１、ログ単位復元工程Ｓ６１２、復元単位記憶工程Ｓ６１３、ログ結合工程Ｓ６１４、ログ出力工程Ｓ６１５を有する。
【００３７】
圧縮単位取得工程Ｓ６１１において、圧縮単位取得部２１１は、ＣＰＵ９１１を用いて、ログ受信装置８３１が受信した圧縮単位データのなかから、未処理の圧縮単位データを１つ取得する。
ログ受信装置８３１が受信した圧縮単位データがすべて処理済であり、未処理の圧縮単位データがない場合、ログ復元装置８３２は、ログ結合工程Ｓ６１４へ進む。
圧縮単位取得部２１１が未処理の圧縮単位データを取得した場合、ログ復元装置８３２は、ログ単位復元工程Ｓ６１２へ進む。
【００３８】
ログ単位復元工程Ｓ６１２において、ログ単位復元部２２１は、ＣＰＵ９１１を用いて、圧縮単位取得工程Ｓ６１１で圧縮単位取得部２１１が取得した圧縮単位データから、差分対象データと差分データとを取得する。ログ単位復元部２２１は、ＣＰＵ９１１を用いて、復元単位記憶部２２２が記憶した復元単位データのなかから、取得した差分対象データが表わすログ単位データを復元した復元単位データを取得する。ログ単位復元部２２１は、ＣＰＵ９１１を用いて、取得した復元単位データと差分データとに基づいて、ログ単位データを復元する。
復元単位記憶工程Ｓ６１３において、復元単位記憶部２２２は、ＨＤＤ９２０を用いて、復元単位記憶工程Ｓ６１３でログ単位復元部２２１が復元したログ単位データを復元単位データとして記憶する。
【００３９】
ログ結合工程Ｓ６１４において、ログ結合部２３１は、ＣＰＵ９１１を用いて、復元単位記憶部２２２が記憶した復元単位データを結合して、復元ログデータを生成する。
ログ出力工程Ｓ６１５において、ログ出力部２３２は、ＣＰＵ９１１を用いて、ログ結合工程Ｓ６１４でログ結合部２３１が生成した復元ログデータを出力する。
【００４０】
図８は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
ログデータ７１０は、アルファベット・数字・特殊文字などの可読文字と、改行文字７１２などの制御文字とを含む文字列データである。
新規ログ取得工程Ｓ５１１において、ログ取得部１１１は、ログデータ７１０を取得する。
ログ分割工程Ｓ５１３において、ログ分割部１１２は、改行文字７１２を境界として、ログ取得部１１１が取得したログデータ７１０を分割し、３つのログ単位データ７２１ａ〜７２１ｃを生成する。
【００４１】
図９は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
取得単位取得工程Ｓ５１４において、ログ単位取得部１２１は、ログ分割部１１２が分割した３つのログ単位データ７２１ａ〜７２１ｃを１つずつ順に取得する。
【００４２】
１回目の取得単位取得工程Ｓ５１４において、ログ単位取得部１２１は、ログ単位データ７２１ａを取得する。
圧縮初期化工程Ｓ５２１において、ログ差分記憶部１３２は、ログ単位データ７２１ａを圧縮単位データとなる差分データ７３１ａとして記憶する。差分対象判定部１３１は、ログ単位データ７２１ａのデータ量（１３１文字）を算出する。
ログ単位取得工程Ｓ５２２において、ログ差分生成部１２３は、ログ単位記憶部１２２が記憶したログ単位データのなかから、ログ単位データを１つずつ取得する。この時点で、ログ差分記憶部１３２は、まだログ単位データを記憶していないので、ログ圧縮装置８１２は、圧縮単位出力工程Ｓ５３２へ進む。
圧縮単位出力工程Ｓ５３２において、圧縮単位出力部１３４は、ログ差分記憶部１３２が記憶した差分データ７３１ａを、圧縮単位データに含まれる差分データ７４２ａとする。差分対象判定部１３１は、ログ単位データ７２１ａがそのまま差分データ７４２ａとなったことを表わす差分対象データ７４１ａ（例えば「−０」）を生成する。圧縮単位出力部１３４は、差分対象データ７４１ａと差分データ７４２ａとの組を出力する。
取得単位記憶工程Ｓ５３３において、ログ単位記憶部１２２は、ログ単位データ７２１ａを記憶する。
【００４３】
２回目の取得単位取得工程Ｓ５１４において、ログ単位取得部１２１は、ログ単位データ７２１ｂを取得する。
圧縮初期化工程Ｓ５２１において、ログ差分記憶部１３２は、ログ単位データ７２１ｂを圧縮単位データとなる差分データとして記憶する。差分対象判定部１３１は、ログ単位データ７２１ｂのデータ量（１２７文字）を算出する。
【００４４】
ログ単位取得工程Ｓ５２２において、ログ差分生成部１２３は、ログ単位記憶部１２２が記憶したログ単位データのなかから、ログ単位データを１つずつ取得する。この時点で、ログ差分記憶部１３２は、１つのログ単位データ７２１ａを記憶しているので、ログ差分生成部１２３は、ログ単位データ７２１ａを取得する。
ログ差分生成工程Ｓ５２３において、ログ差分生成部１２３は、ログ単位データ７２１ａとログ単位データ７２１ｂとの差分データ７３２ａを生成する。この例において、ログ差分生成部１２３が生成する差分データは、２つの数字と１つの文字列との組を１つの単位とし、１以上の単位からなる。１つ目の数字は置換開始位置を表わし、２つ目の数字は置換文字数を表わし、文字列は置換文字列を表わす。例えば差分データ７３２ａは、ログ単位データ７２１ａの６７文字目から５０文字を、４６文字の文字列「ｓｔｒｕｔｓ．〜」で置き換え、１２７文字目から３文字を、３文字の文字列「１３７」で置き換えると、ログ単位データ７２１ｂになることを表わしている。なお、差分データの書式は、この例に示した書式に限らず、他の書式であってもよい。
データ量比較工程Ｓ５２４において、差分対象判定部１３１は、差分データ７３２ａのデータ量（６３文字）を算出する。算出した差分データ７３２ａのデータ量が、ログ差分記憶部１３２が記憶しているログ単位データ７２１ｂのデータ量（１２７文字）より小さいので、ログ圧縮装置８１２は、圧縮更新工程Ｓ５２５へ進む。
圧縮更新工程Ｓ５２５において、ログ差分記憶部１３２は、差分データ７３２ａを圧縮単位データとなる差分データとして記憶する。
【００４５】
ログ単位取得工程Ｓ５２２に戻り、ログ単位記憶部１２２が記憶したログ単位データの処理がすべて終わったので、ログ圧縮装置８１２は、圧縮単位出力工程Ｓ５３２へ進む。
【００４６】
圧縮単位出力工程Ｓ５３２において、圧縮単位出力部１３４は、ログ単位記憶部１２２が記憶した差分データ７３２ａを、圧縮単位データに含まれる差分データ７４２ｂとする。差分対象判定部１３１は、差分データ７４２ｂが、１つ前のログ単位データ７２１ａとログ単位データ７２１ｂとの差分であることを表わす差分対象データ７４１ｂ（例えば「−１」）を生成する。圧縮単位出力部１３４は、差分対象データ７４１ｂと差分データ７４２ｂとの組を出力する。
取得単位記憶工程Ｓ５３３において、ログ単位記憶部１２２は、ログ単位データ７２１ｂを追加して記憶する。その結果、ログ単位記憶部１２２は、２つのログ単位データ７２１ａ，７２１ｂを記憶する。
【００４７】
３回目の取得単位取得工程Ｓ５１４において、ログ単位取得部１２１は、ログ単位データ７２１ｃを取得する。
圧縮初期化工程Ｓ５２１において、ログ差分記憶部１３２は、ログ単位データ７２１ｃを圧縮単位データとなる差分データとして記憶する。差分対象判定部１３１は、ログ単位データ７２１ｃのデータ量（１１９文字）を算出する。
【００４８】
ログ単位取得工程Ｓ５２２において、ログ差分生成部１２３は、ログ単位記憶部１２２が記憶したログ単位データのなかから、ログ単位データを１つずつ取得する。この時点で、ログ差分記憶部１３２は、２つのログ単位データ７２１ａを記憶している。ログ差分生成部１２３は、例えば、ログ単位データ７２１ａを取得する。
ログ差分生成工程Ｓ５２３において、ログ差分生成部１２３は、ログ単位データ７２１ａとログ単位データ７２１ｃとの差分データ７３３ａを生成する。
データ量比較工程Ｓ５２４において、差分対象判定部１３１は、差分データ７３３ａのデータ量（５８文字）を算出する。算出した差分データ７３３ａのデータ量が、ログ差分記憶部１３２が記憶しているログ単位データ７２１ｃのデータ量（１１９文字）より小さいので、ログ圧縮装置８１２は、圧縮更新工程Ｓ５２５へ進む。
圧縮更新工程Ｓ５２５において、ログ差分記憶部１３２は、差分データ７３３ａを圧縮単位データとなる差分データとして記憶する。
【００４９】
ログ単位取得工程Ｓ５２２に戻り、ログ差分生成部１２３は、未処理のログ単位データ７２１ｂを取得する。
ログ差分生成工程Ｓ５２３において、ログ差分生成部１２３は、ログ単位データ７２１ｂとログ単位データ７２１ｃとの差分データ７３３ｂを生成する。
データ量比較工程Ｓ５２４において、差分対象判定部１３１は、差分データ７３３ｂのデータ量（２２文字）を算出する。算出した差分データ７３３ｂのデータ量が、ログ差分記憶部１３２が記憶している差分データ７３３ａのデータ量（５８文字）より小さいので、ログ圧縮装置８１２は、圧縮更新工程Ｓ５２５へ進む。
圧縮更新工程Ｓ５２５において、ログ差分記憶部１３２は、差分データ７３３ｂを圧縮単位データとなる差分データとして記憶する。
【００５０】
ログ単位取得工程Ｓ５２２に戻り、ログ単位記憶部１２２が記憶したログ単位データの処理がすべて終わったので、ログ圧縮装置８１２は、圧縮単位出力工程Ｓ５３２へ進む。
【００５１】
圧縮単位出力工程Ｓ５３２において、圧縮単位出力部１３４は、ログ単位記憶部１２２が記憶した差分データ７３３ｂを、圧縮単位データに含まれる差分データ７４２ｃとする。差分対象判定部１３１は、差分データ７４２ｃが、１つ前のログ単位データ７２１ｂとログ単位データ７２１ｃとの差分であることを表わす差分対象データ７４１ｃ（例えば「−１」）を生成する。圧縮単位出力部１３４は、差分対象データ７４１ｃと差分データ７４２ｃとの組を出力する。
【００５２】
図１０は、この実施の形態におけるログ復元装置８３２が処理するデータの一例を示す図である。
圧縮単位出力部１３４が出力した圧縮単位データ（差分対象データと差分データとの組）は、ログ送信装置８１３が送信し、通信線８２０を介して伝送されて、ログ受信装置８３１が受信する。
圧縮単位取得工程Ｓ６１１において、圧縮単位取得部２１１は、ログ受信装置８３１が受信した圧縮単位データを１つずつ順に取得する。
【００５３】
１回目の圧縮単位取得工程Ｓ６１１において、圧縮単位取得部２１１は、差分対象データ７４１ａと差分データ７４２ａとの組である圧縮単位データを取得する。
ログ単位復元工程Ｓ６１２において、差分データ７４２ａが差分を取った結果ではなくログ単位データそのものであることを、差分対象データ７４１ａが表わしているので、ログ単位復元部２２１は、差分データ７４２ａをそのまま復元単位データ７５１ａとする。
復元単位記憶工程Ｓ６１３において、復元単位記憶部２２２は、復元単位データ７５１ａを記憶する。
【００５４】
２回目の圧縮単位取得工程Ｓ６１１において、圧縮単位取得部２１１は、差分対象データ７４１ｂと差分データ７４２ｂとの組である圧縮単位データを取得する。
ログ単位復元工程Ｓ６１２において、差分データ７４２ｂが一つ前のログ単位データとの差分であることを、差分対象データ７４１ｂが表わしているので、ログ単位復元部２２１は、復元単位記憶部２２２が記憶した復元単位データのなかから、１つ前のログ単位データに当たる復元単位データ７５１ａを取得する。ログ単位復元部２２１は、復元単位データ７５１ａと差分データ７４２ａとに基づいて、復元単位データ７５１ｂを生成する。
復元単位記憶工程Ｓ６１３において、復元単位記憶部２２２は、復元単位データ７５１ｂを記憶する。その結果、復元単位記憶部２２２は、２つの復元単位データ７５１ａ，７５２ｂを記憶する。
【００５５】
３回目の圧縮単位取得工程Ｓ６１１において、圧縮単位取得部２１１は、差分対象データ７４１ｃと差分データ７４２ｃとの組である圧縮単位データを取得する。
ログ単位復元工程Ｓ６１２において、差分データ７４２ｃが一つ前のログ単位データとの差分であることを、差分対象データ７４１ｃが表わしているので、ログ単位復元部２２１は、復元単位記憶部２２２が記憶した復元単位データのなかから、１つ前のログ単位データに当たる復元単位データ７５１ｂを取得する。ログ単位復元部２２１は、復元単位データ７５１ｂと差分データ７４２ｃとに基づいて、復元単位データ７５１ｃを生成する。
復元単位記憶工程Ｓ６１３において、復元単位記憶部２２２は、復元単位データ７５１ｃを記憶する。その結果、復元単位記憶部２２２は、３つの復元単位データ７５１ａ〜７５１ｃを記憶する。
【００５６】
このように、ログ圧縮装置８１２は、ログデータをログ単位データに分割し、分割したログ単位データの差分を取ることにより、圧縮単位データを生成する。ログデータは、似たような文字列の繰り返しであることが多いので、ログ単位データ間の差は小さく、ログデータを効率よく圧縮することができる。また、差分を取る相手のログ単位データとして複数のログ単位データを候補とし、生成した差分データのデータ量が最も小さいものを選択するので、圧縮率が高くなる。
【００５７】
この実施の形態におけるログ圧縮装置８１２は、データを処理する処理装置（ＣＰＵ９１１）と、ログ単位取得部１２１と、ログ差分生成部１２３と、差分対象判定部１３１と、圧縮単位出力部１３４とを有する。
上記ログ単位取得部１２１は、上記処理装置を用いて、ログデータを構成する複数のログ単位データのなかからログ単位データを取得して、取得単位データとする。
上記ログ差分生成部１２３は、上記処理装置を用いて、上記複数のログ単位データのうち、上記取得単位データと異なる２以上のログ単位データそれぞれについて、上記ログ単位取得部１２１が取得した取得単位データとの違いを表わす差分データを生成する。
上記差分対象判定部１３１は、上記処理装置を用いて、上記複数のログ単位データのうち、上記ログ差分生成部１２３が生成した差分データのデータ量が最も小さいログ単位データを判定して、選択対象データとする。
上記圧縮単位出力部１３４は、上記処理装置を用いて、上記ログ単位取得部１２１が取得した取得単位データを圧縮した圧縮単位データとして、上記差分対象判定部１３１が判定した選択対象データについて上記ログ差分生成部１２３が生成した差分データを出力する。
【００５８】
これにより、ログ単位データを圧縮した圧縮単位データの圧縮率が高くなるので、ログ収集装置８３０に対して送信するデータ量を少なくすることができる。したがって、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【００５９】
この実施の形態におけるログ圧縮装置８１２は、更に、ログ分割部１１２を有する。
上記ログ分割部１１２は、上記処理装置を用いて、上記ログデータを分割して、複数のログ単位データを生成する。
上記ログ単位取得部１２１は、上記処理装置を用いて、上記ログ分割部１１２が生成した複数のログ単位データのなかから上記取得単位データを取得する。
【００６０】
ログデータを差の少ないログ単位データに分割することにより、差分データのデータ量が小さくなるので、圧縮単位データの圧縮率が高くなり、ログ収集装置８３０に対して送信するデータ量を少なくすることができる。したがって、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【００６１】
この実施の形態におけるログ収集システム８００は、上記ログ圧縮装置８１２と、ログ復元装置８３２とを有する。
上記ログ復元装置８３２は、上記圧縮単位出力部１３４が出力した圧縮単位データを取得し、取得した圧縮単位データから、上記ログ単位取得部１２１が取得したログ単位データを復元する。
【００６２】
これにより、ログ圧縮装置８１２からログ復元装置８３２に対して送信するデータ量を少なくすることができる。したがって、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【００６３】
この実施の形態におけるログ圧縮装置８１２は、コンピュータをログ圧縮装置として機能させるコンピュータプログラムを、上記コンピュータが実行することにより、実現することができる。
【００６４】
これにより、ログ単位データを圧縮した圧縮単位データの圧縮率が高くなるので、ログ収集装置８３０に対して送信するデータ量を少なくすることができ、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができるログ圧縮装置８１２を実現することができる。
【００６５】
この実施の形態におけるログ圧縮装置８１２がログデータを圧縮するログ圧縮方法は、以下の工程を有する。
上記処理装置が、上記ログデータを構成する複数のログ単位データのなかからログ単位データを取得して、取得単位データとする。
上記処理装置が、上記複数のログ単位データのうち、上記取得単位データと異なる２以上のログ単位データそれぞれについて、取得した取得単位データとの差分データを生成する。
上記処理装置が、生成した差分データのうち、データ量が最も小さい差分データを判定する。
上記処理装置が、取得した取得単位データを圧縮した圧縮単位データとして、判定した差分データを出力する。
【００６６】
これにより、ログ単位データを圧縮した圧縮単位データの圧縮率が高くなるので、ログ収集装置８３０に対して送信するデータ量を少なくすることができる。したがって、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【００６７】
実施の形態２．
実施の形態２について、図１１〜図１４を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【００６８】
図１１は、この実施の形態におけるログ収集システム８００の構成の一例を示す構成図である。
ログ情報送信側（ログ生成装置８１０）は、監視対象のシステムが動作するサーバである。ログ情報送信側は、ログ情報（ログデータ）を取得し、ネットワーク（通信線８２０）経由でサーバへ送信、または、記憶媒体に保存する機器またはＰＣである。
ログ情報受信側（ログ収集装置８３０）は、ログ情報を収集、分析、監視するサーバである。ログ情報受信側は、ネットワーク経由、または記憶媒体を使って送付されたログ差分情報（圧縮ログデータ）を受け取り、元のログ情報を再現する、サーバ上の構成要素である。
【００６９】
ログ情報送信側において、ログファイルは、監視対象のシステムが出力する動作ログのファイル、である。ログファイル読み取り部（ログ取得部１１１）は、ログファイルからログ情報（ログデータ）を読み取る。ログファイル読み取り位置記憶部は、ログファイルから最後に取得したログ情報の位置を記憶する。ログ情報分割部（ログ分割部１１２）は、ログ情報を最小単位に分割する。ログ情報バッファ（ログ単位記憶部１２２）は、分割されたログ情報（ログ単位データ）を１つ記憶する。ログ情報差分生成部（ログ差分生成部１２３）は、分割された２つのログ情報からその差分をとりログ差分情報（差分データ）を生成する。ログ情報送信／保存部（圧縮単位出力部１３４）は、ログ差分情報をネットワーク経由でサーバへ送信または記憶媒体に保存する。
【００７０】
ログ情報受信側において、ログ情報受信部（圧縮単位取得部２１１）は、ネットワーク経由または記憶媒体からログ差分情報を受け取る。ログ再現部（ログ単位復元部２２１）は、ログ差分情報と１つ前のログ情報を使いログ情報を再現する。ログ情報バッファ（復元単位記憶部２２２）は、１つ前のログ情報を記憶する。ログ情報保存部（ログ結合部２３１・ログ出力部２３２）は、再現されたログ情報を統合しファイルやデータベースなどに保存する。
【００７１】
図１２は、この実施の形態におけるログ情報送信側の動作の一例を示す図である。
ログ情報送信側において、ログファイル読み取り部は、ログファイル読み取り位置記憶部から、前回取得したログ情報の位置を受け取り、ログファイル中のその位置以降のログ情報を読み込む。
ログ情報分割部は、読み込んだログ情報を最小単位に分割する。最小単位は、例えば、１行や、単一の処理が出力する複数行（処理開始、処理中、処理終了などのログを含む複数行で、ログの内容毎にあらかじめ設定する）である。分割したログ情報は、ログ情報バッファとログ差分生成部に送られる。
ログ情報バッファがあることにより、ログ差分生成部は、最新の分割されたログ情報と、一つ前の分割されたログ情報を受け取る。ログ差分生成部は、この２つのログ情報から、ログ差分情報を生成する。
ログ情報送信／保存部は、ログ差分情報をネットワーク経由でサーバに送信、または、記憶媒体に保存する。なお、送信または保存する際に、差分圧縮では無い通常の圧縮を行い、さらに転送量を減らす構成としてもよい。
【００７２】
図１３は、この実施の形態におけるログ情報受信側の動作の一例を示す図である。
ログ情報受信側においては、ログ情報受信部は、ネットワーク経由で送られた、または、記憶媒体により搬送されたログ差分情報を受け取る。ログ情報送信側でログ差分情報が圧縮されていた場合はここで展開する。
ログ再現部は、ログ情報バッファにある１つ前のログ情報と、ログ差分情報を用いて次のログ情報を再現する。再現されたログ情報は、ログ情報保存部によってファイルやデータベースなどに保存する。
なお、ログ情報送信側の停止条件は、例えば、ネットワーク経由でサーバに送付する場合、利用者の操作によって停止が指示された場合である。あるいは、記憶媒体に保存する場合、利用者の操作によって停止が指示された、または、記憶媒体に書き込める残り容量が無くなった場合である。
また、ログ情報受信側の停止条件は、例えば、ネットワーク経由でサーバに送付する場合、利用者の操作によって停止が指示された場合である。あるいは、記憶媒体に保存する場合、記憶媒体に保存されている全ての差分情報を取得した場合である。
【００７３】
図１４は、この実施の形態におけるデータの流れの一例を示す図である。
【００７４】
この実施の形態におけるログ転送量圧縮方式（ログ収集システム８００）は、ログ情報送信側（ログ圧縮装置８１２）が、ログファイルを読み取るログファイル読み取り部（ログ取得部１１１）と、ログ情報分割部（ログ分割部１１２）により分割されたログ情報（ログ単位データ）と、ログ情報バッファに保存した直前のログ情報との差分（差分データ）を生成するログ差分生成部１２３とを持つ。ログ情報受信側（ログ復元装置８３２）は、ログ情報バッファ（復元単位記憶部２２２）とログ再現部（ログ単位復元部２２１）とを持ち、差分情報からログ情報を再現する。
以上のように、ログ情報を収集する際に、ログ情報そのものではなく、分割されたログ情報の差分を収集することが出来る。ログ情報は定型のフォーマットが多いため、分割されたログ情報は差が少なく、差分のみを収集の対象とすることでデータ量を低減することが可能となる。
【００７５】
一般的なデータとは異なり、ログ情報は定型のフォーマットを持つものが多い。また、同一の処理が出力するログ情報は、時刻やパラメータの内容が異なるだけで、それ以外の処理名、モジュール名等の情報は同じである場合がほとんどである。そこで、ログ情報を最小単位に分割し、分割したログ情報間で差分圧縮を行うことで、取得する情報量を低減する。
ログを受け取った側は、前回受信したログ情報とログ差分を元に、ログ情報を再現する。
これにより、ログデータの転送量を削減することができる。
【００７６】
実施の形態３．
実施の形態３について、図１５〜図１７を用いて説明する。
なお、実施の形態１または実施の形態２と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、ｎ個のログ情報を保存し、差分情報をｎ個生成して、その中から最小の物を選択する構成について説明する。
【００７７】
図１５は、この実施の形態におけるログ収集システム８００の構成の一例を示す構成図である。
ログ情報送信側のログ情報バッファ（ログ単位記憶部１２２）は、あらかじめ決められた数だけ（ｎ個）存在する。ログ情報バッファ１は、１世代前のログ情報、ログ情報バッファｎはｎ世代前のログ情報を保管する。
最小差分選択部（差分対象判定部１３１）は、１世代前との差分からｎ世代前との差分の中から、最もデータ量が少ない差分情報を選択する。
【００７８】
ログ情報受信側のログ情報バッファ（復元単位記憶部２２２）は、あらかじめ決められた数だけ（ｎ個）存在する。ログ情報バッファ１は、１世代前のログ情報、ログ情報バッファｎはｎ世代前のログ情報を保管する。
【００７９】
図１６は、この実施の形態におけるログ情報送信側のデータの流れの一例を示す図である。
ログ情報送信側において、ログ情報バッファ１は、１世代前のログ情報を保持する。ログ情報分割部が新たなログ情報を取得したとき、ログ情報バッファ１は、ログ情報バッファ２とログ差分生成部に保持していたログ情報を渡す。
同様に、ログ情報バッファ２は、ログ差分生成部とログ情報バッファ３に保持していたログ情報を渡す。これにより、ログ情報バッファ１は常に１世代前、ログ情報バッファ２は２世代前、ログ情報バッファｎはｎ世代前のログ情報を持つ。
また、ログ差分生成部は、ログ情報分割部が分割した最新のログ情報と、１世代前からｎ世代前までのログ情報を得る。ログ差分生成部は、最新のログ情報と、１世代前からｎ世代前までのログ情報との差分を生成し、何世代前と比較したかを示す情報を付加する。
最小差分選択部は、生成された差分情報のうち、最もデータ量が少ない物を選択し、ログ情報送信／保存部へ渡す。
【００８０】
図１７は、この実施の形態におけるログ情報受信側のデータの流れの一例を示す図である。
ログ情報受信側において、ログ情報バッファは、ログ情報送信側と同じ方式で常に１世代前からｎ世代前までのログ情報を保持する。
ログ再現部は、ログ情報受信部から最新の差分情報を受け取る。また、ログ情報バッファ１〜ログ情報バッファｎから、１世代からｎ世代前までのログ情報を受け取る。差分情報中の、比較対象の世代情報を使い、その世代前のログ情報と、差分情報からログ情報を再現する。再現されたログ情報は、ログ情報保存部とログ情報バッファ１に送られる。
【００８１】
この実施の形態におけるログ情報量圧縮方式（ログ収集システム８００）は、複数のログ情報バッファ（ログ単位記憶部１２２）を持ち、ログ差分を複数生成し、その中から最小の差分情報を用いる。
以上のように、比較する対象を１世代前のみではなく、ｎ世代前までとすることで、差分データの量を更に減らすことができる。
分割されたログ情報を複数世代保持し、それぞれと比較を行い、最も差が小さい差分情報を使用することで、さらにデータ量を低減する。
【００８２】
実施の形態４．
実施の形態４について、図１８〜図２３を用いて説明する。
なお、実施の形態１乃至実施の形態３のいずれかと共通する部分については、同一の符号を付し、説明を省略する。
【００８３】
図１８は、この実施の形態におけるログ圧縮装置８１２の機能ブロックの構成の一例を示すブロック構成図である。
ログ圧縮装置８１２は、実施の形態１で説明した機能ブロックに加えて、更に、分割方式判定部１３３を有する。
【００８４】
ログ分割部１１２は、ＣＰＵ９１１を用いて、ログ取得部１１１が取得したログデータを、異なる複数の分割方式により分割し、複数の分割方式に対応する複数組のログ単位データを生成する。
ログ単位取得部１２１は、ＣＰＵ９１１を用いて、それぞれの分割方式に対応して、ログ単位データを取得する。
ログ単位記憶部１２２は、ＨＤＤ９２０を用いて、それぞれの分割方式に対応づけて、ログ単位取得部１２１が取得したログ単位データを記憶する。
ログ差分生成部１２３は、ＣＰＵ９１１を用いて、それぞれの分割方式に対応して、ログ単位取得部１２１が取得したログ単位データ（取得単位データ）と、ログ単位記憶部１２２が記憶した１以上のログ単位データそれぞれとの差分データを生成する。
差分対象判定部１３１は、ＣＰＵ９１１を用いて、それぞれの分割方式に対応して、ログ差分生成部１２３が生成した１以上の差分データのなかから、データ量が最も小さい差分データを判定する。
ログ差分記憶部１３２は、ＨＤＤ９２０を用いて、それぞれの分割方式に対応づけて、差分対象判定部１３１が判定した差分データを記憶する。
分割方式判定部１３３は、ＣＰＵ９１１を用いて、ログ分割部１１２が使った複数の分割方式のなかから、ログ差分記憶部１３２が記憶した差分データのデータ量が最も小さい分割方式を判定する。
圧縮単位出力部１３４は、ＣＰＵ９１１を用いて、ログ差分記憶部１３２が記憶した差分データのうち、分割方式判定部１３３が判定した分割方式に対応する差分データを取得し、取得した差分データを含む圧縮単位データを出力する。
【００８５】
分割方式には、例えば、ログデータを１行ずつに分割する分割方式、２行ずつに分割する分割方式、３行ずつに分割する分割方式などがある。また、これらの分割方式を取り混ぜた分割方式もあり得る。上述したように、ログ記録装置８１１には、１行を１つの単位とするログデータを生成するもの、２行を１つの単位とするもの、３行を１つの単位とするものなどがある。
この実施の形態におけるログ圧縮装置８１２は、ログ取得部１１１が取得するログデータを生成するログ記録装置８１１がどのようなログデータを生成するか事前にわからない場合や、ログ取得部１１１が取得するログデータが複数種類のログ記録装置８１１が生成したログデータが混ざり合ったものである場合などでもログデータを適切に分割する。
【００８６】
図１９は、この実施の形態におけるログ圧縮処理Ｓ５１０の流れの一例を示すフローチャート図である。
ログ圧縮処理Ｓ５１０は、実施の形態１で説明した工程に加えて、更に、分割方式選択工程Ｓ５１２、データ量比較工程Ｓ５３４、圧縮単位出力工程Ｓ５３５を有する。
【００８７】
新規ログ取得工程Ｓ５１１の後、ログ圧縮装置８１２は、分割方式選択工程Ｓ５１２へ進む。
分割方式選択工程Ｓ５１２において、ログ分割部１１２は、ＣＰＵ９１１を用いて、複数の分割方式のなかから、未実施の分割方式を１つ選択する。
すべての分割方式を実施済であり、未実施の分割方式がない場合、ログ圧縮装置８１２は、データ量比較工程Ｓ５３４へ進む。
ログ分割部１１２が未実施の分割方式を選択した場合、ログ圧縮装置８１２は、ログ分割工程Ｓ５１３へ進む。
【００８８】
ログ分割工程Ｓ５１３において、ログ分割部１１２は、ＣＰＵ９１１を用いて、分割方式選択工程Ｓ５１２で選択した分割方式を使って、新規ログ取得工程Ｓ５１１でログ取得部１１１が取得したログデータを分割し、１以上のログ単位データを生成する。
【００８９】
ログ単位取得工程Ｓ５２２で、ログ単位取得部１２１が未処理のログ単位データがない場合、ログ圧縮装置８１２は、取得単位記憶工程Ｓ５３３へ進む。
【００９０】
データ量比較工程Ｓ５３４において、分割方式判定部１３３は、ＣＰＵ９１１を用いて、ログ差分記憶部１２４がそれぞれの分割方式について記憶した差分データの組について、差分データのデータ量の合計を算出する。分割方式判定部１３３は、ＣＰＵ９１１を用いて、算出したデータ量の合計を比較して、最もデータ量の合計が小さい分割方式を判定する。
【００９１】
圧縮単位出力工程Ｓ５３５において、圧縮単位出力部１３４は、ＣＰＵ９１１を用いて、データ量比較工程Ｓ５３４で分割方式判定部１３３が判定した分割方式について、ログ差分記憶部１２４が記憶した差分データを含む圧縮単位データを出力する。
【００９２】
図２０は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
この例において、ログデータ７１０は、全部で６行からなり、２行を１つの単位とする３つの単位で構成されている。そのため、２行ごとにわずかに異なる内容が繰り返されている。
【００９３】
図２１は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
この例は、図２０に示したログデータ７１０を、１行を１つの単位として６つのログ単位データに分割した場合に、ログ圧縮装置８１２が生成する６つの圧縮単位データ（差分対象データ７４１ａ〜７４１ｆと差分データ７４２ａ〜７４２ｆとの組）を示している。
【００９４】
ログデータ７１０の１行目に対応してログ圧縮装置８１２が生成する差分データ７４２ａは、差分を取るべき相手がないので、ログデータ７１０の１行目そのままである。
ログデータ７１０の２行目に対応してログ圧縮装置８１２が生成する差分データ７４２ｂは、ログデータ７１０の１行目との差分データよりも、ログデータ７１０の２行目そのままのほうがデータ量が小さいので、ログデータ７１０の２行目そのままである。
ログデータ７１０の３行目に対応してログ圧縮装置８１２が生成する差分データ７４２ｃは、２つ前のログ単位データであるログデータ７１０の１行目との差分データである。
ログデータ７１０の４行目に対応してログ圧縮装置８１２が生成する差分データ７４２ｄは、２つ前のログ単位データであるログデータ７１０の２行目との差分データである。
ログデータ７１０の５行目に対応してログ圧縮装置８１２が生成する差分データ７４２ｅは、２つ前のログ単位データであるログデータ７１０の３行目との差分データである。
ログデータ７１０の６行目に対応してログ圧縮装置８１２が生成する差分データ７４２ｆは、２つ前のログ単位データであるログデータ７１０の４行目との差分データである。
【００９５】
図２２は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
この例は、図２０に示したログデータ７１０を、２行を１つの単位として３つのログ単位データに分割した場合に、ログ圧縮装置８１２が生成する３つの圧縮単位データ（差分対象データ７４１ｇ〜７４１ｉと差分データ７４２ｇ〜７４２ｉとの組）を示している。
【００９６】
ログデータ７１０の１行目から２行目までに対応してログ圧縮装置８１２が生成する差分データ７４２ｇは、差分を取るべき相手がないので、ログデータ７１０の１行目から２行目までそのままである。
ログデータ７１０の３行目から４行目までに対応してログ圧縮装置８１２が生成する差分データ７４２ｈは、１つ前のログ単位データであるログデータ７１０の１行目から２行目までとの差分データである。
ログデータ７１０の５行目から６行目までに対応してログ圧縮装置８１２が生成する差分データ７４２ｉは、１つ前のログ単位データであるログデータ７１０の３行目から４行目までとの差分データである。
【００９７】
図２３は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
この例は、図２０に示したログデータ７１０を、３行を１つの単位として２つのログ単位データに分割した場合に、ログ圧縮装置８１２が生成する２つの圧縮単位データ（差分対象データ７４１ｊ，７４１ｋと差分データ７４２ｊ，７４２ｋとの組）を示している。
【００９８】
ログデータ７１０の１行目から３行目までに対応してログ圧縮装置８１２が生成する差分データ７４２ｊは、差分を取るべき相手がないので、ログデータ７１０の１行目から３行目までそのままである。
ログデータ７１０の４行目から６行目までに対応してログ圧縮装置８１２が生成する差分データ７４２ｋは、１つ前のログ単位データであるログデータ７１０の１行目から３行目までとの差分データである。
【００９９】
このように、ログデータ７１０を構成する単位の行数と同じ行数（２行）を単位として分割した場合が、最も圧縮効率がよく、圧縮単位データのデータ量の合計が小さくなる。
【０１００】
分割方式判定部１３３は、データ量の合計を比較して、分割方式を判定する。この例の場合、分割方式判定部１３３は、２行を１つの単位とする分割方式を使うと判定する。
【０１０１】
なお、このように、複数の分割方式を試してみて分割方式を決定する方式は、ログ圧縮装置８１２における計算量が大きくなる。
このため、ログ圧縮装置８１２は、ＣＰＵ９１１を複数有し、それぞれのＣＰＵ９１１が異なる分割方式を試してみる構成としてもよい。そうすれば、複数の分割方式を並列して試すことができるので、分割方式を決定するのにかかる時間を短縮することができる。
【０１０２】
また、ログ圧縮装置８１２は、最初のうちは、複数の分割方式を試してみて分割方式を決定し、その後は、複数の分割方式を試さずに、決定した分割方式を使用する構成としてもよい。
例えば、ログ圧縮装置８１２は、ログデータの最初から所定の行数について、複数の分割方式を試してみる。ログ圧縮装置８１２は、分割方式判定部１３３の判定結果に基づいて、最も多い判定結果に基づいて、その後の分割方式を決定する。
あるいは、ログ圧縮装置８１２は、複数の分割方式を試してみて、安定した判定結果が得られた場合に、その後、複数の分割方式を試さず、決まった分割方式を使用する。安定した判定結果が得られたか否かの判定方式は、例えば、分割方式判定部１３３が所定の回数（例えば２０回）判定をして、２０回とも同じ判定結果である場合に、ログ圧縮装置８１２は、安定した判定結果であると判定する。あるいは、ログ圧縮装置８１２は、統計的手法に基づいて、安定した判定結果が得られたか否かを判定する構成であってもよい。
また、分割方式を１つに決定できない場合、ログ圧縮装置８１２は、少しずつ分割方式の候補を絞っていく構成であってもよい。例えば、３つの分割方式のうち最もデータ量が少ないと分割方式判定部１３３が判定する分割方式が、１つ目の分割方式である場合と２つ目の分割方式である場合とが拮抗し、３つ目の分割方式である場合はほとんどない場合、ログ圧縮装置８１２は、候補を１つ目と２つ目の２つに絞り、その後は、２つの分割方式を試す。これにより、計算量を削減しつつ、最良の分割方式を見つけることができる。
【０１０３】
この実施の形態におけるログ圧縮装置８１２は、分割方式判定部１３３を有する。
上記ログ分割部１１２は、上記処理装置（ＣＰＵ９１１）を用いて、複数の分割方式を使って上記ログデータを分割し、上記複数の分割方式それぞれに対応する複数のログ単位データの組を生成する。
上記分割方式判定部１３３は、上記処理装置を用いて、上記ログ分割部１１２が使用した複数の分割方式のなかから、上記ログデータの同じ範囲を分割した１以上のログ単位データに基づいて上記ログ差分生成部１２３が生成した１以上の差分データのデータ量の合計が最も小さい分割方式を判定して、選択分割方式とする。
上記圧縮単位出力部１３４は、上記処理装置を用いて、上記ログ単位取得部１２１が取得した取得単位データを圧縮した圧縮単位データとして、上記分割方式判定部１３３が判定した選択分割方式を使って上記ログ分割部１１２が分割したログ単位データに基づいて上記ログ差分生成部１２３が生成した差分データを出力する。
【０１０４】
これにより、ログ取得部１１１が取得するログデータの単位が不明である場合であっても、最適な分割方式を選択することができるので、ログ収集装置８３０に対して送信するデータ量を少なくすることができる。したがって、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【０１０５】
実施の形態５．
実施の形態５について、図２４を用いて説明する。
なお、実施の形態１乃至実施の形態４のいずれかと共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、ログの内容に応じて動的に分割サイズを変更することで、ログ差分を小さくする構成について説明する。
【０１０６】
例えば、図８に示したログデータ７１０は、１行の中に日付、処理のＩＤ、エラーメッセージが出力され、ログの最小単位は１行となっている。また、図２０に示したログデータ７１０は、１行目に日付、ＩＤ処理モジュール名などが出力され、２行目にメッセージのコード、ログのメッセージが出力され、ログの最小単位は２行となっている。
ログ情報分割部（ログ分割部１１２）は、１行、２行．．．ｎ行で分割したログ情報を一旦生成し、それぞれ送信済みログ情報との差分を生成し、最も小さい物を選択する。
【０１０７】
図２４は、この実施の形態におけるログ情報送信側のデータの流れの一例を示す図である。
ログ情報分割部は、１行で分割した場合、２行で分割した場合、ｎ行で分割した場合というように、複数の分割パターンでログ情報を分割する。
ログ差分生成部は、分割されたログ情報と、ログ情報バッファが持っている過去のログ情報との間で、それぞれ差分情報を生成する。
ログ情報送信／保存部は、その差分情報の中で、最もサイズが小さい物を選択する。また、ログ情報バッファには、選択された差分情報の元になったログ情報を保存する。
ログファイル読み取り位置記憶部は、そのログ情報を読み込んだ分だけ、ログファイルの読み取り位置を進める。これにより、次に分割するログ情報が、送付したログ差分情報の元になったログ情報と連続性を保つことができる。
【０１０８】
この実施の形態におけるログ情報量圧縮方式（ログ収集システム８００）は、ログ情報分割部（ログ分割部１１２）が分割するログのサイズを動的に変更し、最も小さい差分情報を生成したログの分割サイズを用いる。
これにより、ログファイルの内容によって異なる、最適なログ情報の最小単位を、自動的、かつ動的に設定することが可能となる。
また、ログファイルを処理していく課程で、分割する行数が何行の場合に最も差分が小さくなったか、という統計情報を残すことで、ある程度処理を進めた後は、分割の行数を複数パターン試さずとも、効率良く差分を生成することが可能である。
【０１０９】
実施の形態６．
実施の形態６について、図２５〜図２９を用いて説明する。
なお、実施の形態１乃至実施の形態５のいずれかと共通する部分については、同一の符号を付し、説明を省略する。
【０１１０】
図２５は、この実施の形態におけるログ圧縮装置８１２の機能ブロックの構成の一例を示すブロック構成図である。
ログ圧縮装置８１２は、実施の形態１で説明した機能ブロックに加えて、更に、ログ単位分類部１１３を有する。
【０１１１】
ログ単位分類部１１３は、ＣＰＵ９１１を用いて、ログ分割部１１２が生成したログ単位データを１以上の種別に分類する。ログ単位分類部１１３は、分類した種別を表わすデータを生成して、種別データとする。
ログ単位取得部１２１は、ＣＰＵ９１１を用いて、ログ分割部１１２が生成したログ単位データ（取得単位データ）を取得し、取得したログ単位データについてログ単位分類部１１３が生成した種別データを取得する。
ログ単位記憶部１２２は、ＨＤＤ９２０を用いて、ログ単位取得部１２１が取得したログ単位データを、種別データが表わす種別ごとに分けて記憶する。ログ単位記憶部１２２は、それぞれの種別ごとに、所定の数のログ単位データを記憶する。
ログ差分生成部１２３は、ＣＰＵ９１１を用いて、ログ単位取得部１２１が取得した取得単位データと、ログ単位記憶部１２２が記憶したログ単位データのうち取得単位データと同じ種別に属するログ単位データとの間の差分データを生成する。
圧縮単位出力部１３４は、ＣＰＵ９１１を用いて、差分対象データと差分データと種別データとを含む圧縮単位データを出力する。
【０１１２】
ログ単位データの種別とは、例えば１つのログデータのなかに複数のログ記録装置８１１が生成したログが混じり合っている場合において、そのログ単位データを生成したログ記録装置８１１である。ログ記録装置８１１が異なれば、ログの書式も異なる場合が多い。また、１つのログ記録装置８１１が生成したログであっても、記録される内容によって、書式が大幅に異なる場合がある。
このように、書式が大幅に異なるログ単位データが混ざっている場合、書式が異なるログ単位データとの差分データよりも、書式が同じログ単位データとの差分データのほうがデータ量が少なくなる。
【０１１３】
ログ復元装置８３２について、図５を用いて説明する。
復元単位記憶部２２２は、ＨＤＤ９２０を用いて、圧縮単位データに含まれる種別データに基づいて、復元単位データを種別ごとに分けて記憶する。復元単位記憶部２２２は、種別ごとに所定の数の復元単位データを記憶する。
ログ単位復元部２２１は、ＣＰＵ９１１を用いて、圧縮単位取得部２１１が取得した圧縮単位データに含まれる種別データと差分対象データとに基づいて、復元単位記憶部２２２が記憶した復元単位データのなかから、復元単位データを取得する。ログ単位復元部２２１は、ＣＰＵ９１１を用いて、取得した復元単位データと、差分データとに基づいて、ログ単位データを復元する。
【０１１４】
図２６は、この実施の形態におけるログ圧縮処理Ｓ５１０の流れの一例を示すフローチャート図である。
ログ圧縮処理Ｓ５１０は、実施の形態１で説明した工程に加えて、更に、分類判定工程Ｓ５１５を有する。
【０１１５】
分類判定工程Ｓ５１５において、ログ単位分類部１１３は、ＣＰＵ９１１を用いて、取得単位取得工程Ｓ５１４でログ単位取得部１２１が取得したログ単位データについて、ログ単位データの種別を判定する。ログ単位取得部１２１は、ＣＰＵ９１１を用いて、ログ単位分類部１１３が生成した種別データを取得する。
【０１１６】
ログ単位取得工程Ｓ５２２において、ログ差分生成部１２３は、ＣＰＵ９１１を用いて、ログ単位記憶部１２２が記憶したログ単位データのうち、分類判定工程Ｓ５１５でログ単位取得部１２１が取得した種別データが表わす種別と同じ種別に属するログ単位データのなかから、未処理のログ単位データを１つ取得する。
【０１１７】
圧縮単位出力工程Ｓ５３２において、圧縮単位出力部１３４は、ＣＰＵ９１１を用いて、差分対象判定部１３１が生成した差分対象データと、ログ差分記憶部１３２が記憶した差分データと、ログ単位取得部１２１が取得した種別データとを含む圧縮単位データを出力する。
【０１１８】
取得単位記憶工程Ｓ５３３において、ログ単位記憶部１２２は、ＣＰＵ９１１を用いて、ログ単位取得部１２１が取得した種別データが表わす種別に基づいて、ログ単位取得部１２１が取得したログ単位データを分類して記憶する。
【０１１９】
ログ復元処理Ｓ６１０について、図７を用いて説明する。
ログ単位復元工程Ｓ６１２において、ログ単位復元部２２１は、ＣＰＵ９１１を用いて、圧縮単位取得工程Ｓ６１１で圧縮単位取得部２１１が取得した圧縮単位データから、差分対象データと差分データと種別データとを取得する。ログ単位復元部２２１は、ＣＰＵ９１１を用いて、復元単位記憶部２２２が記憶した復元単位データのなかから、取得した差分対象データと種別データとが表わすログ単位データを復元した復元単位データを取得する。ログ単位復元部２２１は、ＣＰＵ９１１を用いて、取得した復元単位データと差分データとに基づいて、ログ単位データを復元する。
【０１２０】
図２７は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
この例において、ログデータ７１０は、全部で６行からなり、１行を１つの単位とする６つの単位で構成されている。
各単位の種別は、例えば「＜」「＞」で括られた文字列により判別できる。６つの単位のうち、１つ目と４つ目は「＜ｓｉｇｎａｌＨａｎｄｌｅｒ−１＞」、２つ目と５つ目は「＜ＴＰ−Ｐｒｏｃｅｓｓｏｒ２」、３つ目と６つ目は「＜ＴＰ−Ｐｒｏｃｅｓｓｏｒ１＞」であるから、この６つの単位は、３つの種別に分けられる。
【０１２１】
図２８は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
６つのログ単位データ７２１ａ〜７２１ｆは、図２７に示したログデータ７１０をログ分割部１１２が分割したものである。
また、種別データ７２３ａ〜７２３ｆは、ログ分割部１１２が分割した６つのログ単位データ７２１ａ〜７２１ｆそれぞれについて、ログ単位分類部１１３が生成したものである。
ログ単位分類部１１３は、例えば上記のような基準にしたがって、ログ単位データを分類し、種別データ７２３ａ〜７２３ｆを生成する。
【０１２２】
図２９は、この実施の形態におけるログ圧縮装置８１２が処理するデータの一例を示す図である。
【０１２３】
ログ単位データ７２１ａについて圧縮単位出力部１３４が出力する圧縮単位データは、差分対象データ７４１ａ、差分データ７４２ａ、種別データ７４３ａを含む。種別データ７４３ａは、ログ単位分類部１１３がログ単位データ７２１ａについて生成した種別データ７２３ａと等しい。この時点で、ログ単位記憶部１２２は、ログ単位データを記憶していないので、差分データ７４２ａは、ログ単位データ７２１ａそのものであり、差分対象データ７４１ａは、そのことを表わす。
【０１２４】
ログ単位データ７２１ｂについて圧縮単位出力部１３４が出力する圧縮単位データは、差分対象データ７４１ｂ、差分データ７４２ｂ、種別データ７４３ｂを含む。種別データ７４３ｂは、ログ単位分類部１１３がログ単位データ７２１ｂについて生成した種別データ７２３ｂと等しい。この時点で、ログ単位記憶部１２２は、種別データ７２３ａが表わす種別について１つのログ単位データ７２１ａを記憶しているが、種別データ７２３ｂが表わす種別についてログ単位データを記憶していないので、差分データ７４２ｂは、ログ単位データ７２１ｂそのものであり、差分対象データ７４１ｂは、そのことを表わす。
【０１２５】
ログ単位データ７２１ｃについて圧縮単位出力部１３４が出力する圧縮単位データは、差分対象データ７４１ｃ、差分データ７４２ｃ、種別データ７４３ｃを含む。種別データ７４３ｃは、ログ単位分類部１１３がログ単位データ７２１ｃについて生成した種別データ７２３ｃと等しい。この時点で、ログ単位記憶部１２２は、種別データ７２３ａが表わす種別について１つのログ単位データ７２１ａと、種別データ７２３ｂが表わす種別について１つのログ単位データ７２１ｂとを記憶しているが、種別データ７２３ｃが表わす種別についてログ単位データを記憶していないので、差分データ７４２ｃは、ログ単位データ７２１ｃそのものであり、差分対象データ７４１ｃは、そのことを表わす。
【０１２６】
ログ単位データ７２１ｄについて圧縮単位出力部１３４が出力する圧縮単位データは、差分対象データ７４１ｄ、差分データ７４２ｄ、種別データ７４３ｄを含む。種別データ７４３ｄは、ログ単位分類部１１３がログ単位データ７２１ｄについて生成した種別データ７２３ｄと等しい。種別データ７２３ｄは種別データ７２３ａと等しいので、この時点で、ログ単位記憶部１２２は、種別データ７２３ｄが表わす種別について１つのログ単位データ７２１ａを記憶している。ログ差分生成部１２３は、ログ単位データ７２１ａとログ単位データ７２１ｄとの差分データを生成する。ログ差分生成部１２３が生成した差分データのデータ量は、ログ単位データ７２１ｄのデータ量より小さいので、差分データ７４２ｄは、ログ差分生成部１２３が生成した差分データである。
【０１２７】
ログ単位データ７２１ｅについて圧縮単位出力部１３４が出力する圧縮単位データは、差分対象データ７４１ｅ、差分データ７４２ｅ、種別データ７４３ｅを含む。種別データ７４３ｅは、ログ単位分類部１１３がログ単位データ７２１ｅについて生成した種別データ７２３ｅと等しい。種別データ７２３ｅは種別データ７２３ｂと等しいので、この時点で、ログ単位記憶部１２２は、種別データ７２３ｅが表わす種別について１つのログ単位データ７２１ｂを記憶している。ログ差分生成部１２３は、ログ単位データ７２１ｂとログ単位データ７２１ｅとの差分データを生成する。ログ差分生成部１２３が生成した差分データのデータ量は、ログ単位データ７２１ｅのデータ量より小さいので、差分データ７４２ｅは、ログ差分生成部１２３が生成した差分データである。
【０１２８】
ログ単位データ７２１ｆについて圧縮単位出力部１３４が出力する圧縮単位データは、差分対象データ７４１ｆ、差分データ７４２ｆ、種別データ７４３ｆを含む。種別データ７４３ｆは、ログ単位分類部１１３がログ単位データ７２１ｆについて生成した種別データ７２３ｆと等しい。種別データ７２３ｆは種別データ７２３ｃと等しいので、この時点で、ログ単位記憶部１２２は、種別データ７２３ｆが表わす種別について１つのログ単位データ７２１ｃを記憶している。ログ差分生成部１２３は、ログ単位データ７２１ｃとログ単位データ７２１ｆとの差分データを生成する。ログ差分生成部１２３が生成した差分データのデータ量は、ログ単位データ７２１ｆのデータ量より小さいので、差分データ７４２ｆは、ログ差分生成部１２３が生成した差分データである。
【０１２９】
このように、ログ単位データを種別ごとに分けることにより、ログ差分生成部１２３が生成する差分データの数を少なくすることができるので、ログ圧縮装置８１２の計算量を減らすことができる。
また、ログ単位記憶部１２２が種別ごとに所定の数のログ単位データを記憶するので、出現頻度が低い種別のログ単位データについても、差の小さいログ単位データをログ単位記憶部１２２が保持している。このため、差分データのデータ量を小さくすることができ、圧縮効率を高めることができる。
【０１３０】
この実施の形態におけるログ圧縮装置８１２は、更に、ログ単位分類部１１３を有する。
上記ログ単位分類部１１３は、上記処理装置（ＣＰＵ９１１）を用いて、上記複数のログ単位データを複数の種別に分類する。
上記ログ差分生成部１２３は、上記処理装置を用いて、上記複数のログ単位データのうち、上記ログ単位分類部１１３が上記取得単位データと同じ種別に分類したログ単位データについて、上記ログ単位取得部１２１が取得した取得単位データとの差分データを生成する。
【０１３１】
これにより、ログ圧縮装置８１２の計算量を減らすことができるとともに、差分データのデータ量を小さくすることができる。ログ単位データを圧縮した圧縮単位データの圧縮率が高くなるので、ログ収集装置８３０に対して送信するデータ量を少なくすることができる。したがって、通信線８２０の通信容量が小さい場合でも、ログの欠落などを防ぐことができる。
【０１３２】
なお、この実施の形態では、実施の形態１で説明した構成を元にした構成について説明したが、他の実施の形態で説明した構成を元にした構成であってもよい。
【０１３３】
実施の形態７．
実施の形態７について、図３０を用いて説明する。
なお、実施の形態１乃至実施の形態６のいずれかと共通する部分については、同一の符号を付し、説明を省略する。
【０１３４】
この実施の形態では、ログの内容に応じて、読み取り位置を変え、ログ情報の順序を入れ替えることで、ログ差分を小さくする構成について説明する。
【０１３５】
例えば、図２７に示したログデータ７１０は、３つのモジュールが出力するログが、１つのログファイル上に混ざって出力されている。ログデータ７１０の各部分は、それぞれ異なるモジュールが同時に動作して出力したログになっている。このようにログが入れ子になることは、ログ情報送信側で、ログファイルを出力するシステムの、ＣＰＵが複数個ある場合や、ＣＰＵコアが複数ある場合に顕著に発生する。ログの内容にもよるが、この例の場合は、「＜」「＞」内に記述されている識別子（ｓｉｇｎａｌＨａｎｄｌｅｒ−１、ＴＰ−Ｐｒｏｃｅｓｓｏｒ１、ＴＰ−Ｐｒｏｃｅｓｓｏｒ２など）により、分類出来る。
【０１３６】
ログファイル読み取り部（ログ取得部１１１）は、ある程度まとまった大きさのログ情報（ログデータ７１０）をログファイルから読み込む。ログファイル読み取り部は、例えば１２行をまとめて読み込む。ログファイル読み取り部は、読み込んだログ情報を１行ずつに分割する。ログファイル読み取り部は、識別子によってログ情報を入れ替える。ログ情報分割部（ログ分割部１１２）は、入れ替え後に、ログ情報を最小単位に分割する。ログ情報分割部は、実施の形態５の構成と同様、分割サイズを変更する構成であってもよい。複数行にわたる一連の処理内容を一つのログ情報としてまとめ、その単位で差分を生成することにより、より差分を小さく出来ることが期待できる。また、ログ情報送信／保存部が送信、保存する差分情報（圧縮単位データ）には、元のログ情報内の位置を示すインデックス（ｉｄｘ）を持たせる。
【０１３７】
図３０は、この実施の形態におけるログ情報分割部がログ情報の順序を入れ替える様子の一例を示す図である。
【０１３８】
ログ情報受信側では、差分からログ情報を復元後に、ｉｄｘを元にしてログ情報を入れ替え、元のログファイルと同じ順序でログ情報保存部がログ情報を保存する。
【０１３９】
この実施の形態におけるログ情報量圧縮方式（ログ収集システム８００）において、ログファイル読み取り部（ログ取得部１１１）は、ログ情報内の識別子によってログ情報の順序を入れ替えてから差分を生成し、ログ情報受信側では差分からの復元後に再度順序を入れ替えて元のログを復元する。
これにより、複数のモジュールが同時に動作し、ログを出力しているシステムのログに対して、より効果的に差分を使って情報量を削減することが出来る。
【０１４０】
実施の形態８．
実施の形態８について、図３１を用いて説明する。
なお、実施の形態１乃至実施の形態７のいずれかと共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、差分生成部を複数持つことで、差分生成でのスループットを上げる構成について説明する。
【０１４１】
図３１は、この実施の形態におけるログ収集システム８００の構成の一例を示す構成図である。
【０１４２】
ログ差分生成部１は、ログ情報分割部（ログ分割部１１２）とログ情報バッファ１（ログ単位記憶部１２２）からログ情報（ログ単位データ）を受け取り、１世代前のログ情報との差分情報を生成する。同様に、ログ差分生成部ｎは、ログ情報分割部とログ情報バッファｎからログ情報を受け取り、ｎ世代前のログ情報との差分情報を生成する。
【０１４３】
ログ差分生成部１は、ログ情報分割部からログ情報、ログ情報バッファ１から１世代前のログ情報を受け取り、１世代前との差分情報を生成する。同様にして、ログ差分生成部２は、２世代前のログ情報との差分情報、ログ差分生成部ｎはｎ世代前のログ情報との差分情報を生成する。
【０１４４】
この実施の形態におけるログ情報量圧縮方式（ログ収集システム８００）は、差分生成部を複数持つことにより、差分生成処理のスループットを上げる。
このように、ログ差分生成部がｎ個同時に動作することにより、差分生成を平行して行い、差分生成のスループットを上げることが出来る。ＣＰＵを複数持つ場合や、ＣＰＵが複数のコアを持つ場合に特に効果が高い。
【０１４５】
なお、この実施の形態で説明した構成を、他の実施の形態で説明した構成と組み合わせた構成としてもよい。差分情報生成部を複数持つことで、差分生成処理でのスループットを上げることができる。
【０１４６】
実施の形態９．
実施の形態９について、図３２を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、ログ情報送信側の機器またはＰＣサーバの負荷に応じて差分を生成する世代数を増減させる構成について説明する。
【０１４７】
図３２は、この実施の形態におけるログ収集システム８００の構成の一例を示す構成図である。
負荷測定部は、ログ送信側のＣＰＵ／メモリ／ディスクなどの負荷を測定し、あらかじめ設定した負荷を超える場合は、差分を生成する世代数を減らし、ログ差分情報生成による機器またはＰＣへの負荷を低減する。世代数が減った場合、ログ差分生成部で生成する差分の数が減るため、負荷を減らすことが可能である。
【０１４８】
この実施の形態におけるログ情報量圧縮方式（ログ収集システム８００）は、ログ情報送信側に負荷測定部を持ち、負荷に応じて差分を生成する世代数を増減させる。
これにより、ログ差分情報生成によって機器またはＰＣへかかる負荷を減らすことができるので、ログファイルを生成する業務アプリケーション等の動作に影響が出るのを防ぐことができる。ログ差分情報生成の負荷を変化させることにより、業務アプリケーション等への影響を抑えることが出来る。
なお、この実施の形態で説明した構成を、他の実施の形態で説明した構成と組み合わせた構成としてもよい。ログ情報送信側の機器またはＰＣの付加に応じて世代数を増減させることにより、同様の効果を得ることができる。
【符号の説明】
【０１４９】
１１１  ログ取得部、１１２  ログ分割部、１１３  ログ単位分類部、１２１  ログ単位取得部、１２２  ログ単位記憶部、１２３  ログ差分生成部、１３１  差分対象判定部、１３２  ログ差分記憶部、１３３  分割方式判定部、１３４  圧縮単位出力部、２１１  圧縮単位取得部、２２１  ログ単位復元部、２２２  復元単位記憶部、２３１  ログ結合部、２３２  ログ出力部、７１０  ログデータ、７１２  改行文字、７２１  ログ単位データ、７２３，７４３  種別データ、７３１〜７３３，７４２  差分データ、７４１  差分対象データ、７５１  復元単位データ、８００  ログ収集システム、８１０  ログ生成装置、８１１  ログ記録装置、８１２  ログ圧縮装置、８１３  ログ送信装置、８２０  通信線、８３０  ログ収集装置、８３１  ログ受信装置、８３２  ログ復元装置、８３３  ログ蓄積装置、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  ＨＤＤ、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
0005430370.tif 000002
【図２】
0005430370.tif 000003
【図３】
0005430370.tif 000004
【図４】
0005430370.tif 000005
【図５】
0005430370.tif 000006
【図６】
0005430370.tif 000007
【図７】
0005430370.tif 000008
【図８】
0005430370.tif 000009
【図９】
0005430370.tif 000010
【図１０】
0005430370.tif 000011
【図１１】
0005430370.tif 000012
【図１２】
0005430370.tif 000013
【図１３】
0005430370.tif 000014
【図１４】
0005430370.tif 000015
【図１５】
0005430370.tif 000016
【図１６】
0005430370.tif 000017
【図１７】
0005430370.tif 000018
【図１８】
0005430370.tif 000019
【図１９】
0005430370.tif 000020
【図２０】
0005430370.tif 000021
【図２１】
0005430370.tif 000022
【図２２】
0005430370.tif 000023
【図２３】
0005430370.tif 000024
【図２４】
0005430370.tif 000025
【図２５】
0005430370.tif 000026
【図２６】
0005430370.tif 000027
【図２７】
0005430370.tif 000028
【図２８】
0005430370.tif 000029
【図２９】
0005430370.tif 000030
【図３０】
0005430370.tif 000031
【図３１】
0005430370.tif 000032
【図３２】
0005430370.tif 000033