2014/10/16

Windows 標準機能だけでパケット キャプチャし、Microsoft Message Analyzerでログを解析してみた

MS_Message_Analyzer
2年前に『MS謹製のパケットキャプチャ「Microsoft Network Monitor 3.4」を試してみた』という記事を投稿しました。
今回は、Windows 標準コマンド「netsh」を使って通信をトレースし、Microsoft Message Analyzerでログを解析するまでの手順をメモ。
通信ログを取得する際、特定のアプリケーションをインストールする必要がないのはいいですね。
2014.10.16 netsh trace コンテキストが組み込まれたOSのバージョンと関連記事を追記しました。

サーバーで通信ログが取りたい!

サーバー/クライアント間の通信ログを取得したい時があり、ポートミラーリング機能付きL2スイッチを購入しました。
パケットキャプチャ用PCをL2スイッチに接続する事でL2スイッチに流れる全パケットを取得できるので非常に便利です。
しかし、もっと簡単にEnd-to-Endの通信ログを取得したい!と思い調べてみたところ、Netsh コマンドでトレースログが取れる事を分かりました。
Windows 標準のコマンドですから、手軽にトレース ログが取得できるので便利ですね。

netsh trace コマンドの負荷は?

サーバー上で処理を行う際、どの程度の負荷がかかるのかを確認してみました。
※あまり負荷がかかるなら稼働中のサーバーでは使用できませんから
クライアント(Windows 7 Professional SP1 64bit)からファイル サーバー(Windows Server 2008 R2 Standard)に対し、272MBのファイルを無線LANを使ってアップロードしてみました。
結果、上記環境ではほぼ負荷がかかりませんでした。
※環境によっては負荷がかかるかもしれません。使用上の注意は必要かなと思っています。
2014-10-15_164458
2014-10-15_164341

通信をトレースし、解析してみる

実際にnetsh コマンドを使って通信ログを採取し、ログをMicrosoft Message Analyzerで解析します。
1.netsh コマンドで通信をトレースする
  1. コマンド プロンプトを起動
  2. トレースを開始
    >netsh trace start capture=yes
    image
  3. トレースを停止
    >netsh trace stop
    image
2.Microsoft Message Analyzerのインストール
  1. Message Analyzerをダウンロード
    http://www.microsoft.com/en-us/download/details.aspx?id=44226
  2. インストール
3.トレース ログを表示・解析する
  1. Message Analyzerを起動
  2. [File]→[Quick Open]をクリックし、トレース ログを開く
    image

使ってみた感想

Microsoft Message AnalyzerのインターフェースはリボンUI、Office 2013をお使いの方なら違和感なく使えるはずです。
(使いきれてはいませんが)WireShark(旧Ethereal)とMicrosoft Network Monitorを長年使っていたので何となくではありますが操作、解析が出来ました。
私が使う分には必要十分ですが、問題は動作が異常に重たい点。
2014-10-15_161347
タスク マネージャーを確認すると、メモリは約1GBを使用していたため、HWスペックを選ぶかもしれません。
2014-10-15_152528
Microsoft謹製のアプリケーションのみで解析できるのでパケット キャプチャ ツールの一候補に挙げても良いかもしれませんね。

Microsoft Message Analyzerのダウンロード

現在のバージョンはv1.1、2014年9月16日にリリースされています。
Microsoft Message Analyzer
後筆:netsh trace コンテキストはWindows 7からの機能
ブログをポストした後、「いつからトレースできるのか?」調べてみたところ、Windows 7から組み込まれたんですね。
詳しくはThe Cable Guyの記事をご覧ください。
The Cable Guy: Windows 7 のネットワーク診断とトレース
スポンサーリンク

スポンサーリンク