(57)【要約】【課題】ログファイルの特徴を捉えた圧縮を行うことで、圧縮率を向上すること。【解決手段】タイムスタンプ情報抽出部３２が、ログファイル本文からタイムスタンプを抽出し、ソート部３４が、ログ本体部に基づいてログ本体部とタイムスタンプをソートする。そして、圧縮実行部４２が、ソート部３４によりソートされたログ本体部とタイムスタンプを圧縮し、データ保存部４３が、圧縮実行部４２により圧縮されたログ本体部と複数のタイムスタンプをログ記憶部５に保存する。【選択図】図１２
2018041288.tif 000002
【特許請求の範囲】
【請求項１】
複数のログのそれぞれからタイムスタンプを分離する分離部と、
前記分離部によりタイムスタンプが分離された複数の本体部と複数のタイムスタンプを本体部の情報に基づいてソートするソート部と、
前記ソート部によりソートされた複数の本体部と複数のタイムスタンプを辞書を用いて圧縮する圧縮部と、
前記圧縮部により圧縮された複数の本体部と複数のタイムスタンプを記憶装置に保存する保存部と
を有することを特徴とするログ管理装置。
【請求項２】
前記分離部は、各ログからタイムスタンプを分離するとともに各ログに順序データを付加し、
前記ソート部は、複数の本体部と複数のタイムスタンプと複数の順序データを本体部の情報に基づいてソートし、
前記圧縮部は、前記ソート部によりソートされた複数の本体部と複数のタイムスタンプと複数の順序データを圧縮し、
前記保存部は、前記圧縮部により圧縮された複数の本体部と複数のタイムスタンプと複数の順序データを記憶装置に保存する
ことを特徴とする請求項１に記載のログ管理装置。
【請求項３】
種類が同じ複数の装置のログファイルのログそれぞれに各ログファイルを識別する情報を付加する付加部と、
前記複数の装置のログファイルをまとめて１つのログファイルとする結合部とをさらに有し、
前記分離部は、前記結合部により１つのログファイルにまとめられた複数のログのそれぞれからタイムスタンプを分離することを特徴とする請求項１又は２に記載のログ管理装置。
【請求項４】
前記保存部により保存された複数の本体部と複数のタイムスタンプを前記記憶装置から読み出して伸張する伸張部と、
前記伸張部により伸張された複数の本体部と複数のタイムスタンプをタイムスタンプに基づいてソートし、各タイムスタンプを対応する本体部に挿入することで元のログを復元する復元部と
をさらに有することを特徴とする請求項１に記載のログ管理装置。
【請求項５】
前記保存部により保存された複数の本体部と複数のタイムスタンプと複数の順序データを前記記憶装置から読み出して伸張する伸張部と、
前記伸張部により伸張された複数の本体部と複数のタイムスタンプと複数の順序データを順序データに基づいてソートし、各タイムスタンプを対応する本体部に挿入し、各順序データを削除することで元のログを復元する復元部と
をさらに有することを特徴とする請求項２に記載のログ管理装置。
【請求項６】
コンピュータに、
複数のログのそれぞれからタイムスタンプを分離し、
複数のログのそれぞれからタイムスタンプが分離された複数の本体部と複数のタイムスタンプを本体部の情報に基づいてソートし、
ソートした複数の本体部と複数のタイムスタンプを辞書を用いて圧縮し、
圧縮した複数の本体部と複数のタイムスタンプを記憶装置に保存
する処理を実行させることを特徴とするログ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ログ管理装置及びログ管理プログラムに関する。
【背景技術】
【０００２】
データセンタ等で複数の装置を使用する場合、各装置のログファイルを集約して管理することが行われる。ログファイルを集約することによって、ログファイルを参照する場合に各装置にアクセスする必要がなくなる。また、障害が発生した装置にアクセスできるとは限らないため、事前にログファイルを集約装置に集約することによって、ログ情報を確実に収集することができる。
【０００３】
しかしながら、ログファイルを一箇所に集約すると、ログファイルを格納するハードディスク装置の必要容量が装置の数に比例して大きくなる。このため、集約装置は、ログファイルを圧縮してハードディスク装置に格納する。
【０００４】
なお、収集データを分割して圧縮し、圧縮データを転送する場合に、分割手段は、収集データを記憶する記憶手段の記憶容量の内のデータ圧縮とデータ転送に使用可能な記憶容量に応じて収集データを分割することで、転送時間を短縮する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１６３１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のログファイルの圧縮には、ログファイルの特徴を捉えた圧縮を行っていないため圧縮率が悪いという問題がある。例えば、二つのログの間にはタイムスタンプだけが異なる場合がある、といった特徴がログファイルにはある。このようなログファイルの特徴を捉えた圧縮を行うことで、圧縮率を向上することができる。
【０００７】
本発明は、１つの側面では、ログファイルの圧縮率を向上することを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、ログ管理装置は、分離部と、ソート部と、圧縮部と、保存部とを有する。分離部は、複数のログのそれぞれからタイムスタンプを分離する。ソート部は、分離部によりタイムスタンプが分離された複数の本体部と複数のタイムスタンプを本体部の情報に基づいてソートする。圧縮部は、ソート部によりソートされた複数の本体部と複数のタイムスタンプを辞書を用いて圧縮する。保存部は、圧縮部により圧縮された複数の本体部と複数のタイムスタンプを記憶装置に保存する。
【発明の効果】
【０００９】
１つの側面では、ログファイルの圧縮率を向上することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、辞書を利用した圧縮を説明するための図である。
【図２】図２は、ログファイルの一例を示す図である。
【図３】図３は、位置情報テーブルの一例を示す図である。
【図４】図４は、１行処理時点のログ本体部、タイムスタンプ及び順序情報を示す図である。
【図５】図５は、全行処理完了時点のログ本体部、タイムスタンプ及び順序情報を示す図である。
【図６】図６は、ソート後のログ本体部、タイムスタンプ及び順序情報を示す図である。
【図７】図７は、ログ本体部、タイムスタンプ及び順序情報の３つのそれぞれの行の結合結果を示す図である。
【図８】図８は、対応付け後のログ本体部、タイムスタンプ及び順序情報を示す図である。
【図９】図９は、ソート後のログ本体部、タイムスタンプ及び順序情報を示す図である。
【図１０】図１０は、１行処理時点のログファイル本文を示す図である。
【図１１】図１１は、全行処理完了時点のログファイル本文を示す図である。
【図１２】図１２は、実施例１に係る集約装置の機能構成を示す図である。
【図１３】図１３は、前処理部による処理のフローを示すフローチャートである。
【図１４】図１４は、復元部による処理のフローを示すフローチャートである。
【図１５】図１５は、実施例２に係る集約装置によるログファイルの結合を説明するための図である。
【図１６】図１６は、２つのログファイルの例を示す図である。
【図１７】図１７は、ログファイルに対応付けられる付加情報をタイムスタンプの先頭に付加する手順を示す図である。
【図１８】図１８は、ログファイルに対応付けられた付加情報がタイムスタンプの先頭に付加された後のログファイルを示す図である。
【図１９】図１９は、結合後のログファイルを示す図である。
【図２０】図２０は、付加情報と元ログファイル名の対応表の一例を示す図である。
【図２１】図２１は、複数ファイル結合処理のフローを示すフローチャートである。
【図２２】図２２は、実施例に係る集約プログラムを実行するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するログ管理装置及びログ管理プログラムの実施例を図面に基づいて詳細に説明する。実施例１では、ログ管理装置として、各サーバのログファイルを圧縮して保存する集約装置について説明し、実施例２では、ログ管理装置として、複数のサーバのログを１つのログファイルにまとめてから圧縮して保存する集約装置について説明する。なお、実施例１及び２は開示の技術を限定するものではない。
【実施例１】
【００１２】
ログファイルの圧縮には、辞書を利用した圧縮が用いられる。辞書を利用した圧縮には、例えば、ＬＺＳＳ符号、ＬＺ７７符号がある。図１は、辞書を利用した圧縮を説明するための図である。図１において、「ＷＨＡＴ  ＩＳ  ＴＨＩＳ？  ＴＨＩＳ  ＩＳ  Ａ  ＰＥＮ．」は圧縮されるテキストである。参照部９１は、圧縮対象のテキストの一部であり、辞書として利用される。
【００１３】
符号化部９２は、これから圧縮される部分である。符号化部９２のテキストと同一の文字列が参照部９１に存在するか否かが判定され、存在する場合には、符号化部９２の文字列が辞書にある文字列の位置と長さに変換される。図１では、符号化部９２の「ＴＨＩＳ」が辞書に存在するため、（位置、長さ）の組である（３、４）で置き換えられる。
【００１４】
参照部９１と符号化部９２の長さが共に２５６文字である場合には、位置及び長さを表現するためにそれぞれ８ビット必要であり、合計１６ビットが必要である。一方、圧縮前の４文字を表現するためにはＡＳＣＩＩコードでは３２ビット必要であるため、変換後のビット長は半分になる。
【００１５】
参照部９１は固定長であるため、参照部９１は符号化部９２の移動と共に移動する。参照部９１が大きくなると、符号化部９２の文字列が参照部９１に存在する可能性は高くなるが、変換後のデータの位置を表現するために必要なビット数も増えるため、必ずしも圧縮率が向上するとは限らない。また、参照部９１は符号化部９２の移動と共に移動するため、近くに同じ文字列があれば圧縮率は向上する。そこで、実施例１に係る圧縮は、ログファイルに対して同じ文字列が近くに現れるように前処理を行うことで圧縮率を向上する。
【００１６】
図２〜図７は、実施例１に係る前処理の例を説明するための図である。図２は、ログファイルの一例を示す図であり、前処理されるログファイルを示す。図２に示すように、ログの種類は、Ｗｉｎｄｏｗｓ（登録商標、以下同様）のイベントログである。ログファイル本文は、イベントログとして収集されたログである。
【００１７】
各ログには、所定の位置にタイムスタンプが含まれる。図２では、例えば、１行目のログにおける「２０１５／０１／０１  １２：００：００」がタイムスタンプである。ログ内のタイムスタンプの位置は、ログの種類毎に位置情報テーブルで定義される。
【００１８】
図３は、位置情報テーブルの一例を示す図である。図３に示すように、位置情報テーブルでは、ログ種類とタイムスタンプ位置情報を対応付けられる。例えば、Ｗｉｎｄｏｗｓのイベントログでは、カンマ区切りで２番目がタイムスタンプの位置である。
【００１９】
実施例１に係る前処理部は、位置情報テーブルを基に、各行からタイムスタンプの情報を抽出する。そして、実施例１に係る前処理部は、各行に順序情報ｎを付加する。ここで、ｎは、ログファイルにおける行の順序を示す番号である。ｎは固定のビット長で表現され、ビット長はログファイルの総行数を表現可能な最小のビット数である。例えば、ログファイルの総行数が１０００である場合には、２9＝５１２＜１０００＜１０２４＝２10であることから、ｎのビット長は１０である。
【００２０】
図４は、１行処理時点のログ本体部、タイムスタンプ及び順序情報を示す図である。ここで、ログ本体部とは、ログからタイムスタンプが抽出された後の残りの文字列の部分である。図４に示すように、「エラー，２０１５／０１／０１  １２：００：００，Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ，Ｎａｍｅ＝Ｅｘｐｌｏｒｅｒ．ｅｘｅ」からタイムスタンプ「２０１５／０１／０１  １２：００：００」が抽出され、順序情報「１」が付加される。ログ本体部は、タイムスタンプが取り除かれた「エラー，，Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ，Ｎａｍｅ＝Ｅｘｐｌｏｒｅｒ．ｅｘｅ」である。
【００２１】
図５は、全行処理完了時点のログ本体部、タイムスタンプ及び順序情報を示す図である。図５に示すように、タイムスタンプ「２０１５／０１／０１  １２：００：００」〜「２０１５／０５／０６  １１：００：００」が抽出され、順序情報「１」〜「５」が付加される。
【００２２】
そして、実施例１に係る前処理部は、ログ本体部の文字列の大小を先頭から比較し、小さい順でログ本体部をソートする。その際、実施例１に係る前処理部は、ログ本体部の入れ替えにしたがって、タイムスタンプと順序情報の入れ替えも行う。
【００２３】
文字列の大小を比較する方法には、例えば、文字コードを利用する方法がある。この方法は、例えば、ＡＳＣＩＩにおける記号「ａ」の文字コードは「０ｘ６１」であり、「ｂ」の文字コードは「０ｘ６２」であるため、「ａ＜ｂ」となることを利用してソートする。
【００２４】
実施例１に係る前処理部は、まず、先頭の文字を比較し、先頭文字において、文字コードを利用した大小比較を実施し、この時点で大小が判定できればその大小関係を利用する。もし同じである場合には、実施例１に係る前処理部は、次の文字において同様に文字コードを利用して大小を比較する。そして、実施例１に係る前処理部は、このような比較を文字列の末尾まで実施し、最後まで同じであった場合には２つの文字列は同じ文字列と判定する。
【００２５】
図６は、ソート後のログ本体部、タイムスタンプ及び順序情報を示す図である。図６に示すように、ソートの結果、文字列「エラー」を先頭に含む行が最初の２行となり、文字列「情報」を先頭に含む行が残り３行になる。すなわち、ログ本体部が類似する行が近くに現れるように行の入れ替えが行われる。
【００２６】
そして、実施例１に係る前処理部は、ログ本体部、タイムスタンプ及び順序情報の３つのそれぞれの行を結合し、３つのファイルとする。図７は、ログ本体部、タイムスタンプ及び順序情報の３つのそれぞれの行の結合結果を示す図である。図７に示すように、ログ本体部の行を結合したファイル、タイムスタンプの行を結合したファイル、及び、順序情報を結合したファイルが作成される。
【００２７】
作成された３つのファイルは圧縮部によって圧縮され、集約装置のハードディスク装置に格納される。前処理を行わない場合と比較して、３つのファイルを合わせてもファイルサイズは小さくなる。
【００２８】
図８〜図１１は、前処理前のログファイルへの復元処理を説明するための図である。実施例１に係る復元部は、伸張部により伸張された３つのファイルを行毎に読み込んで対応付ける。図８は、対応付け後のログ本体部、タイムスタンプ及び順序情報を示す図である。図８に示すように、例えば、ログ本体部「エラー，，Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ，Ｎａｍｅ＝Ｅｘｐｌｏｒｅｒ．ｅｘｅ」、タイムスタンプ「２０１５／０１／０１  １２：００：００」、及び、順序情報「１」が対応付けられる。
【００２９】
そして、実施例１に係る復元部は、小さい順で順序情報をソートする。その際、実施例１に係る復元部は、順序情報の入れ替えにしたがって、ログ本体部及びタイムスタンプの入れ替えも行う。図９は、ソート後のログ本体部、タイムスタンプ及び順序情報を示す図である。図９に示すように、順序情報の小さい順に、ログ本体部、タイムスタンプ及び順序情報がソートされる。
【００３０】
そして、実施例１に係る復元部は、位置情報テーブルを基に、各行のログ本体部にタイムスタンプの情報を挿入し、順序情報を削除して、ログファイル本文を復元する。図１０は、１行処理時点のログファイル本文を示す図である。図１０に示すように、例えば、ログ本体部「エラー，，Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ，Ｎａｍｅ＝Ｅｘｐｌｏｒｅｒ．ｅｘｅ」とタイムスタンプ「２０１５／０１／０１  １２：００：００」から、ログファイル本文が復元される。復元されたログファイル本文は、「エラー，２０１５／０１／０１  １２：００：００，Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ，Ｎａｍｅ＝Ｅｘｐｌｏｒｅｒ．ｅｘｅ」である。
【００３１】
図１１は、全行処理完了時点のログファイル本文を示す図である。図１１に示すように、タイムスタンプ「２０１５／０１／０１  １２：００：００」〜「２０１５／０５／０６  １１：００：００」がログ本体部の対応する行にそれぞれ挿入され、５行のログファイル本文が復元される。
【００３２】
次に、実施例１に係る集約装置の機能構成について説明する。図１２は、実施例１に係る集約装置の機能構成を示す図である。図１２に示すように、実施例１に係る集約装置１は、ログ収集部２と、前処理部３と、圧縮部４と、ログ記憶部５と、伸張部６と、復元部７と、ログ出力部８とを有する。
【００３３】
ログ収集部２は、複数サーバからログファイルを収集し、サーバ毎にログファイルをハードディスク装置に保存する。ログ収集部２は、収集実行部２１と、一時保存部２２とを有する。収集実行部２１は、各サーバからログファイルを収集する。一時保存部２２は、収集実行部２１により収集されたログファイルをサーバ毎にハードディスク装置に保存する。
【００３４】
前処理部３は、ログファイルをハードディスク装置から読み込んで前処理を行い、前処理結果をハードディスク装置に保存する。前処理部３は、一時データ読込部３１と、タイムスタンプ情報抽出部３２と、順序情報付加部３３と、ソート部３４と、一時保存部３５と、作業用バッファ３６とを有する。
【００３５】
一時データ読込部３１は、ハードディスク装置からログファイルを読み込む。タイムスタンプ情報抽出部３２は、ログファイルの各ログから位置情報テーブル３２ａに基づいてタイムスタンプの情報を抽出する。順序情報付加部３３は、各ログに順序情報を付加する。
【００３６】
ソート部３４は、ログ本体部に基づいて、ログ本体部、タイムスタンプ及び順序情報をソートする。一時保存部３５は、ソート部３４によりソートされたログ本体部、タイムスタンプ及び順序情報をそれぞれファイルとしてハードディスク装置に保存する。作業用バッファ３６は、前処理部３が作業用に使用する記憶領域である。
【００３７】
圧縮部４は、ログ本体部、タイムスタンプ及び順序情報のファイルを読み込んで圧縮し、ログ記憶部５に保存する。圧縮部４は、一時データ読込部４１と、圧縮実行部４２と、データ保存部４３とを有する。
【００３８】
一時データ読込部４１は、ログ本体部、タイムスタンプ及び順序情報のファイルをハードディスク装置から読み込む。圧縮実行部４２は、一時データ読込部４１により読み込まれたログ本体部、タイムスタンプ及び順序情報のファイルを、辞書を利用して圧縮する。データ保存部４３は、圧縮実行部４２により圧縮されたログ本体部、タイムスタンプ及び順序情報のファイルをログ記憶部５に保存する。
【００３９】
ログ記憶部５は、サーバ毎の圧縮ログを記憶する。すなわち、ログ記憶部５は、圧縮部４により圧縮されたログ本体部、タイムスタンプ及び順序情報のファイルをサーバ毎に記憶する。ログ記憶部５は、ハードディスク装置内の領域である。
【００４０】
伸張部６は、ログ記憶部５から圧縮ログを読み込んで伸張し、ハードディスク装置に保存する。伸張部６は、データ読込部６１と、伸張実行部６２と、一時保存部６３とを有する。データ読込部６１は、ログ記憶部５からログ本体部、タイムスタンプ及び順序情報のファイルを読み込む。伸張実行部６２は、データ読込部６１によって読み込まれたログ本体部、タイムスタンプ及び順序情報のファイルを伸張する。一時保存部６３は、伸張実行部６２により伸張されたログ本体部、タイムスタンプ及び順序情報のファイルをハードディスク装置に保存する。
【００４１】
復元部７は、伸張部６により伸張されたログ本体部、タイムスタンプ及び順序情報のファイルからログファイルを復元する。復元部７は、一時データ読込部７１と、ソート部７２と、順序情報削除部７３と、タイムスタンプ情報結合部７４と、一時保存部７５と、作業用バッファ７６とを有する。
【００４２】
一時データ読込部７１は、伸張部６により伸張されたログ本体部、タイムスタンプ及び順序情報のファイルをハードディスク装置から読み込み、３つのファイルの行毎の対応付けを行う。ソート部７２は、順序情報に基づいてログ本体部、タイムスタンプ及び順序情報をソートする。
【００４３】
順序情報削除部７３は、ソート部７２によるソートの後の順序情報を削除する。タイムスタンプ情報結合部７４は、タイムスタンプの情報を位置情報テーブル７４ａを用いてログ本体部に挿入し、ログファイル本文を復元する。一時保存部７５は、タイムスタンプ情報結合部７４により復元されたログファイル本文をログファイルとしてハードディスク装置に保存する。作業用バッファ７６は、復元部７が作業用に使用する記憶領域である。
【００４４】
ログ出力部８は、ユーザが指定する条件を満たすログに関する情報を表示装置に表示する。ログ出力部８は、一時データ読込部８１と、フィルタ部８２と、画面出力部８３とを有する。一時データ読込部８１は、復元部７により復元されたログファイルをハードディスク装置から読み込む。フィルタ部８２は、ユーザが指定する条件を満たすログをログファイルから抽出する。画面出力部８３は、フィルタ部８２により抽出されたログに関する情報を表示装置に表示する。
【００４５】
次に、前処理部３による処理のフローについて説明する。図１３は、前処理部３による処理のフローを示すフローチャートである。図１３に示すように、前処理部３は、ログファイルを読み込む（ステップＳ１）。そして、前処理部３は、位置情報テーブル３２ａからログの種類に対するタイムスタンプ位置情報を検索し（ステップＳ２）、作業用バッファ３６にタイムスタンプ位置情報を保存する（ステップＳ３）。
【００４６】
そして、前処理部３は、ログファイルのデータを１行読み込み（ステップＳ４）、タイムスタンプ位置情報に基づいてタイムスタンプを抽出する（ステップＳ５）。そして、前処理部３は、順序情報を付加し（ステップＳ６）、ログファイルの最後か否かを判定する（ステップＳ７）。そして、前処理部３は、ログファイルの最後でない場合には、ステップＳ４に戻る。
【００４７】
一方、ログファイルの最後である場合には、前処理部３は、ログ本体部に従い、ログ本体部、タイムスタンプ、順序情報をソートし（ステップＳ８）、ログ本体部、タイムスタンプ、順序情報それぞれにおいて、行を結合する（ステップＳ９）。そして、前処理部３は、ログ本体部、タイムスタンプ、順序情報をそれぞれ別ファイルに保存する。
【００４８】
このように、前処理部３が、ログ本体部に従い、ログ本体部、タイムスタンプ、順序情報をソートすることによって、同じ文字列を有するログが近くに現れるようにログを並べ替えることができる。
【００４９】
次に、復元部７による処理のフローについて説明する。図１４は、復元部７による処理のフローを示すフローチャートである。図１４に示すように、復元部７は、ログ本体部ファイル、タイムスタンプファイル、順序情報ファイルを読み込み、行毎に展開する（ステップＳ２１）。ここで、行毎に展開するとは、行毎に対応付けを行うことである。
【００５０】
そして、復元部７は、順序情報に従い、ログ本体部、タイムスタンプ、順序情報をソートする（ステップＳ２２）。そして、復元部７は、位置情報テーブル７４ａからログの種類に対するタイムスタンプ位置情報を検索し（ステップＳ２３）、作業用バッファ７６にタイムスタンプ位置情報を保存する（ステップＳ２４）。
【００５１】
そして、復元部７は、ログ本体部、タイムスタンプ、順序情報のデータを１行読み込み（ステップＳ２５）、タイムスタンプ位置情報に基づいてログ本体部にタイムスタンプを挿入する（ステップＳ２６）。そして、復元部７は、順序情報を削除し（ステップＳ２７）、データの最後か否かを判定する（ステップＳ２８）。
【００５２】
そして、復元部７は、データの最後でない場合には、ステップＳ２５に戻り、データの最後である場合には、復元したログファイル本文をファイルに保存する（ステップＳ２９）。
【００５３】
このように、復元部７が、ログを元の順序に戻し、タイムスタンプをログの元の位置に戻し、順序情報を削除することによって、ログファイルを復元することができる。
【００５４】
上述してきたように、実施例１では、タイムスタンプ情報抽出部３２が、ログファイル本文からタイムスタンプを抽出し、ソート部３４が、ログ本体部に基づいてログ本体部とタイムスタンプをソートする。そして、圧縮実行部４２が、ソート部３４によりソートされたログ本体部とタイムスタンプを圧縮する。したがって、集約装置１は、同じ文字列を含むログが近くに現れるようにログを入れ替えることができ、ログファイルの圧縮率を向上することができる。
【００５５】
また、実施例１では、順序情報付加部３３が各ログに順序情報を付加し、ソート部３４が、ログ本体部に基づいてログ本体部とタイムスタンプと順序情報をソートする。したがって、集約装置１は、順序情報を用いてログを復元することができる。
【実施例２】
【００５６】
ところで、上記実施例１では、サーバ毎にログファイルを圧縮して保存する場合について説明したが、サーバ毎のログファイルをまとめて１つのログファイルとした後に圧縮することもできる。そこで、実施例２では、サーバ毎のログファイルをまとめて１つのログファイルとした後に圧縮する集約装置について説明する。
【００５７】
まず、実施例２に係る集約装置によるログファイルの結合について説明する。図１５は、実施例２に係る集約装置によるログファイルの結合を説明するための図である。図１５に示すように、実施例２に係る集約装置１ａは、サーバＡ〜サーバＣそれぞれからネットワーク１ｂを介してログファイルを取得する。そして、集約装置１ａは、サーバＡ〜サーバＣから取得した複数のログファイルを結合して１つのログファイルを作成し、作成したログファイルを圧縮してログ記憶部５ａに保存する。
【００５８】
集約装置１ａは、図１２に示した機能部に加えて、結合部２ａを有する。結合部２ａは、サーバＡ〜サーバＣから取得した複数のログファイルを結合して１つのログファイルを作成する。また、結合部２ａは、位置情報テーブル２ｂと作業用バッファ２ｃとを有する。
【００５９】
複数のサーバＡ〜Ｃのログには、同じものが含まれる。例えば、サーバＡのログ「バックアップ成功」はサーバＣにも含まれる。また、サーバＡのログ「ウィルスチェック：ＯＫ」はサーバＢ及びサーバＣにも含まれる。したがって、集約装置１ａは、複数のログファイルをまとめたログファイルに対して同じ文字列を含むログが近くに現れるように並び替えを行うことによって、圧縮率をさらに向上することができる。
【００６０】
図１６〜図２０は、２つのログファイルを例としてログファイルの結合を説明するための図である。図１６は、２つのログファイルの例を示す図である。図１６に示すように、ログファイル＃１には、５つのログが含まれ、ログファイル＃２には４つのログが含まれる。
【００６１】
結合部２ａは、各ログのタイムスタンプの先頭にログファイルに対応付けられる付加情報を付加する。図１７は、ログファイルに対応付けられる付加情報をタイムスタンプの先頭に付加する手順を示す図である。
【００６２】
図１７に示すように、結合部２ａは、ログファイル＃１から１行読み込み、タイムスタンプの位置情報を使用して、読み込んだ行からタイムスタンプの情報を抽出する。そして、結合部２ａは、タイムスタンプの先頭にログファイル＃１に対応付けられた付加情報「１」を付加する。図１７では、タイムスタンプ「２０１５／０１／０１  １２：００：００」の先頭に「１」が付加され、タイムスタンプが「１２０１５／０１／０１  １２：００：００」に変更されている。そして、結合部２ａは、タイムスタンプの位置情報を使用して、元の位置にタイムスタンプの情報を挿入する。
【００６３】
結合部２ａは、図１７に示した処理をログファイル＃１の各行に対して行った後、同様の処理をログファイル＃２の各行に対して行う。図１８は、ログファイルに対応付けられた付加情報がタイムスタンプの先頭に付加された後のログファイルを示す図である。図１８（ａ）に示すように、ログファイル＃１の各ログのタイムスタンプの先頭には「１」が付加され、図１８（ｂ）に示すように、ログファイル＃２の各ログのタイムスタンプの先頭には「２」が付加される。
【００６４】
そして、結合部２ａは、ログファイル＃１の後方にログファイル＃２を追加し、１つのログファイルとする。図１９は、結合後のログファイルを示す図である。図１９に示すように、ログファイル＃１の最後のログ「情報，１２０１５／０５／０６  １１：００：００，Ｌｏｇｏｆｆ」の後に、ログファイル＃２の先頭のログ「情報，２２０１５／０４／１５  ０８：４０：０３，Ｌｏｇｏｎ」から４つのログが追加されている。
【００６５】
そして、結合部２ａは、付加情報と元のログファイル名とを対応付ける対応表を作成し、保存する。図２０は、付加情報と元ログファイル名の対応表の一例を示す図である。図２０に示すように、付加情報「１」には元ログファイル名「ログファイル＃１」が対応付けられ、付加情報「２」には元ログファイル名「ログファイル＃２」が対応付けられる。
【００６６】
そして、結合部２ａは、結合後のログファイルを前処理部３に渡す。ログファイル＃２には、「Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ」を含むログは１つしかないが、ログファイル＃１には、「Ａｐｐｌｉｃａｔｉｏｎ  Ｅｒｒｏｒ」を含むログが２つあるため、２つのログファイルを別々に圧縮する場合と比較して、１つのログファイルに結合して圧縮すると、圧縮後のファイルサイズを小さくすることができる。
【００６７】
また、集約装置１ａは、復元したログファイルをタイムスタンプの先頭に基づいて２つのログファイルに分割し、各ログのタイムスタンプの先頭から付加情報を取り除くことによって、元の２つのログファイルを復元することができる。なお、結合部２ａは、付加情報をタイムスタンプの先頭に付加したが、タイムスタンプの最後、タイムスタンプ以外の場所等他の位置に付加情報を付加してもよい。
【００６８】
図２１は、複数ファイル結合処理のフローを示すフローチャートである。図２１に示すように、結合部２ａは、位置情報テーブル２ｂからログの種類に対するタイムスタンプ位置情報を検索し（ステップＳ４１）、作業用バッファ２ｃにタイムスタンプ位置情報を保存する（ステップＳ４２）。
【００６９】
そして、結合部２ａは、１つのログファイルを読み込み（ステップＳ４３）、読み込んだログファイルからデータを１行読み込む（ステップＳ４４）。そして、結合部２ａは、読み込んだデータからタイムスタンプの情報を抽出し（ステップＳ４５）、タイムスタンプに付加情報を付加する（ステップＳ４６）。
【００７０】
そして、結合部２ａは、元の位置にタイムスタンプの情報を挿入し（ステップＳ４７）、データの最後か否かを判定する（ステップＳ４８）。そして、結合部２ａは、データの最後でない場合には、ステップＳ４４へ戻り、データの最後である場合には、最後のログファイルか否かを判定する（ステップＳ４９）。
【００７１】
そして、結合部２ａは、最後のログファイルでない場合には、ステップＳ４３へ戻り、最後のログファイルである場合には、全てのログファイルを結合し、１つのログファイルとして保存する（ステップＳ５０）。
【００７２】
このように、結合部２ａは、複数のログファイルを１つにまとめることによって、同じ文字列を含むログが複数ある可能性を高くし、圧縮率を向上することができる。
【００７３】
上述してきたように、実施例２では、結合部２ａは、複数のログファイルの各ログのタイムスタンプの先頭にログファイル名に対応付けられた付加情報を付加し、複数のログファイルをまとめて１つのログファイルを作成する。したがって、集約装置１ａは、圧縮率をさらに向上することができる。
【００７４】
なお、実施例１及び２では、順序情報を用いてログを元の順番に戻したが、順序情報の代わりにタイムスタンプを用いてログを元の順番に戻してもよい。タイムスタンプを用いることによって順序情報が不要となり、集約装置は圧縮率をさらに向上することができる。
【００７５】
ただし、実際には、タイムスタンプの順序はログが出力された順序と一致しない場合がある。例えば、ＯＳ（オペレーティングシステム）内部の時刻は、別のサーバと同期していることがよくあるが、同期するタイミングは周期的であり、同期タイミングでずれた時刻が修正される。特に前の時刻に修正された場合、修正された時刻の前後のログにおいて時刻と出力の順番の整合性が取れないことがある。そのため、実際のログファイルにてタイムスタンプの順序が保証された場合にのみ、順序情報をタイムスタンプ情報に代えることが可能となる。
【００７６】
タイムスタンプ情報に代替可能かのチェックは、前処理部３がログファイルから１行ずつ読み込む処理にて確認が可能である。具体的には、前処理部３は、１行読み込んでタイムスタンプの情報を抽出した際、タイムスタンプの情報を一時バッファに保存しておく。そして、前処理部３は、次の行を読み込んだときに、保存した前の行のタイムスタンプの情報と比較する。そして、前処理部３は、前の行のタイムスタンプの方が時刻として前である場合には「true」そうでない場合には「false」と判定する。そして、前処理部３は、全ての行の処理が終わった時点で１回も「false」の判定が無かった場合には順序情報をタイムスタンプで代用することが可能であると判定する。
【００７７】
実施例２において複数のログファイルが結合された状態であっても、ログの順番を元に戻す際に、まず先頭に付加された元ログファイルの情報にてソートしてからタイムスタンプでソートすることで順序情報をタイムスタンプで代用することが可能となる。ただし、結合する全てのログファイルにおいてタイムスタンプの順序の整合性が保障されている必要がある。
【００７８】
また、実施例１及び２では、集約装置について説明したが、集約装置が有する構成をソフトウェアによって実現することで、同様の機能を有する集約プログラムを得ることができる。そこで、集約プログラムを実行するコンピュータについて説明する。
【００７９】
図２２は、実施例に係る集約プログラムを実行するコンピュータのハードウェア構成を示す図である。図２２に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。
【００８０】
メインメモリ５１は、プログラムやプログラムの実行途中結果などを記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。
【００８１】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するハードディスク装置であり、スーパーＩＯ５５は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤの読み書きを行う装置である。
【００８２】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。
【００８３】
そして、コンピュータ５０において実行される集約プログラムは、ＤＶＤに記憶され、ＯＤＤ５７によってＤＶＤから読出されてコンピュータ５０にインストールされる。あるいは、集約プログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読出されてコンピュータ５０にインストールされる。そして、インストールされた集約プログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読出されてＣＰＵ５２によって実行される。
【００８４】
また、実施例では、サーバのログファイルを圧縮する場合について説明したが、本発明はこれに限定されるものではなく、例えばスイッチ等の他の装置のログファイルを圧縮する場合にも同様に適用することができる。
【００８５】
以上の実施例１〜２を含む実施形態に関し、さらに以下の付記を開示する。
【００８６】
（付記１）複数のログのそれぞれからタイムスタンプを分離する分離部と、
前記分離部によりタイムスタンプが分離された複数の本体部と複数のタイムスタンプを本体部の情報に基づいてソートするソート部と、
前記ソート部によりソートされた複数の本体部と複数のタイムスタンプを辞書を用いて圧縮する圧縮部と、
前記圧縮部により圧縮された複数の本体部と複数のタイムスタンプを記憶装置に保存する保存部と
を有することを特徴とするログ管理装置。
【００８７】
（付記２）前記分離部は、各ログからタイムスタンプを分離するとともに各ログに順序データを付加し、
前記ソート部は、複数の本体部と複数のタイムスタンプと複数の順序データを本体部の情報に基づいてソートし、
前記圧縮部は、前記ソート部によりソートされた複数の本体部と複数のタイムスタンプと複数の順序データを圧縮し、
前記保存部は、前記圧縮部により圧縮された複数の本体部と複数のタイムスタンプと複数の順序データを記憶装置に保存する
ことを特徴とする付記１に記載のログ管理装置。
【００８８】
（付記３）種類が同じ複数の装置のログファイルのログそれぞれに各ログファイルを識別する情報を付加する付加部と、
前記複数の装置のログファイルをまとめて１つのログファイルとする結合部とをさらに有し、
前記分離部は、前記結合部により１つのログファイルにまとめられた複数のログのそれぞれからタイムスタンプを分離することを特徴とする付記１又は２に記載のログ管理装置。
【００８９】
（付記４）前記保存部により保存された複数の本体部と複数のタイムスタンプを前記記憶装置から読み出して伸張する伸張部と、
前記伸張部により伸張された複数の本体部と複数のタイムスタンプをタイムスタンプに基づいてソートし、各タイムスタンプを対応する本体部に挿入することで元のログを復元する復元部と
をさらに有することを特徴とする付記１に記載のログ管理装置。
【００９０】
（付記５）前記保存部により保存された複数の本体部と複数のタイムスタンプと複数の順序データを前記記憶装置から読み出して伸張する伸張部と、
前記伸張部により伸張された複数の本体部と複数のタイムスタンプと複数の順序データを順序データに基づいてソートし、各タイムスタンプを対応する本体部に挿入し、各順序データを削除することで元のログを復元する復元部と
をさらに有することを特徴とする付記２に記載のログ管理装置。
【００９１】
（付記６）コンピュータに、
複数のログのそれぞれからタイムスタンプを分離し、
複数のログのそれぞれからタイムスタンプが分離された複数の本体部と複数のタイムスタンプを本体部の情報に基づいてソートし、
ソートした複数の本体部と複数のタイムスタンプを辞書を用いて圧縮し、
圧縮した複数の本体部と複数のタイムスタンプを記憶装置に保存
する処理を実行させることを特徴とするログ管理プログラム。
【００９２】
（付記７）前記分離する処理は、各ログからタイムスタンプを分離するとともに各ログに順序データを付加し、
前記ソートする処理は、複数の本体部と複数のタイムスタンプと複数の順序データを本体部の情報に基づいてソートし、
前記圧縮する処理は、ソートした複数の本体部と複数のタイムスタンプと複数の順序データを圧縮し、
前記保存する処理は、圧縮した複数の本体部と複数のタイムスタンプと複数の順序データを記憶装置に保存する
ことを特徴とする付記６に記載のログ管理プログラム。
【００９３】
（付記８）種類が同じ複数の装置のログファイルのログそれぞれに各ログファイルを識別する情報を付加し、
前記複数の装置のログファイルをまとめて１つのログファイルとする
処理をさらに前記コンピュータに実行させ
前記分離する処理は、１つのログファイルにまとめられた複数のログのそれぞれからタイムスタンプを分離することを特徴とする付記６又は７に記載のログ管理プログラム。
【００９４】
（付記９）前記保存する処理により保存された複数の本体部と複数のタイムスタンプを前記記憶装置から読み出して伸張し、
伸張した複数の本体部と複数のタイムスタンプをタイムスタンプに基づいてソートし、各タイムスタンプを対応する本体部に挿入することで元のログを復元する
処理をさらに前記コンピュータに実行させることを特徴とする付記６に記載のログ管理プログラム。
【００９５】
（付記１０）前記保存する処理により保存された複数の本体部と複数のタイムスタンプと複数の順序データを前記記憶装置から読み出して伸張し、
伸張した複数の本体部と複数のタイムスタンプと複数の順序データを順序データに基づいてソートし、各タイムスタンプを対応する本体部に挿入し、各順序データを削除することで元のログを復元する
処理をさらに前記コンピュータに実行させることを特徴とする付記７に記載のログ管理プログラム。
【符号の説明】
【００９６】
１，１ａ    集約装置
１ｂ    ネットワーク
２    ログ収集部
２ａ    結合部
２ｂ    位置情報テーブル
２ｃ    作業用バッファ
３    前処理部
４    圧縮部
５，５ａ    ログ記憶部
６    伸張部
７    復元部
８    ログ出力部
２１    収集実行部
２２    一時保存部
３１    一時データ読込部
３２    タイムスタンプ情報抽出部
３２ａ    位置情報テーブル
３３    順序情報付加部
３４    ソート部
３５    一時保存部
３６  作業用バッファ
４１    一時データ読込部
４２    圧縮実行部
４３    データ保存部
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
６１    データ読込部
６２    伸張実行部
６３    一時保存部
７１    一時データ読込部
７２    ソート部
７３    順序情報削除部
７４    タイムスタンプ情報結合部
７４ａ    位置情報テーブル
７５    一時保存部
７６    作業用バッファ
８１    一時データ読込部
８２    フィルタ部
８３    画面出力部
９１    参照部
９２    符号化部
【図１】
2018041288.tif 000003
【図２】
2018041288.tif 000004
【図３】
2018041288.tif 000005
【図４】
2018041288.tif 000006
【図５】
2018041288.tif 000007
【図６】
2018041288.tif 000008
【図７】
2018041288.tif 000009
【図８】
2018041288.tif 000010
【図９】
2018041288.tif 000011
【図１０】
2018041288.tif 000012
【図１１】
2018041288.tif 000013
【図１２】
2018041288.tif 000014
【図１３】
2018041288.tif 000015
【図１４】
2018041288.tif 000016
【図１５】
2018041288.tif 000017
【図１６】
2018041288.tif 000018
【図１７】
2018041288.tif 000019
【図１８】
2018041288.tif 000020
【図１９】
2018041288.tif 000021
【図２０】
2018041288.tif 000022
【図２１】
2018041288.tif 000023
【図２２】
2018041288.tif 000024