【Azure/Network Watcher】NSGフローログの使い方(ネットワークトラフィックを分析する)

こんにちは、Aireです。

今回はAzure Network Watcherに含まれるNSGフローログの使い方を紹介します。

NSGフローログを使用することで、NSGを通過するフローがログとしてAzureリソースに記録され、ログを可視化・分析することができます。

目次

前提条件

NSGフローログを作成する上で必要なリソースを記載します。

  1. NSG:NSGフローログでは、指定したNSGを通過するネットワークトラフィックをログとして記録します。
  2. Insightsプロバイダ:NSGフローログを記録するためには、サブスクリプションにMicrosoft.insightsが登録されている必要があります。(デフォルトの設定はRegistered(登録済み)ですが、もしNSGフローログの記録が行われない場合は、対象のサブスクリプションに移動し、[設定]-[リソースプロバイダー]で本設定を確認してください)
  3. Network Watcherリソースグループ:作成したNSGフローログは、本リソースグループに割り当てられます。
  4. ストレージアカウント:NSGフローログのデータを格納します。
    • 場所:NSGと同じリージョンに存在する必要があります。
    • パフォーマンス:Standardのみサポートされています。
    • アクセスキー:アクセスキーをストレージアカウントに変更すると、NSGフローログの動作が停止します。(その場合はNSGフローログを一旦無効にして、再度有効にしてください)

NSGフローログを作成する

サービス検索欄で「Network Watcher」を検索・選択後、[NSGフローログ]に移動し、[作成]をクリックします。

NSGフローログの作成画面に移動したら、[基本]タブで以下の設定を行います。

項目説明
NSGの選択選択したNSGを介して、IPトラフィックの情報を収集します。
ストレージアカウントデータの送信先となるストレージアカウントを選択します。(NSGフローログの作成後に変更可能)
リテンション期間(日数)データの保持期間(0〜365)を指定します。0を指定した場合は、データを永続的に保持します。(NSGフローログの作成後に変更可能)

[構成]タブで以下の設定を行います。

項目説明
フローログのバージョンバージョン1と2があります。バージョン間で保持する情報に若干の差異があります。バージョン2はバージョン1を拡張したものなので基本的にはバージョン2で良いです。(NSGフローログの作成後に変更可能)
Traffic Analyticsを有効にするNSGフローログおよびAzureリソースのデータを基に分析と視覚化を行います。追加の従量課金が発生します。(NSGフローログの作成後に変更可能)

設定値を確認し、[作成]をクリックします。

NSGフローログを可視化する

NSGフローログを作成したらデータを分析し、可視化を行います。Microsoft LearnのNSGフローのログ記録の概要では、以下の方法が紹介されています。

  • Azure Traffic Analytics:NSGフローログを分析・可視化するAzureのネイティブサービスです。
  • Power BI:Microsoft社が提供するBIツールです。
  • Elastic Stack:Elastic社が提供する、データの収集や加工、集計、分析を行えるツール群です。
  • Grafana:データベースの可視化やアラートの設定を行えるOSSです。
  • Graylog:ログの収集や管理、可視化が可能なOSSです。

Azure Traffic Analytics以外の方法は上記ページにチュートリアルが掲載されているので、ここではAzure Traffic Analyticsを活用してデータを視覚化する手順を記載します。

  1. NSGフローログを作成する際、または作成した後のフローログ設定画面で以下の設定を行います。
項目説明
Traffic Analyticsを有効にするAzure Traffic Analyticsを使用するのでチェックを入れます。
トラフィック分析の処理間隔Traffic Analyticsによって、1時間ごとまたは10分ごとに、ストレージアカウントからNSGフローログを収集、処理します。
Log AnalyticsワークスペースTraffic Analyticsは未加工のNSGフローログにアクセスします。分析で使用される集計済みのインデックス付きデータをLog Analyticsワークスペースに格納します。

Traffic Analyticsは、指定した処理間隔ごとにストレージアカウントからBLOBを取得します。ソースIP、宛先IP、宛先ポート、NSG、NSGルール、フロー方向(受信/送信)、プロトコル(TCP/UDP)が同じフローは、1つのフローとして集約されます(同じフローは「フローカウント」欄にカウント数として記載され、ログの容量を削減します)。

  1. Network Watcherの画面に戻り、[トラフィック分析]を選択すると分析結果が表示されます。

[トラフィック分析]を選択し、「選択したワークスペースに関して存在するのはリソース データ(トポロジ)のみで、フローの情報はない可能性があります。」と表示される場合、リソース間の通信フローがなくデータが表示されていない可能性があります。その場合、しばらく待ってから再度トラフィック分析を確認してください。データが可視化されるまでに最大で30分程度かかります。

Traffic Analyticsで可視化したNSGフローログを確認する

Traffic Analyticsを有効にすることで可視化されたNSGフローログの情報を記載します。

トラフィックの可視化

指定期間に該当する受信/送信フローの総数が表示されます。図中のフローをクリックすると、ログの検索画面に移動し、特定のログを確認できます。

環境

リージョンや仮想ネットワーク、サブネット、NSGの概要が表示されます。具体的には、Traffic Analyticsが有効なNSGやリージョンの数、アクティブなフローログがある仮想ネットワークやサブネットの数が分かります。それぞれの[表示]ボタンをクリックすると、該当するNSGや仮想ネットワークなど詳細情報を確認できます。

トラフィックの分布

フロー数の多い上位20件のIP(仮想マシン)やサブネット、VNet、VMSS(仮想マシンスケールセット)が表示されます。[すべて表示]をクリックすると、詳細情報を確認できます。

NSGヒット

NSGおよびNSGルールの分析結果として、トラフィックの多いNSGやルールを確認できます。[すべて表示]をクリックすると、詳細情報を確認できます。例えば、インターネットへのアウトバウンド通信を許可した回数(=トラフィックがNSGのAllowInternetOutBoundルールにヒットした回数)などが分かります。

アプリケーションポート

フロー数の多い上位のポート/プロトコルが表示されます。[すべて表示]をクリックすると、詳細情報を確認できます。例えば、許可または悪意のあるものとしてブロックされたtelnet(宛先ポート:23)のフロー数などが分かります。

ネットワークアプリケーションリソース

フロー数の多い上位のゲートウェイやロードバランサーが表示されます。[すべて表示]をクリックすると、詳細情報を確認できます。

補足

Traffic Analyticsで使用するデータの保有期間を長くする

NSGフローログを可視化するためにTraffic Analyticsを使用する場合、分析用のデータはLog Analyticsワークスペースに保管されますが、Log Analyticsワークスペース上のデータの保有期間は、デフォルトでは30日です。

データをより長い期間保有したい場合は、Log Analyticsワークスペースのデータ保有期間を変更してください。

なお、Traffic Analyticsを有効にするとLog Analyticsワークスペース内に「AzureNetworkAnalytics_CL」テーブルが作成されるので、Log Analyticsワークスペース内の全てのデータではなく、Traffic Analytics用のデータの保有期間のみを設定したい場合は、当該テーブルのデータ保有期間を設定するようにしてください。

Log Analyticsワークスペースのデータ保有期間の設定方法は、以下の記事を参考にしてください。

NSGフローログの料金

NSGフローログを使用する際は以下の利用料が発生します。(2023年11月時点)

課金項目利用料金毎月の無料利用枠
フローログの収集量74.803 [円/GB]最初の5 GB
Traffic Analytics523.618 [円/GB] ※処理間隔が10分ごとの場合
344.092 [円/GB] ※処理間隔が1時間ごとの場合

最新情報は以下の公式サイトを確認してください。

以上、ここまで。

この記事を書いた人

目次