(57)【要約】 【課題】  膨大なログを見易く整形し、有益な情報をユーザに提示することができるログ要約装置、ログ要約プログラムおよび記録媒体を提供する。【解決手段】  要約処理部１４１は、不純度関数を用いて、ログ中の各属性データについての不純度ｆを求め、最もｆの大きな属性データを要約対象の属性データとして選択する。続いて、要約処理部１４１は、選択された属性データに出現する項目データの出現頻度に基づいて、属性データの不純度が下がるように、複数の項目データを同一の数値または文字列に置き換える。要約処理部１４１は置き換えによって生じた重複行を削除する。要約処理部１４１は、ログの行数が所定行未満となるまで要約処理を繰り返す。【選択図】    図１
2005209115.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク機器において出力されるログを要約するログ要約装置において、
前記ログに記録されている属性データに出現する項目データごとの出現頻度に基づいて、前記属性データの出現項目の偏在度に関する値を算出する算出手段と、
前記偏在度に関する値の算出結果に基づいて、集約対象の属性データを選択する選択手段と、
選択された前記属性データ中に出現する項目データの出現頻度に基づいて、複数の項目データを同一の数値または文字列に置き換える置換手段と、
前記置換手段による項目データの置き換えによって生じた重複行を同一の行に集約する集約手段と、
を具備することを特徴とするログ要約装置。
【請求項２】
前記属性データは、連続属性データ、離散属性データ、および階層構造属性データのいずれかであり、
前記置換手段は、選択された前記属性データに出現する項目データの出現頻度に基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項１に記載のログ要約装置。
【請求項３】
前記属性データが前記連続属性データである場合、前記置換手段は、前記属性データに出現する複数の項目データ間の差と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項２に記載のログ要約装置。
【請求項４】
前記属性データが前記離散属性データである場合、前記置換手段は、前記属性データに出現する複数の項目データ間のハミング距離と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項２に記載のログ要約装置。
【請求項５】
前記属性データが前記階層構造属性データである場合、前記置換手段は、前記属性データに出現する項目データを木構造の節点に割り当て、前記属性データの偏在度が上がるように、出現頻度の小さな項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項２に記載のログ要約装置。
【請求項６】
前記ログを複数のログに分割する分割手段と、
分割された個々のログの要約後のログを連結する連結手段と、
をさらに具備することを特徴とする請求項１〜請求項５のいずれかの項に記載のログ要約装置。
【請求項７】
ネットワーク機器において出力されるログの要約処理をコンピュータに実行させるログ要約プログラムにおいて、
前記ログに記録されている属性データ中に出現する項目データごとの出現頻度に基づいて、前記属性データの出現項目の偏在度に関する値を算出するステップと、
前記偏在度に関する値の算出結果に基づいて、集約対象の属性データを選択するステップと、
選択された前記属性データに出現する項目データの出現頻度に基づいて、複数の項目データを同一の数値または文字列に置き換えるステップと、
前記置換手段による項目データの置き換えによって生じた重複行を同一の行に集約するステップと、
をコンピュータに実行させるためのログ要約プログラム。
【請求項８】
前記属性データは、連続属性データ、離散属性データ、および階層構造属性データのいずれかであり、
前記選択された前記属性データ中に出現する項目データの出現頻度に基づいて、複数の前記項目データを同一の数値または文字列に置き換えるステップにおいては、選択された前記属性データに出現する項目データの出現頻度に基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項７に記載のログ要約プログラム。
【請求項９】
前記属性データが前記連続属性データである場合、前記属性データに出現する複数の項目データ間の差と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項８に記載のログ要約プログラム。
【請求項１０】
前記属性データが前記離散属性データである場合、前記属性データに出現する複数の項目データ間のハミング距離と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項８に記載のログ要約プログラム。
【請求項１１】
前記属性データが前記階層構造属性データである場合、前記属性データに出現する項目データを木構造の節点に割り当て、前記属性データの偏在度が上がるように、出現頻度の小さな項目データを同一の数値または文字列に置き換える
ことを特徴とする請求項８に記載のログ要約プログラム。
【請求項１２】
前記偏在度を算出するステップの前に、前記ログを複数のログに分割するステップと、
前記重複行を集約するステップの後に、分割された個々のログの要約後のログを連結するステップと、
をさらに具備することを特徴とする請求項７〜請求項１１のいずれかの項に記載のログ要約プログラム。
【請求項１３】
請求項７〜請求項１２のいずれかの項に記載のログ要約プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータ、ファイアウォール、ＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ：侵入検知システム）等のネットワーク機器（通信機器、セキュリティ機器）のログを自動要約するログ要約装置、ログ要約プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
ネットワークにおいて、ルータ、ファイアウォール、パケットフィルター、ＩＤＳ等の機器を設置する場合、これらの装置では膨大な記録（ログ）が発生する。この膨大なログを全て確認することは困難であり、ログを要約あるいは解析する手法が提案されている。
【０００３】
特許文献１には、プログラムの実行トレースなどのログから制御構造を抽出し、その情報を用いてログを整形する制御構造抽出方法が記載されている。また、特許文献２には、アクセスログの中から実質的に意味を有するアクセスログを抽出するアクセスログの縮約方法が記載されている。また、特許文献３には、単語あるいは二単語連結句の出現頻度を考慮してログ情報を抽出するログ情報解析装置が記載されている。
【特許文献１】特開２００３−２４１９９８号公報
【特許文献２】特開２００３−７６８１４号公報
【特許文献３】特開２００１−３５６９３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ネットワーク機器において出力されるログは非常に膨大であり、その全てをユーザが確認することは困難であった。また、有益な情報が他の重要でない情報に埋もれてしまっており、有益な情報のみを確認することが困難であった。
【０００５】
本発明は、上述した問題点に鑑みてなされたものであって、膨大なログを見易く整形し、有益な情報をユーザに提示することができるログ要約装置、ログ要約プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、ネットワーク機器において出力されるログを要約するログ要約装置において、前記ログに記録されている属性データに出現する項目データごとの出現頻度に基づいて、前記属性データの出現項目の偏在度に関する値を算出する算出手段と、前記偏在度に関する値の算出結果に基づいて、集約対象の属性データを選択する選択手段と、選択された前記属性データ中に出現する項目データの出現頻度に基づいて、複数の項目データを同一の数値または文字列に置き換える置換手段と、前記置換手段による項目データの置き換えによって生じた重複行を同一の行に集約する集約手段とを具備することを特徴とするログ要約装置である。
【０００７】
属性データとは、ログに記録されているファイルサイズやファイル名、ＩＰアドレス等のデータ種別を表す。項目データとは、属性データの具体的内容（数値や文字列）を表す。出現頻度とは、同一の項目データがログ中に出現する頻度を表し、出現回数や出現確率等である。偏在度に関する値の算出においては、情報エントロピーやｇｉｎｉ係数等を用いる。項目データが特定のデータに集中するほど偏在度は高くなり、逆に特定のデータに集中せずにばらつくほど偏在度は低くなる。
【０００８】
請求項２に記載の発明は、請求項１に記載のログ要約装置において、前記属性データは、連続属性データ、離散属性データ、および階層構造属性データのいずれかであり、前記置換手段は、選択された前記属性データに出現する項目データの出現頻度に基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換えることを特徴とする。
【０００９】
連続属性データは、項目データ間に大小関係があり、その大小関係に意味があるものである。離散属性データは、項目データ間に大小関係がないか、あったとしても大小関係に特に意味がないものである。階層構造属性データは、項目データが階層構造で表されるものである。ＩＰアドレス、ディレクトリ構造、ディクレトリパス、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、メールアドレス、Ｘｐａｔｈ等を階層構造属性データに含めることができる。
【００１０】
請求項３に記載の発明は、請求項２に記載のログ要約装置において、前記属性データが前記連続属性データである場合、前記置換手段は、前記属性データに出現する複数の項目データ間の差と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換えることを特徴とする。
【００１１】
請求項４に記載の発明は、請求項２に記載のログ要約装置において、前記属性データが前記離散属性データである場合、前記置換手段は、前記属性データに出現する複数の項目データ間のハミング距離と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換えることを特徴とする。
【００１２】
ハミング距離とは、比較対象の複数の文字列の同一位置における文字がいくつ異なるかを示す値である。比較対象の複数の文字列の文字列長が異なる場合は、文字列長の差をハミング距離に加算するなどとすればよい。
【００１３】
請求項５に記載の発明は、請求項２に記載のログ要約装置において、前記属性データが前記階層構造属性データである場合、前記置換手段は、前記属性データに出現する項目データを木構造の節点に割り当て、前記属性データの偏在度が上がるように、出現頻度の小さな項目データを同一の数値または文字列に置き換えることを特徴とする。
【００１４】
請求項６に記載の発明は、請求項１〜請求項５のいずれかの項に記載のログ要約装置において、前記ログを複数のログに分割する分割手段と、分割された個々のログの要約後のログを連結する連結手段とをさらに具備することを特徴とする。
【００１５】
分割手段によって分割されたログは、算出手段、選択手段、置換手段、および集約手段の処理によって要約される。連結手段は、分割後の個々のログが要約されたものを連結する。この場合、連結手段は個々のログを所定数ごとに連結し、複数のログを生成してもよい。複数のログが生成された場合、それぞれのログは算出手段、選択手段、置換手段、および集約手段の処理によって再び要約される。連結手段は要約後のログを連結する。上記の処理を繰り返し行うようにしてもよい。
【００１６】
請求項７に記載の発明は、ネットワーク機器において出力されるログの要約処理をコンピュータに実行させるログ要約プログラムにおいて、前記ログに記録されている属性データ中に出現する項目データごとの出現頻度に基づいて、前記属性データの出現項目の偏在度に関する値を算出するステップと、前記偏在度に関する値の算出結果に基づいて、集約対象の属性データを選択するステップと、選択された前記属性データに出現する項目データの出現頻度に基づいて、複数の項目データを同一の数値または文字列に置き換えるステップと、前記置換手段による項目データの置き換えによって生じた重複行を同一の行に集約するステップとをコンピュータに実行させるためのログ要約プログラムである。
【００１７】
請求項８に記載の発明は、請求項７に記載のログ要約プログラムにおいて、前記属性データは、連続属性データ、離散属性データ、および階層構造属性データのいずれかであり、前記選択された前記属性データ中に出現する項目データの出現頻度に基づいて、複数の前記項目データを同一の数値または文字列に置き換えるステップにおいては、選択された前記属性データに出現する項目データの出現頻度に基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換えることを特徴とする。
【００１８】
請求項９に記載の発明は、請求項８に記載のログ要約プログラムにおいて、前記属性データが前記連続属性データである場合、前記属性データに出現する複数の項目データ間の差と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換えることを特徴とする。
【００１９】
請求項１０に記載の発明は、請求項８に記載のログ要約プログラムにおいて、前記属性データが前記離散属性データである場合、前記属性データに出現する複数の項目データ間のハミング距離と該項目データの出現頻度とに基づいて、前記属性データの偏在度が上がるように、複数の項目データを同一の数値または文字列に置き換えることを特徴とする。
【００２０】
請求項１１に記載の発明は、請求項８に記載のログ要約プログラムにおいて、前記属性データが前記階層構造属性データである場合、前記属性データに出現する項目データを木構造の節点に割り当て、前記属性データの偏在度が上がるように、出現頻度の小さな項目データを同一の数値または文字列に置き換えることを特徴とする。
【００２１】
請求項１２に記載の発明は、請求項７〜請求項１１のいずれかの項に記載のログ要約プログラムにおいて、前記偏在度を算出するステップの前に、前記ログを複数のログに分割するステップと、前記重複行を集約するステップの後に、分割された個々のログの要約後のログを連結するステップとをさらに具備することを特徴とする。
【００２２】
請求項１３に記載の発明は、請求項７〜請求項１２のいずれかの項に記載のログ要約プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２３】
本発明によれば、ログ中の属性ごとの項目の出現頻度を考慮してログの要約を行うようにしたので、膨大なログを見易く整形し、有益な情報をユーザに提示することができるという効果が得られる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照し、本発明を実施するための最良の形態について説明する。図１は、本発明の一実施形態によるログ要約装置の構成を示すブロック図である。本実施形態によるログ要約装置は、ネットワークに接続されており、各種ネットワーク機器から出力されるログの要約を行う。ネットワーク機器としては、ルータ、ファイアウォール、ＩＤＳ等が想定される。
【００２５】
図１において、１０はログ収集部であり、ネットワーク機器から、ネットワークを介してログを収集する。１１は操作部であり、ユーザによって操作されるキーボード等を備えている。ユーザによって操作部１１が操作されると、操作部１１はユーザによる操作を示す信号を制御部１５へ出力する。制御部１５はこの信号に基づいてユーザによる操作の内容を判断する。
【００２６】
１２は記憶部であり、ログ収集部１０によって収集されたログや、制御部１５の動作用のプログラム、ログ形式等の設定に関する設定情報等を記憶する。１３は表示部であり、例えば液晶ディスプレイ等を備えている。表示部１３は、制御部１５によって出力される表示データに基づいて、ユーザによる操作の結果やログの要約の結果等を表示する。１４はログ要約部であり、後述する処理に従って、ログの要約を行う。ログ要約部１４は要約処理を行う要約処理部１４１と、処理用データを一時記憶するメモリ等の処理用領域１４２とを備える。制御部１５は各部を制御する。
【００２７】
上記の構成を備えたログ要約装置は、例えば汎用のパーソナルコンピュータによって実現される。ログ要約装置は外部の通信機器から出力されるログを、ネットワークを介して収集し、収集したログを要約するものであってもよいし、各種ネットワーク機器の機能がソフトウェアとして実現されている場合、そのソフトウェアがインストールされているパーソナルコンピュータがログ要約装置の機能を備えていてもよい。
【００２８】
次に、本実施形態におけるログについて説明する。一般的に、ログは予め形式が定義されており、記録が時系列順に発生する構造を有している。ログの形式は、ネットワーク機器ごとに定義されているが、機器が異なるログ間においても、汎用的な形式は定義されている。ログは複数行からなり、一行当たりのログデータは、時間データおよび複数の属性データからなる。本実施形態における属性とは、値が連続的に変化する属性（連続属性）、値が離散的に変化する属性（離散属性）、および値が階層構造の関係で表される属性（階層構造属性）のいずれかの属性である。
【００２９】
図２は本実施形態におけるログの一般形式を示す参考図である。本実施形態におけるログデータは、先頭の時間データが示す時刻順に並んでおり、各ログデータは連続属性・離散属性・階層構造属性のいずれかに属する属性データを有している。連続属性に属する属性データは数値で表され、項目ごとの大小関係に意味があるものである。離散属性に属する属性データは文字列または数値で表されるものであり、項目ごとの大小関係がないか、もしあったとしても大小関係に特に意味がないものである。階層構造属性に属する属性データは、項目が階層構造で表されるものである。なお、本実施形態における属性データとは、ファイルサイズやファイル名、ＩＰアドレス等を示すものとする。また、属性データは複数の項目からなり、項目の具体的内容（数値や文字列）を項目値（項目データ）と定義することにする。
【００３０】
図３はｆｔｐ（ｆｉｌｅ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）サーバにおいて生成されるログの例を示す参考図である。図において、各行によってイベントが構成されている。図４はこのログの形式を示す参考図である。以下、図３のログの1行目のデータを用いてログの形式を説明する。図４には、ログが「ｃｕｒｒｅｎｔ−ｔｉｍｅ」、「ｔｒａｎｓｆｅｒ−ｔｉｍｅ」、「ｒｅｍｏｔｅ−ｈｏｓｔ」、「ｆｉｌｅ−ｓｉｚｅ」、および「ｆｉｌｅｎａｍｅ」の５つの属性データからなることが示されている。図３における「Ｍｏｎ  Ｓｅｐ  １  ０４：４８：０２  ２００３」は、図４における「ｃｕｒｒｅｎｔ−ｔｉｍｅ」に相当する。「ｃｕｒｒｅｎｔ−ｔｉｍｅ」の一般形式は「ＤＤＤ  ＭＭＭ  ｄｄｈｈ：ｍｍ：ｓｓ  ＹＹＹＹ」のように表され、各変数の意味は図４に記載されているとおりである。
【００３１】
図３における「９」は、図４における「ｔｒａｎｓｆｅｒ−ｔｉｍｅ」に相当し、秒単位での転送の総合時間を表す。図３における「１９２．１６８．８０．１９」は図４における「ｒｅｍｏｔｅ−ｈｏｓｔ」に相当し、ＩＰアドレスで表されたリモートホスト名である。図３における「６１６８７」は図４における「ｆｉｌｅ−ｓｉｚｅ」に相当し、転送されたファイルのサイズをバイト単位で表したものである。図３における「／ｔｍ／ｐａｃｋａｇｅｓ／ｍｉｋｔｅｘ−ｍｅｔａｆｏｎｔ−ｍｉｓｃ．ｃａｂ」は図４における「ｆｉｌｅｎａｍｅ」に相当し、転送されたファイル名を表す。この「ｆｉｌｅｎａｍｅ」には、転送されたファイルの階層構造が示されている。
【００３２】
時系列データの順序の基準となるｃｕｒｒｅｎｔ−ｔｉｍｅを除く以上の項目のうち、「ｔｒａｎｓｆｅｒ−ｔｉｍｅ」および「ｆｉｌｅ−ｓｉｚｅ」は連続属性に属し、「ｆｉｌｅｎａｍｅ」および「ｒｅｍｏｔｅ−ｈｏｓｔ」は階層構造属性に属する。「ｆｉｌｅｎａｍｅ」および「ｒｅｍｏｔｅ−ｈｏｓｔ」は、離散属性として扱うこともできるが、本実施形態においては、後述するように階層構造属性として扱うことにする。
【００３３】
次に、本実施形態によるログ要約装置の動作を説明する。図５は本実施形態におけるログの要約の様子を示す概略参考図である。本実施形態において、ログ要約装置は膨大なログの中から任意の長さＮ行のログを切り出し、予め定義された長さＭ行未満のログに要約する。なお、ＭおよびＮは正の整数であり、Ｍ≦Ｎである。
【００３４】
ログ収集部１０は、ネットワーク機器から出力されたログを収集し、制御部１５へ出力する。制御部１５はログ収集部１０によって出力されたログを記憶部１２へ格納する。ユーザによって操作部１１が操作され、ログの要約の開始が指示されると、操作部１１はユーザによる開始指示を示す信号を制御部１５へ出力する。制御部１５はこの信号に基づいて、記憶部１２からログおよび設定情報を読み出し、ログ要約部１４へ出力する。ログ要約部１４はログの要約を行い、要約後のログを制御部１５へ出力する。制御部１５はこのログを表示するための表示データを表示部１３へ出力する。表示部１３は表示データに基づいた表示を行う。ネットワーク管理者等のユーザは表示部１３の表示によって、ログの要約結果を確認することができる。
【００３５】
以下、ログ要約部１４によるログの要約手法の詳細について説明する。設定情報には、前述したログの形式を示す情報や、ログの切り出しの長さを示す行数Ｎ、要約処理終了の基準となるログの長さを示す行数Ｍ等が記録されている。これらの情報はユーザによる任意の変更が可能である。ログおよび設定情報は要約処理部１４１によって処理用領域１４２へ格納され、要約処理部１４１によって適宜読み出される。要約処理部１４１は設定情報に基づいて、ログを集約可能な形式に変換する。すなわち、ログに記録された情報のうち、設定情報によって規定された形式に従わない属性データを取り除くと共に、ログ中の各イベントにカウンタという属性データを付加する。このカウンタが示す値は、イベント中の全属性データの値が同一の値であるイベントの数を示すものであり、カウンタの初期値は１である。
【００３６】
続いて、要約処理部１４１は設定情報中の、ログの切り出しの長さを示す行数Ｎを参照し、膨大なログの中からＮ行のデータ（処理用データ）を切り出す。処理用データの切り出しにおいては、ログに記録されている時間データの参照により、任意の時間範囲内でＮ行のデータを切り出すことができる。
【００３７】
続いて、要約処理部１４１は集約を行う属性データの選択を行う。この選択は以下のように行われる。要約処理部１４１は各属性データについて特定の項目値ごとの出現率（出現確率）を求め、求めた出現率と不純度関数とを用いて不純度を求める。そして、不純度が最も高い属性データを選択して集約を行う。ある一つの属性（ファイルサイズ、ファイル名等）に注目した場合の、その属性データの総イベント数（処理用データの行数と同じ）を｜Ｓ｜、その属性データに出現する項目値（数値または文字列）をＣｉ（ｉ＝０，１，２，・・・）、その属性データにおけるＣｉの出現回数を｜Ｃｉ｜とする。Ｃｉの出現率ｐｉは以下の［数１］で表される。
【００３８】
【数１】
2005209115.tif 000003
【００３９】
不純度関数としては、情報量（情報エントロピー）またはｇｉｎｉ係数を用いる。不純度関数を情報量とする場合、不純度ｆは［数２］で表され、不純度関数をｇｉｎｉ係数とする場合、不純度ｆは［数３］で表される。
【００４０】
【数２】
2005209115.tif 000004
【００４１】
【数３】
2005209115.tif 000005
【００４２】
不純度ｆは、特定の属性データについて、項目値が特定の値にどの程度集中しているのかという偏在度を示す指標となる。例えば、値が大きくばらつくほどｆの値は大きく（偏在度は小さく）、値が特定の値に集中するほどｆの値は小さく（偏在度は大きく）なる。ｆの値が小さな属性はログの分析を行う上で、重要なデータを含んでいる可能性が高い。例えば、ネットワーク上に攻撃が急激に蔓延した場合、項目値が特定の値に集中しやすくなるのでｆの値は小さくなり、そのような属性を分析することは、攻撃の分析を行う上で重要である。したがって、ｆの値が大きな属性はあまり重要でないデータを含んでいることが多く、要約処理部１４１はそのようなデータを要約することによって、ユーザにとって見易いログを生成する。
【００４３】
要約処理部１４１は各属性データについて不純度ｆを求め、最もｆの大きな属性データを要約対象の属性データとして選択する。選択された属性データの種類によって要約処理部１４１の動作は異なり、以下、各属性データごとに要約処理部１４１の動作を説明する。
【００４４】
選択された属性データが連続属性である場合、要約処理部１４１は属性データの項目値とその値の出現度数とを処理用領域１４２に格納する。続いて、要約処理部１４１は、［数４］で表される値ｄ１を求める。［数４］において、Dｊは属性データにおけるｊ番目（ｊ＝０，１，２，・・・）の項目値であり、｜Dｊ｜はその出現率（Dｊの出現度数を全出現度数すなわちログの行数で割ったもの）を示す。｜Dｊ｜＋｜Dｊ＋１｜は隣り合う項目値の出現度数の和であり、｜Dｊ＋１−Dｊ｜は隣り合う項目値の距離（差）を示す。
【００４５】
【数４】
2005209115.tif 000006
【００４６】
［数４］におけるｄ１は密度に相当する値である。ｄ１が大きいほど特定の値への集中の度合が大きく、そのようなデータはログの分析を行う上では重要なデータである。したがって、要約処理部１４１はｄ１が小さい区間から順番に集約を行う。すなわち、要約処理部１４１は、ｄ１が最小となる隣り合う項目値DｊとDｊ＋１とを同一の値に置き換えることを置換情報として処理用領域１４２に格納する。要約処理部１４１は上述した処理を所定回数繰り返す。あるいは、要約処理部１４１は項目値の種類の数が所定数になるまで上述した処理を繰り返す。この所定回数または所定数は設定情報に予め記録されている。以上のように、重要でないデータを集約することにより、要約処理部１４１はこの属性データの不純度ｆを下げる（偏在度を上げる）。
【００４７】
要約処理部１４１によって選択された属性データが離散属性である場合、要約処理部１４１は属性データの項目値とその値の出現度数とを処理用領域１４２に格納する。続いて、要約処理部１４１は［数５］で表される値ｄ２を求める。［数５］において、Ｅｋは属性データにおけるｋ番目（ｋ＝０，１，２，・・・）の項目値であり、｜Ｅｋ｜はその出現率（Ｅｋの出現度数を全出現度数で割ったもの）を示す。ｄｈｕｍ（ｋ，ｋ＋１）はＥｋとＥｋ＋１とのハミング距離（ＥｋとＥｋ＋１の同一位置における文字がいくつ異なるかを示す値）である。比較対象のＥｋとＥｋ＋１との文字列長が異なる場合は、文字列長の差をハミング距離に加算する等とする。
【００４８】
【数５】
2005209115.tif 000007
【００４９】
［数５］におけるｄ２もｄ１と同様に、密度に相当する値である。要約処理部１４１はｄ２が小さい区間から順番に集約を行う。すなわち、要約処理部１４１は、ｄ２が最小となる隣り合う項目値ＥｊとＥｊ＋１とを同一の値に置き換えることを置換情報として処理用領域１４２に格納する。要約処理部１４１は上述した処理を所定回数繰り返すか、項目数の種類の数が所定数になるまで繰り返す。以上のように、重要でないデータを集約することにより、要約処理部１４１はこの属性データの不純度ｆを下げる（偏在度を上げる）。
【００５０】
要約処理部１４１によって選択された属性データが階層構造属性である場合、要約処理部１４１は属性データの項目値とその値の出現度数とを処理用領域１４２に格納する。続いて、要約処理部１４１は属性データの全ての項目値を木構造の節点に割り当てる。図６はディレクトリ構造を例とした場合の、属性データの項目値を木構造の節点に割り当てる手法を示す概略参考図である。図において、６０１〜６０４は節点である。要約処理部１４１は属性データの項目値を読み込み、文字「／」の出現によって木構造の節点を認識する。
【００５１】
例えば、最初に読み込んだ値が「／ｕｓｒ／」という値の場合、要約処理部１４１は、先頭の「／」に関連付けられた節点６０１を作成する。続いて、要約処理部１４１は「ｕｓｒ／」に関連付けられた節点６０２を節点６０１の下の階層に作成し、節点６０２にこの値を割り当てる。次に読み込んだ値が「／ｈｏｍｅ／ｙａｍａｄａ／」という値の場合、要約処理部１４１は、先頭の「／」によって節点６０１を認識し、続く「ｈｏｍｅ／」に関連付けられた節点６０３を節点６０１の下の階層に作成する。続いて、要約処理部１４１は「ｙａｍａｄａ／」に関連付けられた節点６０４を節点６０３の下の階層に作成し、読み込んだ値を節点６０４に割り当てる。同様に、「／ｈｏｍｅ／ｍｉｙａｋｅ／」という値によって節点６０５が作成され、この値が節点６０５に割り当てられる。
【００５２】
図７および図８は階層構造属性における項目の集約化の様子を示す概略参考図である。図７（ａ）は集約前の木構造を示している。木構造の節点に付与された丸印は、その節点に割り当てられた項目値を示しており、丸印の大きさはその項目値の出現数を模式的に示している。各階層構造には節点７０１〜７１５が予め割り当てられているものとする。また、各節点における項目値の出現数は図９の左側に示されているとおりとする。例えば、節点７０８に割り当てられている項目値（「／ｕｓｒ／ｓｒｃ／ａ／」）の出現数は１である。
【００５３】
要約処理部１４１は各項目値を上記のような木構造の節点に割り当て、以下の［数６］で表されるＴｈを算出する。［数６］において、Ｓは各節点に属する項目値の出現数の和（全項目数）であり、ログの行数と等しい。図７〜図９の例においては、Ｓは図９で示される各出現数の和の１４となる。Ｏは出力する項目値の数であり、この例では４とする。ＳおよびＯは記憶部１２中の設定情報に予め記録されている。この例においては、項目数１４の出現項目の項目値を４個の項目値に集約する（１４個の項目を４つの節点に割り当てる）とする。
【００５４】
【数６】
2005209115.tif 000008
【００５５】
要約処理部１４１は上記のＴｈを算出する。Ｓ＝１４、Ｏ＝４であるから、Ｔｈ＝３．５となる。このＴｈは集約後の１節点当たりの平均項目数を示している。要約処理部１４１は出現数の小さい項目値から順に以下の処理を行う。
（１）一つ上の階層の節点に集約した場合に、その節点における項目値の出現数がＴｈ以下である場合、集約可能であると判断する。
（２）（１）において一つ上の階層の節点に集約することができる場合、その節点の下の階層に属する項目値をその節点に集約する。
（３）（１）において、一つ上に階層の節点に集約することができない場合、さらに一つ上の階層の節点について再び（１）を考慮する。
【００５６】
要約処理部１４１は以上の（１）〜（３）を繰り返し、出力する項目値の数がＯとなるまで項目値の集約を行う。割り当て可能な節点が見つからず、最上位の節点まで探索が進んだ場合には、最上位の節点に割り当てられる。以下、具体例を挙げて説明する。図７（ａ）の状態において、要約処理部１４１は最も出現数の小さい項目値である、節点７０８に属する項目値を選択する。上記の（１）に従い、要約処理部１４１は節点７０４への割り当てを試みる（図７（ｂ）参照）。節点７０８に属する項目値を節点７０４へ割り当てたとすると、節点７０４に属する項目数は１となり、Ｔｈ以下である。また、節点７０４の下の階層に属する節点７０９に属する項目値も節点７０４へ割り当てたとすると、節点７０４に属する項目数は合計３となり、Ｔｈ以下である。したがって、上記の（２）により、節点７０８および７０９に属する項目値は節点７０４へ割り当てられる（図７（ｃ）参照）。
【００５７】
続いて、要約処理部１４１は節点７１１に属する項目値を選択し、上記の（１）に従い、節点７０５への割り当てを試みる（図７（ｄ）参照）。節点７１１に属する項目値を節点７１１に割り当て、節点７１０に属する項目値も節点７１１に割り当てたとすると、節点７１１に属する項目数の合計は４となり、Ｔｈを超えるので、前記の（３）に従った割り当てが行われる。要約処理部１４１は節点７１１に属する項目値をさらに上の階層の節点７０２へ割り当てようとする（図７（ｅ）参照）。前記の（２）に従い、節点７０２の下の階層の節点７０４および節点７１１に属する項目値も節点７０２へ割り当てた場合、項目数の合計はＴｈを超えるので、要約処理部１４１は最上位の節点７０１へ項目値を割り当てる（図７（ｆ））。
【００５８】
続いて、要約処理部１４１は節点７１４に属する項目値を選択し、前記の（１）に従い、節点７０７への割り当てを試みる（図８（ａ）参照）。節点７０７以下の階層に属する項目値を全て節点７０７へ割り当てたとすると、項目数はＴｈ以下なので、節点７１４および７１５に属する項目値は節点７０７へ割り当てられる（図８（ｂ）参照）。続いて、要約処理部１４１は節点７１３に属する項目値を選択し、節点７０５への割り当てを試みる（図８（ｃ）参照）。前記の（２）に従い、節点７０５の下の階層の節点７１０に属する項目値も節点７０５へ割り当てた場合、項目数の合計はＴｈを超えるので、要約処理部１４１は節点７０３への割り当てを試みる（図８（ｄ）参照）。この場合も、前記の（３）により、要約処理部１４１は最上位の階層の節点７０１へ割り当てる（図８（ｅ）参照）。
【００５９】
続いて、要約処理部１４１は出現数の最も少ない項目値として節点７０７（出現数２）に属する項目値を選択し、節点７０３への割り当てを試みる（図８（ｆ）参照）。前記の（３）により、要約処理部１４１はこの項目値を最上位の階層の節点７０１へ割り当てる（図８（ｇ）参照）。ここまでで、項目値の数は所定の４となったので、要約処理部１４１は項目の集約を終了する。集約後の各項目値とその項目数は図９の右側のようになる。要約処理部１４１は以上のような集約化に基づいて、各項目の項目値がどのような項目値に置き換わるかを置換情報として処理用領域１４２へ格納する。以上のように、重要でない項目値（出現数の少ない項目値）を同一の節点に集約することにより、要約処理部１４１はこの属性データの不純度ｆを下げる（偏在度を上げる）。
【００６０】
上述したような各属性データごとの項目集約に続いて、要約処理部１４１はログの各項目値の置き換えを行う。すなわち、要約処理部１４１は処理用領域１４２から置換情報を読み出し、置換情報に基づいて、集約によって同一の項目値となった項目の項目値を同一の値で置き換える。例えば、上記の階層構造属性の場合を挙げると、項目値「／ｕｓｒ／ｓｒｃ／ａ／」（節点７０８の項目値）および「／ｕｓｒ／ｓｒｃ／ｂ」（節点７０９の項目値）は「／ｕｓｒ／ｓｒｃ／」（節点７０４の項目値）で置き換えられる。
【００６１】
続いて、要約処理部１４１は上記の置き換えによって生じた重複行（各属性データの項目値が全て一致する行）の数を数え、その数をカウンタに保存し、一行だけを残して他の重複行を削除する。この場合、「ｃｕｒｒｅｎｔ−ｔｉｍｅ」は上記の重複行の数え上げには関与しない。すなわち、要約処理部１４１は「ｃｕｒｒｅｎｔ−ｔｉｍｅ」を除いた属性データに関して重複しているか否かの判定を行う。あるいは、要約処理部１４１は全イベントに対して「ｃｕｒｒｅｎｔ−ｔｉｍｅ」を同一の値に置き換えてから上記の重複行の数え上げを行う。
【００６２】
要約処理部１４１は設定情報を処理用領域１４２から読み出して参照し、以上の重複行の削除の結果、残ったログの行数がＭ未満であれば要約処理を終了し、Ｍ以上であれば、要約処理部１４１は不純度ｆに基づいた属性データの選択を行い、その属性データに関して上記の項目集約処理を行う。
【００６３】
なお、階層構造属性の項目集約化に関しては、ディレクトリ構造を例として説明したが、ＩＰアドレスの場合も同様である。図１０はＩＰアドレスの木構造への割り当て手法を示す概略参考図である。図で示されるように、要約処理部１４１は、ピリオドで区切られたＩＰアドレスの各数値を３２ビットの２進数へ変換する。続いて、要約処理部１４１は、各ビット間にデリミタを挿入し、デリミタで区切られた１または０を左から上位の階層に割り当てていく。例えば、「１１００」で表される２進数の場合、図１０のように、各ビットの数値が最上位の節点１１０１の下に属する節点１１０２〜１１０５に割り当てられる。以上のようにして構築された木構造に対して、要約処理部１４１は項目の集約化を行う。
【００６４】
図１１は上述したログ要約装置の動作を示すフローチャートである。ユーザによって操作部１１が操作され、ログの要約の開始が指示されると、操作部１１はユーザによる開始指示を示す信号を制御部１５へ出力する。制御部１５はこの信号に基づいて、記憶部１２からログおよび設定情報を読み出し、ログ要約部１４へ出力する。ログおよび設定情報はログ要約部１４へ入力される（ステップＳ１１０１）。続いて、ログ要約部１４中の要約処理部１４１は設定情報に基づいて、ログを集約可能な形式に変換する（ステップＳ１１０２）。
【００６５】
続いて、要約処理部１４１は設定情報中の、ログの切り出しの長さを示す行数Ｎを参照し、ログの中からＮ行の処理用データを切り出す（ステップＳ１１０３）。要約処理部１４１は不純度関数を用いて各属性データについて不純度ｆを求め、最もｆの大きな属性データを要約対象の属性データとして選択する（ステップＳ１１０４）。要約処理部１４１は選択された属性データが連続属性、離散属性、および階層構造属性のいずれに属するかを判定する（ステップＳ１１０５）。
【００６６】
選択された属性データが連続属性である場合、要約処理部１４１は［数４］で示されるｄ１が小さい区間から順番に集約を行う（ステップＳ１１０６）。また、選択された属性データが離散属性である場合、要約処理部１４１は［数５］で示されるｄ２が小さい区間から順番に集約を行う（ステップＳ１１０７）。また、選択された属性データが階層構造属性である場合、要約処理部１４１は、各項目を木構造の節点に割り当て、出現数の小さい項目値から順に集約を行う（ステップＳ１１０８）。
【００６７】
続いて、要約処理部１４１は、集約によって同一となった項目の項目値を同一の値で置き換える（ステップＳ１１０９）。要約処理部１４１は、置き換えによって生じた重複行の数を数え、その数をカウンタに保存し、一行だけを残して残りの重複行を削除する（ステップＳ１１１０）。続いて、要約処理部１４１は設定情報を処理用領域１４２から読み出して参照し、残ったログの行数がＭ未満であるかどうか判定する（ステップＳ１１１１）。残ったログの行数がＭ未満であれば処理が終了する。一方、残ったログの行数がＭ以上であれば、ステップＳ１１０４に戻る。ログの行数がＭ未満となるまで以上の処理が繰り返される。
【００６８】
なお、大きなログを要約する場合に、まずログを複数に分割し、分割後のログに対して要約を行うことを繰り返してもよい。例えば、図１２において、ログ１０００をログ２０に要約するとする。要約処理部１４１はログ１０００を所定の長さの複数のログ５００、５１０、５２０、５３０・・・に分割する。続いて、要約処理部１４１は前述した要約手法によって個々のログを要約し、ログ４００、４１０、４２０、４３０・・・を生成する。要約処理部１４１は要約した個々のログを所定数ごとに連結し、ログ３００〜３３０を生成する。続いて、要約処理部１４１は連結した個々のログを要約し、ログ２００〜２３０を生成する。要約処理部１４１はこれを再び連結してログ１００を生成し、このログを要約して所定行数未満のログ２０を生成する。
【００６９】
以上説明したように、本実施形態によれば、ＩＤＳ、ファイアウォール、ルータ、Ｗｅｂサーバ、ｆｔｐサーバ、各種ｓｙｓｌｏｇ、ｐｅｅｒ  ｔｏ  ｐｅｅｒシステム等において出力される膨大なログを所定行数未満（あるいは以下）に要約することができる。これにより、膨大なログを見易く整形し、ログ中の有益な情報をネットワークの管理者等に提示することができる。また、本実施形態によれば、出力するログの規模（行数）を指定して要約を行うことができる。これにより、ネットワークの概要を知りたい場合には出力するログの規模を小さくして要約を行い、ネットワークの詳細を知りたい場合には出力するログの規模をもう少し大きくして要約を行うなどの柔軟な要約を行うことができる。
【００７０】
また、ログとして出力される属性の中で、特にＩＰアドレス、ディレクトリ構造、ディクレトリパス、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、メールアドレス、Ｘｐａｔｈ等を木構造に割り当てることにより、有益な要約を行うことができる。階層構造の場合、各階層が意味のある情報を持っており、項目の集約先の階層は意味のある情報を持っている。例えば、「／ｈｏｍｅ／ａ／」というディレクトリ構造の場合、集約先の候補となる「／」、「／ｈｏｍｅ／」、および「／ｈｏｍｅ／ａ」のいずれもが意味のある情報である。本実施形態による階層属性の要約手法によれば、階層構造をより細かい粒度で、意味のある情報に集約することができる。通信ログにはＩＰアドレス、ＵＲＩ、Ｘｐａｔｈ等の階層構造属性を有しているものが多く、本実施形態によれば、これらの集約をより細かく行うことができる。
【００７１】
また、段階的にログの要約を繰り返し行うことにより、一度の要約で所定行数未満のログを生成するよりも処理を高速に行うことができる。さらに、この要約の結果を保存しておくことにより、新しいログが出力された場合に、新しいログだけを要約すればよい。
【００７２】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態におけるログ要約装置は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより実現してもよい。
【００７３】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７４】
また、上述したログ要約プログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上述したログ要約プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００７５】
【図１】本発明の一実施形態によるログ要約装置の構成を示すブロック図である。
【図２】本実施形態におけるログの形式を説明するための参考図である。
【図３】ｆｔｐサーバにおいて生成されるログの例を示す参考図である。
【図４】ｆｔｐサーバにおいて生成されるログの形式を示す参考図である。
【図５】ログ要約装置によるログの要約の様子を示す概略参考図である。
【図６】階層構造属性の項目値の木構造への割り当て手法を示す概略参考図である。
【図７】階層構造属性の項目集約の様子を示す概略参考図である。
【図８】階層構造属性の項目集約の様子を示す概略参考図である。
【図９】階層構造属性の項目集約を説明するための概略参考図である。
【図１０】ＩＰアドレスの木構造への割り当て手法を示す概略参考図である。
【図１１】ログ要約装置の動作を示すフローチャートである。
【図１２】大きなログを分割する場合の他の手法を説明するための概略参考図である。
【符号の説明】
【００７６】
１０・・・ログ収集部、１１・・・操作部、１２・・・記憶部、１３・・・表示部、１４・・・ログ要約部、１５・・・制御部、１４１・・・要約処理部、１４２・・・処理用領域。
【図１】
2005209115.tif 000009
【図２】
2005209115.tif 000010
【図３】
2005209115.tif 000011
【図４】
2005209115.tif 000012
【図５】
2005209115.tif 000013
【図６】
2005209115.tif 000014
【図７】
2005209115.tif 000015
【図８】
2005209115.tif 000016
【図９】
2005209115.tif 000017
【図１０】
2005209115.tif 000018
【図１１】
2005209115.tif 000019
【図１２】
2005209115.tif 000020