(57)【要約】【課題】商用環境で発生した実トラヒックを検証環境で忠実に再現することができるトラヒック再現システムを提供する。【解決手段】トラヒック再現システムは、トラヒックログをログ構造化ルールに従い構造化することにより、標準化されたフォーマットの構造化ログを生成するログサーバ３０と、構造化ログを用いてトラヒックを再生するトラヒック再生装置４０とを備える。具体的には、ログサーバ３０は、トラヒックログに含まれる全ての時間情報とパケット詳細情報を抽出して構造化ログを生成し、トラヒック再生装置４０は、パケット詳細情報に基づいてパケットデータを生成し、生成したパケットデータを時間情報に基づいて送信する。【選択図】図２
2015226074.tif 000002
【特許請求の範囲】
【請求項１】
トラヒックを再現するトラヒック再現システムであって、
トラヒックログをログ構造化ルールに従い構造化することにより、標準化されたフォーマットの構造化ログを生成するログサーバと、
前記構造化ログを用いてトラヒックを再生するトラヒック再生装置と
を備えることを特徴とするトラヒック再現システム。
【請求項２】
前記ログサーバは、前記トラヒックログに含まれる全ての時間情報とパケット詳細情報を抽出して前記構造化ログを生成し、
前記トラヒック再生装置は、前記パケット詳細情報に基づいてパケットデータを生成し、生成したパケットデータを前記時間情報に基づいて送信する
ことを特徴とする請求項１に記載のトラヒック再現システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トラヒックを再現するトラヒック再現システムに関する。
【背景技術】
【０００２】
通信事業者にとって、高品質なＩＰネットワークを提供することは重要である。そこで、ＩＰネットワークの検証のため、商用環境で発生したトラヒックを再現して検証環境に負荷することが知られている（特許文献１〜３参照）。
【０００３】
このような負荷試験では、次の２つの手法が用いられる。１つは、パケットキャプチャのバイナリファイルを用いるパケットキャプチャ手法である。もう１つは、Ａｖａｌａｎｃｈｅやｑｕｅｒｙｐｅｒｆ等、トラヒックのシナリオを作成して擬似的なトラヒックを生成するシナリオ作成手法である。シナリオとは、負荷試験機に読み込ませるファイルである。シナリオには、特定プロトコルにおいて最低限必要なペイロード情報を記述する。１行に１パケット分の情報を記述するのが通常である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７８１７６号公報
【特許文献２】特開２００２−１０１１２８号公報
【特許文献３】特開２００２−２１７９７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、パケットキャプチャ手法では、実際のトラヒックを再現することは可能であるが、キャプチャの実施がアプリケーションの性能を大きく劣化させることが多い。そのため、この手法は、トラヒック解析のために一時的に取得することはまれにあるものの、通常の運用で用いられることはほとんど無い。
【０００６】
一方、シナリオ作成手法では、通常運用で取得しているログから発生したトラヒックの一部の情報を用いて再帰的にトラヒックを再現する。すなわち、限られた情報を繰り返し用いてトラヒックを再現するため、実際のトラヒックを忠実に再現することは不可能である。
【０００７】
本発明は、上述した従来の技術に鑑み、商用環境で発生した実トラヒックを検証環境で忠実に再現することができるトラヒック再現システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、第１の態様に係る発明は、トラヒックを再現するトラヒック再現システムであって、トラヒックログをログ構造化ルールに従い構造化することにより、標準化されたフォーマットの構造化ログを生成するログサーバと、前記構造化ログを用いてトラヒックを再生するトラヒック再生装置とを備えることを要旨とする。
【０００９】
第２の態様に係る発明は、第１の態様に係る発明において、前記ログサーバが、前記トラヒックログに含まれる全ての時間情報とパケット詳細情報を抽出して前記構造化ログを生成し、前記トラヒック再生装置が、前記パケット詳細情報に基づいてパケットデータを生成し、生成したパケットデータを前記時間情報に基づいて送信することを要旨とする。
【発明の効果】
【００１０】
本発明によれば、商用環境で発生した実トラヒックを検証環境で忠実に再現することができるトラヒック再現システムを提供することが可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態におけるトラヒック再現システムの構成図である。
【図２】本発明の実施の形態におけるトラヒック再現システムの機能ブロック図である。
【図３】本発明の実施の形態におけるトラヒック再現システムのシーケンス図である。
【図４】本発明の実施の形態におけるトラヒック再現システムのフローチャートである。
【図５】本発明の実施の形態におけるログ構造化の具体例を示す図であり、（ａ）生ログ、（ｂ）ログ構造化ルール、（ｃ）構造化ログ。
【図６】本発明の実施の形態におけるトラヒック再生の具体例を示す図である。
【図７】本発明の実施の形態における忠実なトラヒック再生を説明するための図である。
【図８】本発明の実施の形態における負荷試験の具体例を説明するための図である。
【図９】従来技術と本実施の形態とを比較した図であり、（ａ）構成図、（ｂ）比較表。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、以下の実施の形態は、この発明の技術的思想を具体化するためのトラヒック再現システムを例示するものであり、装置の構成やデータの構成等は以下の実施の形態に限定されるものではない。
【００１３】
（構成例）
図１は、本発明の実施の形態におけるトラヒック再現システムの構成図である。このトラヒック再現システムは、装置ログを用いることにより、装置に発生したトラヒックを忠実に再現するシステムである。具体的には、図１に示すように、通信網（ＩＰネットワーク）１０にサーバ２０Ａ，２０Ｂ，２０Ｃ，…が接続され、サーバ２０Ａ，２０Ｂ，２０Ｃ，…にログサーバ３０が接続され、ログサーバ３０にトラヒック再生装置４０が接続されている。
【００１４】
サーバ２０Ａ，２０Ｂ，２０Ｃ，…は、通信網１０を介してクライアントと通信し、そのトラヒックログ（生ログ）を生成する。以下の説明では、サーバ２０Ａ，２０Ｂ，２０Ｃ，…を一括して「サーバ２０」という場合がある。
【００１５】
ログサーバ３０は、ログ構造化機構を実装するログ収集サーバ等である。具体的には、生ログをログ構造化ルールに従い構造化することにより、標準化されたフォーマットの構造化ログを生成する。標準化されたフォーマットとは、例えば、ＪＳＯＮ（JavaScript （登録商標）Object Notation）フォーマットである。ＪＳＯＮは、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しに使えるよう設計されている。
【００１６】
トラヒック再生装置４０は、構造化ログを読み込み、その構造化ログを用いてトラヒックを再生し、検証対象の装置にトラヒックを負荷する負荷試験機等である。通常、生ログはサーバ２０固有の形式であるため、トラヒック再生装置４０に読み込ませることができない。本発明の実施の形態では、仕様化されたログ構造化機構を用いるようにしているため、ＪＳＯＮフォーマット等の構造化ログをトラヒック再生装置４０に読み込ませることが可能である。
【００１７】
図２は、本発明の実施の形態におけるトラヒック再現システムの機能ブロック図である。以下、図２を用いて、ログサーバ３０及びトラヒック再生装置４０の構成を詳細に説明する。
【００１８】
ログサーバ３０は、ログ構造化ルール記憶部３１と、ログ構造化部３２とを備える。ログ構造化ルール記憶部３１は、ログ構造化ルールをあらかじめ記憶する記憶装置である。ログ構造化ルールは、生ログを構造化する際のルールを定めたファイルである。ログ構造化部３２は、サーバ２０から収集した生ログをログ構造化ルールに基づいて構造化し、このように構造化した構造化ログをトラヒック再生装置４０に送信する。
【００１９】
トラヒック再生装置４０は、構造化ログを解析するログ解析部４１と、ログ解析部４１の解析結果に基づいてトラヒックを再生するトラヒック再生部４２とを備える。この図に示すように、ログ解析部４１には、構造化ログ読み込み部４３と、プロトコルデータ記憶部４４と、プロトコル解析部４５とが含まれる。構造化ログ読み込み部４３は、ログサーバ３０からの構造化ログを読み込み、プロトコル解析部４５に渡す。プロトコルデータ記憶部４４は、プロトコルデータをあらかじめ記憶する記憶装置である。プロトコル解析部４５は、プロトコルデータ記憶部４４に記憶されているプロトコルデータに基づいてプロトコルを解析する。一方、トラヒック再生部４２には、時系列情報生成部４６と、プロトコルデータ読み込み部４７と、パケットデータ生成部４８とが含まれる。時系列情報生成部４６は、構造化ログに基づいて時系列情報を生成する。例えば、１パケット分のデータ（時間情報）を読み込み、その時間情報を送信時間として保存する。プロトコルデータ読み込み部４７は、プロトコル解析部４５の解析結果に基づいてプロトコルデータを読み込む。パケットデータ生成部４８は、構造化ログやプロトコルデータを用いてパケットデータを生成し、保存した送信時間に送信するパケットデータを全て送信する。全てのパケットデータを送信するまで同様の動作を繰り返す。これにより、検証装置５０にトラヒックが負荷される。
【００２０】
（動作例）
図３は、本発明の実施の形態におけるトラヒック再現システムのシーケンス図である。まず、通信網１０からサーバ２０にトラヒックが発生すると、サーバ２０において生ログが生成される（Ｓ１→Ｓ２）。次いで、サーバ２０からログサーバ３０に生ログが転送されると、ログサーバ３０においてログ構造化ルールが読み込まれ、ログ構造化が行われる（Ｓ３→Ｓ４→Ｓ５）。次いで、ログサーバ３０からトラヒック再生装置４０に構造化ログが転送されると、トラヒック再生装置４０において構造化ログが読み込まれ、時系列情報が生成され、プロトコルデータが読み込まれ、パケットデータが生成される（Ｓ６→Ｓ７→Ｓ８→Ｓ９→Ｓ１０）。最後に、トラヒック再生装置４０から検証網５１にパケットデータが送信され、トラヒックが再生される（Ｓ１１）。
【００２１】
図４は、本発明の実施の形態におけるトラヒック再現システムのフローチャートである。まず、ログサーバ３０において生ログが読み込まれ、ログ構造化ルールが読み込まれ、ログ構造化が行われる（Ｓ２１→Ｓ２２→Ｓ２３）。次いで、トラヒック再生装置４０において構造化ログが読み込まれ、１パケット分のデータ（時間情報）が読み込まれ、その時間情報が送信時間として保存される（Ｓ２４→Ｓ２５→Ｓ２６）。次いで、プロトコルデータが読み込まれ、パケットデータが生成され、保存された送信時間に示されるタイミングでパケットが送信される（Ｓ２７→Ｓ２８→Ｓ２９）。ここで、未送信パケットがない場合（Ｓ３０：ＮＯ）は終了し、未送信パケットがある場合（Ｓ３０：ＹＥＳ）は次のパケットが同時間内に送信するパケットかどうか判定される（Ｓ３１）。そして、次のパケットが同時間内に送信するパケットでない場合（Ｓ３１：ＮＯ）はステップＳ２５に戻り、次のパケットが同時間内に送信するパケットである場合（Ｓ３１：ＹＥＳ）はステップＳ２７に戻る。
【００２２】
（ログ構造化の具体例）
図５は、本発明の実施の形態におけるログ構造化の具体例を示す図であり、図５（ａ）は生ログ１、図５（ｂ）はログ構造化ルール２、図５（ｃ）は構造化ログ３を示している。図５（ａ）に示すように、生ログ１では、各サーバ２０のログフォーマットに従い、スペースやコンマ等により数値が並べられている。ここでは、１行に１パケット分のデータが記述されている場合を例示している。また、図５（ｂ）に示すように、ログ構造化ルール２では、正規表現を用いて生ログ１から構造化ログ３を生成する際のルールを表現している。更に、図５（ｃ）に示すように、構造化ログ３では、ログ構造化ルール２に従い、ログ中の各値の意味をＪＳＯＮフォーマットで表現している。ここでは、ｔｉｍｅ，ｃｌｉｅｎｔ＿ｉｐ，ｃｌｉｅｎｔ＿ｐｏｒｔ，ＴＹＰＥ等の属性名を例示しているが、これらの属性名は一例であることは言うまでもない。これにより、トラヒック再生装置４０側でソフトウェアによって各サーバ２０のトラヒックログを解釈することが可能となる。
【００２３】
（トラヒック再生の具体例）
図６は、本発明の実施の形態におけるトラヒック再生の具体例を示す図である。この図に示すように、トラヒック再生装置４０は、構造化ログ３とＤＮＳデータを読み込み、これらに基づいて時系列情報４とパケットデータ１，２，３，…を生成する。
【００２４】
以下、パケットデータ１の生成方法について説明する。図６に示すように、パケットデータ１は、ＩＰ，ＵＤＰ，ＤＮＳのプロトコル別に構成されている。「ＩＰ」プロトコルの「Ｖｅｒｓｉｏｎ」フィールドには、構造化ログ３のｃｌｉｅｎｔ＿ｉｐに基づいて「４（ＩＰｖ４）」が格納される。「ＩＰ」プロトコルの「送信元ＩＰ」フィールドには、構造化ログ３のｃｌｉｅｎｔ＿ｉｐに基づいて「６６．１２８．５０．６７」が格納される。「ＵＤＰ」プロトコルの「送信元ポート」フィールドには、構造化ログ３のｃｌｉｅｎｔ＿ｐｏｒｔに基づいて「６２８２８」が格納される。「ＤＮＳ」プロトコルの「ＱＮＡＭＥ」フィールドには、構造化ログ３のｄｏｍａｉｎに基づいて「ｗｗｗ．ｅｘ．ｉｎｆｏ」が格納される。「ＤＮＳ」プロトコルの「ＱＴＹＰＥ」フィールドには、構造化ログ３のＴＹＰＥに基づいて「Ａ」が格納される。なお、その他のフィールドには、自動で読み込まれたプロトコルデータ（図３のＳ９参照）や、本システムのツール使用時にユーザが指定したデータが格納される。
【００２５】
図７は、忠実なトラヒック再生を説明するための図である。トラヒックを忠実に再現するためには、（１）発生した時系列に従ってトラヒックを生成すること、（２）機械的に同じパケットを送信するのではなく、発生した多様なパケットを再現すること、の２つの条件が必要である。本発明の実施の形態によれば、図７に示すように、「０８：５１：３９」や「０８：５１：４０」等の時系列情報ｆ１に従ってトラヒックを生成することができ、また、パケットデータ１〜６等の多様なパケットｆ２を再現することができる。そのため、商用環境で発生した実トラヒックを検証環境で忠実に再現することが可能である。
【００２６】
（負荷試験の具体例）
図８は、本発明の実施の形態における負荷試験の具体例を説明するための図である。この図に示すように、商用環境には、クライアント６１と、サーバ２０Ａ，２０Ｂと、ログ基盤６２とが含まれる。また、検証環境には、ログ基盤６３と、負荷試験機６４と、サーバ２０Ａ，２０Ｂとが含まれる。ログ基盤６２及び６３はログサーバ３０に相当し、負荷試験機６４はトラヒック再生装置４０に相当する。
【００２７】
具体的には、ログ基盤６２は、クライアント６１とサーバ２０Ａ，２０Ｂ間の商用ログを汎用的な形式に構造化してログ基盤６３に転送する。ログ基盤６３は、ログ基盤６２からの構造化ログを負荷試験機６４に読み込ませる。負荷試験機６４は、構造化ログに基づいてサーバ２０Ａ，２０Ｂにトラヒックを負荷する。これにより、トラブル発生時等において、商用環境で発生した実トラヒックを検証環境で忠実に再現することが可能である。
【００２８】
（従来技術と本実施の形態との比較）
図９は、従来技術と本実施の形態とを比較した図である。ここでは、従来技術としてシナリオ作成手法を例示している。図９（ａ）に示すように、サーバ２０Ａがクライアント６１Ａ，６１Ｂから収集した生ログには、時間情報とパケット詳細情報が含まれる。パケット詳細情報とは、送信元ＩＰアドレスやポート番号等である。従来技術によれば、シナリオ１０１に記述する際に時間情報とパケット詳細情報が削ぎ落とされる。すなわち、シナリオ１０１は、パケットのペイロード部に関する情報を一部記述するものであり、それらを基に負荷試験機１０２が同じトラヒックを送信し続ける。このように、従来は、記述したパケットを性能の限り送信し続ける動作しか行わないため、時間情報とパケット詳細情報は再現することができない。そこで、本実施の形態では、時間情報とパケット詳細情報が含まれる構造化ログを用いて、時系列に従ってトラヒックを詳細に再現するようになっている。
【００２９】
従来技術と本実施の形態との比較結果をまとめると、図９（ｂ）のようになる。すなわち、従来技術によれば、（１）時系列情報がないため、発生トラヒックに関係なく送信し続ける他ない、（２）送信元ＩＰアドレスやポート番号等、全ての詳細なデータの記述は難しい、（３）特定プロトコルの生成にしか対応できない等の問題がある。それに対して、本実施の形態によれば、（１）トラヒックログから全てのクエリの時系列情報を抽出し、トラヒックデータを生成するため、忠実な時系列で再現が可能である。また、（２）トラヒックログを用いるため、送信元ＩＰアドレスやポート番号等、全ての詳細なデータの記述が可能である。更に、（３）標準化された構造化手法を用いるため、様々なプロトコルに対応可能である。
【００３０】
以上のように、本発明の実施の形態におけるトラヒック再現システムは、トラヒックを再現するシステムであって、トラヒックログをログ構造化ルールに従い構造化することにより、標準化されたフォーマットの構造化ログを生成するログサーバ３０と、構造化ログを用いてトラヒックを再生するトラヒック再生装置４０とを備える。これにより、商用環境で発生した実トラヒックを検証環境で忠実に再現することができるため、商用同様のトラヒックを用いた検証が可能になり、検証の品質を大きく向上させることが可能になる。また、ＪＳＯＮフォーマット等の標準化仕様フォーマットを利用しているため、様々なプロトコルの再現が可能であり、拡張性に優れているという効果もある。
【００３１】
具体的には、ログサーバ３０は、トラヒックログに含まれる全ての時間情報とパケット詳細情報を抽出して構造化ログを生成し、トラヒック再生装置４０は、パケット詳細情報に基づいてパケットデータを生成し、生成したパケットデータを時間情報に基づいて送信する。これにより、時系列情報、送信元ＩＰアドレス、ポート番号等、商用環境で発生した全ての実トラヒックを低コストで保存し、全てのパケットを忠実に再現することができる。
【００３２】
なお、サーバ２０Ａ，２０Ｂ，２０Ｃ，…によって生ログのフォーマットが異なる場合は、それぞれの生ログに対応する複数のログ構造化ルールをログ構造化ルール記憶部３１に記憶しておく。これにより、それぞれの生ログに対応する複数のログ構造化ルールを用いて同一フォーマットの構造化ログを生成することが可能である。
【００３３】
また、本発明は、トラヒック再現システムとして実現することができるだけでなく、このトラヒック再現システムに用いられるログサーバ３０又はトラヒック再生装置４０として実現することもできる。もちろん、ログサーバ３０又はトラヒック再生装置４０が備える特徴的な処理部をステップとするトラヒック再現方法として実現したり、それらのステップをコンピュータに実行させるトラヒック再現プログラムとして実現したりすることも可能である。このようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【符号の説明】
【００３４】
１…トラヒックログ（生ログ）
２…ログ構造化ルール
３…構造化ログ
３０…ログサーバ
３１…ログ構造化ルール記憶部
３２…ログ構造化部
４０…トラヒック再生装置
４１…ログ解析部
４２…トラヒック再生部
４３…構造化ログ読み込み部
４４…プロトコルデータ記憶部
４５…プロトコル解析部
４６…時系列情報生成部
４７…プロトコルデータ読み込み部
４８…パケットデータ生成部
【図１】
2015226074.tif 000003
【図２】
2015226074.tif 000004
【図３】
2015226074.tif 000005
【図４】
2015226074.tif 000006
【図５】
2015226074.tif 000007
【図６】
2015226074.tif 000008
【図７】
2015226074.tif 000009
【図８】
2015226074.tif 000010
【図９】
2015226074.tif 000011