こんにちは、アーキテクトのやまぱんです。
補足コメントや質問、いいね、拡散、是非お願いします🥺!
間違ってたら優しく教えてください!
今回は VNet フローログ を構成してトラフィックアナリティクス(トラフィック分析)を用いて可視化してみました。
VNet フローログ とは
VNet フローログは、Azure Network Watcher の機能の一つで、仮想ネットワークを通過する IP トラフィックの情報をログに記録するためのものです。これにより、ネットワークの監視、管理、最適化が可能になります。フローデータはストレージ アカウントに送信されます。
NSG フローログ と VNet フローログ
VNet フローログは NSG フローログの後継の機能です。NSG フローログは 2027 年 9 月 30 日に引退が表明されています。基本的はとれる情報に変わりはないです(むしろ増えている)が、VNet フローログでは VNet 単位で有効にすることができます。フローログの単位は VNet/Subnet/NIC で選べます。
- むしろ増えている

ref : フロー ログのサポート範囲の概要
https://learn.microsoft.com/ja-jp/azure/network-watcher/vnet-flow-logs-overview#supported-scenarios - その他の違いについてはこちら
https://learn.microsoft.com/ja-jp/azure/network-watcher/vnet-flow-logs-overview#virtual-network-flow-logs-compared-to-network-security-group-flow-logs
また、今回は試していませんが、NSG フローログ から VNet フローログへの移行はガイド付きエクスペリエンスが提供されています。

そもそもフローとは
ネットワークにおける「フロー」とは、特定の時間内にネットワークを通過する一連のパケットのことを指します。
具体的には、1.送信元 IP アドレス、2.送信先 IP アドレス、3.送信元ポート、4.送信先ポート、5.プロトコルなどの情報を持つ一連のパケットの流れです。
フローログは、これらのフローに関する情報を記録するもので、ネットワークの状態、接続元、接続先、インターネットに対して開いているポート、予想されるネットワーク動作、異常なネットワーク動作、トラフィックの急増などを把握するために使用されます。各ログ レコードには、フローが適用されるネットワーク インターフェイス、5 タプル情報、トラフィックの方向、フローの状態、暗号化状態、およびスループット情報が含まれています。
VNet フローログを構成する
(前提) リソースプロバイダーの登録
Subscription → リソースプロバイダー から microsoft.insights を登録されていなければ、登録します。

VNet フローログの構成
- Azure Portal → Network Watcher
- フローログ から有効化
- フローログ 設定画面 で 仮想ネットワークを選ぶ
これが VNet フローログ 、なお今回はターゲットリソースとして VNet (仮想ネットワーク) を選択していますが、環境によってはログが大量になるため要件に合わせ適切なスコープ (仮想ネットワーク/サブネットピアリングも/NIC) を選ぶのがよいと思います。
- ストレージ アカウントとリテンション期間
ストレージ アカウントは 対象 Vnet を同じリージョン、同じ Microsoft Entra ID テナント配下にある Subscription にある必要がある。
リテンション期間は最大 365 日まで入力可能、0を入力すると無期限保存になるので注意
なお、フローログ名 (今回の例ではVnet-B-rg-vfl-flowlog) はデフォルトで入るが、変更することも可能。
- 分析:トラフィックアナリティクス
フローログ構成時に有効にすることも可能。今回は一旦構成しない。(後ほど構成する)
- 最終確認画面
今回は以下のようにして構成する
- 作成された VNet フローログ
- ストレージ アカウント → コンテナー
以下のようなコンテナー (今回の例ではinsights-logs-flowlogflowevent) が作成されている
VNet フローログの確認 (json)
VS Code で 確認してみる。一部抜粋画面ショットです。(成形済)

