(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数の通信機器から出力されるログをログサーバに集めて一元管理することはできるが、通信機器それぞれが出力するログは、通信機器それぞれの形式で出力されている。また、各通信機器の時間がずれている場合は、ずれた時間を記載したログが生成されるので、各通信機器間のログを見比べて解析する場合、各通信機器の時間のずれを考慮しつつログを解析する必要があり、ログの解析を困難にするものであった。
【0005】
本発明は、上記に鑑みてなされたものであり、複数の通信機器に関するログを解析し易くすることを目的とする。
【課題を解決するための手段】
【0006】
本発明に係るログ生成装置は、複数の通信機器が送受信するパケットをキャプチャしたパケットデータを記載したキャプチャファイルからログを生成するログ生成装置であって、キャプチャファイルを入力する入力手段と、パケットデータに基づくイベントとログの雛形となる文字列とを関連付けて蓄積した蓄積手段と、前記キャプチャファイルからパケットデータを取得し、当該パケットデータに基づくイベントをキーにして前記蓄積手段から対応する前記文字列を読み出してログを生成する生成手段と、前記ログを出力する出力手段と、
を有し、前記生成手段は、取得した前記パケットデータに対して応答される返信パケットデータが存在すると推定されるときに、前記キャプチャファイルに前記返信パケットデータが存在しない場合は、その旨のログを生成することを特徴とする。
【発明の効果】
【0008】
本発明によれば、複数の通信機器に関するログを解析し易くすることができる。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について図面を用いて説明する。
【0011】
図1は、本実施の形態におけるログ生成装置の構成を示す機能ブロック図である。同図に示すログ生成装置は、ユーザ宅内の複数の通信機器が送受信するパケットを複数の通信機器の上流(例えば、ユーザ宅のローカルネットワークを外部のネットワークに接続するルータのユーザ宅側)でキャプチャしたパケットデータを記載したキャプチャファイルをキャプチャファイル蓄積部2から読み出し、パケットデータからログを生成する装置である。キャプチャファイル蓄積部2には、数カ月分のキャプチャデータが記載されたキャプチャファイルが蓄積される。キャプチャデータを記載したキャプチャファイルは、キャプチャファイルのサイズやキャプチャの期間に応じて複数に分割されてキャプチャファイル蓄積部2に蓄積される。キャプチャファイルには、キャプチャしたパケットデータがキャプチャ時刻とともに時系列順に記載される。また、キャプチャファイル内で一番最初のキャプチャデータのキャプチャ時刻を開始時刻、一番最後のキャプチャデータのキャプチャ時刻を終了時刻としたヘッダーを備える。
【0012】
図1に示すログ生成装置は、入力部11、ファイル操作部12、ログ生成部13、ログ文字列蓄積部14、および出力部15を備える。ログ生成装置が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはログ生成装置が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0013】
入力部11は、キャプチャファイルが蓄積されている格納場所の指定、生成するログに関する設定、およびログをファイルに書き出す場合の出力先を入力する。
【0014】
キャプチャファイルが蓄積されている格納場所の指定は、例えば、キャプチャファイル蓄積部2がキャプチャファイルを蓄積しているフォルダを指定する。指定されたフォルダに存在するキャプチャファイル全てが処理対象となる。あるいは、キャプチャファイルを複数選択して処理対象のキャプチャファイルを指定してもよい。
【0015】
ファイル操作部12は、入力部11が入力したキャプチャファイルの格納場所からキャプチャファイルを時系列順に取得してキャプチャデータ解析装置が備えるメモリ上に読み込む。指定された格納場所に存在する全てのキャプチャファイルをメモリ上に一度に全部読み込むことはできないので、メモリ上に読み込んだキャプチャファイルをログ生成部13が処理した後は、メモリ上のデータを破棄して次のキャプチャファイルを読み込む。キャプチャファイルの時系列順は、キャプチャファイルの先頭に記述されたヘッダーの開始時刻、終了時刻を参照して判定する。あるいは、キャプチャファイルのファイル名が規則的に付けられる場合、例えばファイル名に通し番号が付与される場合、ファイル名に作成された日時を含む場合など、そのファイル名によりキャプチャファイルの時系列順を判定してもよい。キャプチャファイルの時系列順は、例えばキャプチャファイルのファイル名を時系列順に並べてファイル操作部12が保持しておくとよい。
【0016】
ログ生成部13は、ファイル操作部12が読み込んだキャプチャファイルからパケットデータを順次取得して、パケットデータからパケットの種別、イベント、パラメータなどを抽出し、パケットの種別、イベントをキーにして出力する文字列をログ文字列蓄積部14から検索し、検索した文字列にパラメータを付与してログを生成する。パケットの種別としては、トランスポート層以下のPPP、ARP、TCP、UDPに加えて、アプリケーション層のDNS、SIP、ICMPv6、DHCPも区別する。イベントは、パケットデータ中のフラグやメッセージなどから判断する。イベントとしては、例えばPPP接続開始、ARP Request、SIPのINVITEメッセージなどがある。パラメータとしては、例えばIPアドレス、セッションID、SIPのCall−IDなどがある。
【0017】
また、ログ生成部13は、パケットデータから直接生成できるログだけでなく、間接的に生成できるログも生成する。例えば、TCPのSYNパケットに対してはSYN/ACKパケットが返送されるが、SYNパケットを送信してから所定の時間以内に対応するSYN/ACKパケットを受信していない場合、つまりSYN/ACKパケットのパケットデータがキャプチャファイル中のSYNパケットのキャプチャ時刻から所定の時間までの間に記載されていない場合、その旨を示すログを生成する。
【0018】
ログ文字列蓄積部14は、ログ生成部13が出力するログの雛形となる文字列、パケットの種別、イベント、および重要度を関連付けて蓄積する。重要度は、関連付けられた文字列が単なる情報の提供なのか警告であるのかを示す値である。
【0019】
出力部15は、ログ生成部13が生成したログを出力する。出力方法としては、ログ生成装置に接続されたディスプレイに表示する方法や、入力部11で入力した出力先のファイルに書き出す方法がある。なお、出力するログの種類については入力部11を用いて設定できる。例えば、入力部11でログを出力するパケットの種別を選択するチェックボックスを表示し、出力部15は、チェックされたパケットの種別についてのみログを出力する。あるいは、重要度を選択したり、特定のサービスに関連するログを選択できるようにする。
【0020】
次に、本実施の形態におけるログ生成装置の動作について説明する。
【0021】
図2は、本実施の形態におけるログ生成装置の処理の流れを示すフローチャートである。
【0022】
まず、入力部11がキャプチャファイルの格納場所を入力する(ステップS11)。このとき、ログ生成の対象期間を示す抜き出し期間やオフセット時間を入力してもよい。抜き出し期間が指定された場合は、キャプチャファイルすべてからログを生成するのではなく、抜き出し期間内にキャプチャされたパケットデータからログを生成する。オフセット時間が指定された場合は、キャプチャファイルに記録されたパケットのキャプチャ時刻をオフセット時間で補正する。
【0023】
続いて、ファイル操作部12がキャプチャファイルを時系列順に取得してメモリ上に読み込む(ステップS12)。
【0024】
そして、ログ生成部13が読み込まれたキャプチャファイルに記載されたパケットデータを取得してログを生成する(ステップS13)。ログ生成処理の詳細については後述する。
【0025】
読み込んだキャプチャファイルの処理が終了すると、処理対象となるキャプチャファイルを全て処理したか否か判定し(ステップS14)、まだ処理していないキャプチャファイルが存在する場合は(ステップS14のNo)、ステップS12に戻り次のキャプチャファイルを読み込む。このときメモリ上に読み込まれているキャプチャファイルは処理し終えているので破棄する。
【0026】
処理対象となるキャプチャファイルを全て処理した場合は(ステップS14のYes)、ログ生成部13が生成したログを出力部15が出力する(ステップS15)。
【0027】
次に、ログ生成部13によるログ生成処理について説明する。
【0028】
ログ生成部13は、ファイル操作部12が読み込んだキャプチャファイルからパケットデータを取得し、パケットの種別を判定する。
【0029】
また、ログ生成部13は、パケットデータ中のフラグやメッセージを取得してイベントを判定する。例えば、パケットの種別がTCPでSYNフラグがセットされている場合は、SYNパケットを送信するイベントであると判定する。別の例としては、パケットの種別がSIPでINVITEメッセージであればINVITEのイベントであると判定する。
【0030】
そして、パケットの種別とイベントの組みをキーにログ文字列蓄積部14を検索して文字列を取得する。
【0031】
図3に、ログ文字列蓄積部14に蓄積されたデータの例を示す。同図に示すように、ログ文字列蓄積部14には、パケットの種別、イベント、重要度、および文字列が関連付けられて格納されている。重要度は、イベントの重要度を示しており、本実施の形態では、単なる通知を示すINFOあるいは警告を示すWARNを記載する。文字列には、パケットデータから取得するパラメータを付与する部分を有するものもある。例えば、
図3のARP Requestのイベントに対応する文字列には、尋ねるIPアドレスを付与する部分(xxx.xxx.xxx.xxx)が存在する。ログ生成時には、この部分にパケットデータから取得したIPアドレスが付与される。
【0032】
ログ生成部13は、必要ならばパラメータを文字列に付与し、キャプチャ時刻、パケットの種別、および文字列で構成されたログを出力部15へ渡す。
図4に、出力部15によるログの出力例を示す。同図に示す出力例は、キャプチャ時刻、パケットの種別、文字列を表示している。ログの各行には、キャプチャファイル中の該当パケットデータへのリンクを張っておき、そのリンクを選択することで、対応するパケットデータの閲覧が可能となる。
【0033】
なお、応答の返信があると推定されるパケットデータについてはタイマを設定し、キャプチャ時刻にタイマを加えた時刻内に、対応する返信パケットデータがキャプチャファイルに存在しない場合は、応答無しのイベントをログ文字列蓄積部14から検索してログを生成する。このとき、ログとして出力する時刻はキャプチャ時刻にタイマを加えた値とし、文字列に付与するパラメータは元となるパケットデータから取得する。タイマの値は利用者が任意に設定できる。
【0034】
以上説明したように、本実施の形態によれば、複数の通信機器が送受信するパケットをキャプチャしたキャプチャデータを記載したキャプチャファイルからキャプチャデータを取得してパケットの種別とイベントを判別し、ログ文字列蓄積部14から対応する文字列を検索してログを生成することにより、複数の通信機器に関するログを所望の形式で一括して生成することができる。また、パケットのキャプチャ時刻を用いてログを生成するので、各通信機器の時刻がずれていた場合でもログの並び順が前後することがない。さらに、通信機器が保持するログが消去されていた場合でも、キャプチャファイル蓄積部2にパケットデータが存在すればログが生成できる。