たとえば以下のエントリ
"1743076234521,10.11.1.4,13.107.21.239,52673,443,6,O,B,NX,0,0,0,0",
このエントリは、送信元 IP アドレス 10.11.1.4 から宛先 IP アドレス 13.107.21.239 への TCP プロトコルを使用した HTTPS トラフィック (ポート 443) のフローを示しています。このフローはアウトバウンドで、開始状態にあり、パケット数やバイト数が 0 であることから、まだデータの交換が行われていないことを示しています。
"1743076235216,10.11.1.4,23.208.236.42,52668,80,6,O,E,NX,5,516,3,1019",
このエントリは、送信元 IP アドレス 10.11.1.4 から宛先 IP アドレス 23.208.236.42 への TCP プロトコルを使用した HTTP トラフィック (ポート 80) のフローを示しています。このフローはアウトバウンドで、確立された接続状態にあり、パケット数 5、バイト数 516、持続時間 3 秒 (1019 ミリ秒) です。
"1743076235216,10.11.1.4,23.37.92.142,52663,443,6,O,E,NX,47,3508,204,272036",
このエントリは、送信元 IP アドレス 10.11.1.4 から宛先 IP アドレス 23.37.92.142 への TCP プロトコルを使用した HTTPS トラフィック (ポート 443) のフローを示しています。このフローはアウトバウンドで、確立された接続状態にあり、パケット数 47、バイト数 3508、持続時間 204 秒 (272036 ミリ秒)
はい、とても見やすいですね! と思える方は可視化は不要かもしれません。
が、ほとんどの方は見にくいと思うので可視化するのがよいと思います。
VNet フローログの可視化
json を生で見るなんてとってもしんどいので、可視化します。
リアルタイム分析もできませんしね。
方法はいくつかありますが、今回はTraffic Analytics (トラフィック分析)を利用します。
なお、トラフィック分析 には Log Analytics Workspace が必要です。
というのもいかのようn裏側では Log Analytics Workspace / KQL が用いられています。

Traffic Analytics (トラフィック分析) とは
Traffic Analytics は、クラウド ネットワーク内のユーザーとアプリケーションのアクティビティを可視化するクラウドベースのソリューションです。 特にトラフィック分析では、Azure Network Watcher のフロー ログを分析して、Azure クラウドでのトラフィック フローに関する分析情報を提供します。
以下のようなことがわかります、構成も簡単で非常に便利。
- 誰がネットワークに接続しているか?
- どこから接続しているか?
- どのポートがインターネットからアクセスできるか?
- 予想されるネットワーク動作はどのようなものか?
- 不規則なネットワーク動作があるか?
- トラフィックの急激な増加はあるか?
トラフィック分析 の構成
Log Analytics Workspace での確認
以下のようなテーブルができていたことが確認できました。
今回は実施していませんが、Log Analytics Workspace に格納できるので、クエリ処理によって独自のグラフや表を作ったり、アラートを設定することも可能です。
NTAIpDetails
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/ntaipdetails
IP アドレス: 公開 IP の情報
DNS ドメイン: 悪意のある IP の場合、その IP に関連するドメイン名
脅威の種類と説明: Microsoft のセキュリティインテリジェンスソリューションによって特定された脅威の種類と説明
地理的位置: 公開 IP の地理的位置情報
その他の属性: データの生成時間、ログのサイズ、ソースシステムなど
例) NTAIpDetails :Threat Type や Public IP アドレスの情報などが見えることがわかります

NTANetAnalytics
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/ntanetanalytics
ネットワークトラフィック分析( NTA )に関する詳細な分析結果を提供する Azure Monitor Logs のテーブルです。このテーブルには、ネットワークセキュリティグループ( NSG )やセキュリティ管理構成に関連するアクセス制御リスト( ACL )ルール、許可されたインバウンドおよびアウトバウンドフローの数、接続名、接続タイプ、国コード、送信元および送信先の IP アドレス、ポート番号などの情報が含まれます。
NTAInsights
https://learn.microsoft.com/ja-jp/azure/azure-monitor/reference/tables/ntainsights
アドレスプレフィックス: 発見されたリソースに関連するアドレスプレフィックス
ネットワークセキュリティグループのルール: 許可/拒否のアクセス情報
バックエンド IP アドレスとポート: インバウンド NAT ルールに関連するバックエンド IP アドレスとポート
接続ステータス: ゲートウェイ接続のステータス
暗号化の有効化: 仮想ネットワークの暗号化の有効化状態
例)こちらは私の環境では取れなかったのでなしです。今後取れたら追加します。
トラフィック分析 での確認
非常に分析しやすくインサイトをだしてくれるよいインターフェースになっています。
このポストで一番伝えたいのがこのあたりになります。
参考に画面ショットをいくつか張っておきたいと思います。
シンプルな Web サーバを IIS でたてて、インバウンド 80 番を開けてるだけのサーバーなので通信料が少なく恐縮ですが。

*私の環境には VNetGW(VPN/ER) や LB や AppGW がないので表示されていませんが参考までに。
まとめ
VNet フローログを使って、Azure Network Watcher で仮想ネットワークの IP トラフィックを記録し、トラフィックアナリティクスで可視化してみました!これにより、ネットワークの異常や急増するトラフィックが簡単に把握できます。実際に、海外からのアクセス(特にオランダやロシア)も確認できて、予想以上の動きがありました!簡単に構成できるトラフィック分析でこれだけ可視化できるのは便利ですね!
参考
こちら先輩の記事です。VNet フローログそのものについて詳しく書かれています!✨










