Azure Network Watcher アプリケーションのログの収集
このドキュメントでは、Azure Network Watcher アプリケーションの NSG フロー ログの収集を設定する方法を説明します。このプロセスには、以下の要件と作業があります。
- 設定の要件
- ステップ 1: Azure ストレージ アカウントを設定する
- ステップ 2: HTTP Source を設定する
- ステップ 3: ARM テンプレートを使用して Azure リソースを設定する
- ステップ 4: Azure ポータルで NSG フロー ログを有効にする
設定の要件
NSG フロー ログの設定を開始する前に、環境で以下の前提条件が整っていることを確認してください。
- 使用しているストレージ アカウントが汎用 v2 または Blob Storage である。
- ネットワーク セキュリティ グループとストレージ アカウントが同じリソース ロケーションに存在する。
ステップ 1: Azure ストレージ アカウントを設定する
このステップでは、ストレージ アカウントと、ネットワーク フロー ログのエクスポート先となるコンテナを設定します。新しいストレージ アカウントとコンテナを作成するには、「Blob Storage からログを収集する」のステップ 1 を実行してから、下記のステップ 2 を実行してください。
この目的で使用するストレージ アカウントとコンテナがすでにある場合は、そのリソース グループ、ストレージ アカウント名、およびコンテナ名を書き留めてから、下記のステップ 2 に進みます。
ステップ 2: HTTP Source を設定する
このステップでは、Azure 関数からログを受信するための HTTP Source の設定方法を実際に示します。
Azure の HTTP Source を設定するには、次の手順を実行します。
- HTTP Source を設定する Hosted Collector を選択します。必要に応じて、「Hosted Collector を設定する」の説明に従って Hosted Collector を新規作成します。
- 「HTTP ログとメトリクス Source」の説明に従って HTTP Source を設定します。次のステップで必要になるため、Source の URL を書き留めます。I
- [Advanced Options for Logs (ログの詳細オプション)] の下にある [Timestamp Format (タイムスタンプの形式)] で [Specify a format (形式を指定)] をクリックして、以下を入力します。
- [Format (形式)] をエポックとして指定します。
- [Timestamp locator (タイムスタンプ ロケータ)] を \"time\": (.*), と指定します。
ステップ 3: ARM テンプレートを使用して Azure リソースを設定する
Sumo で用意されている ARM テンプレートを使用するには、「Azure Blob Storage からログを収集する」のステップ 3 を実行します。
ステップ 4.Azure ポータルで NSG フロー ログを有効にする
このステップでは、Azure ポータルで NSG フロー ログを有効にします。
- 「ステップ 1: Azure ストレージ アカウントを設定する」で設定したストレージ アカウントを参照するようにフロー ログを有効化します。
- 「Microsoft Azure Network Watcher」ドキュメントの手順を実行します。
トラブルシューティング
上記の設定を実行した後にログが Sumo Logic に取り込まれない場合、「Azure Blob Storage のログ収集をトラブルシューティングする」を参照してください。
ログ メッセージのサンプル
{ "time":"2017-09-27 21:22:33.443+0000", "sys_id":"4181995a-801f-4075-a56c-30b3671148bf", "category":"NetworkSecurityGroupFlowEvent", "resource_id":"/SUBSCRIPTIONS/C088DC46-D692-42AD-A4B6-9A542D28AD2A/RESOURCEGROUPS/AZURELABS/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/NSG-AZURELABS-03", "event_name":"NetworkSecurityGroupFlowEvents", "rule_name":"All_prod_tcp", "mac":"000D3AF86058", "src_ip":"51.148.136.204", "dest_IP":"107.198.121.243", "src_port":"47676", "dest_port":"4367", "protocol":"T", "traffic_destination":"I", "traffic_a/d":"D" }
クエリのサンプル
Denied Traffic Flow by Source Location (Source ロケーション別拒否トラフィックフロー)
_sourceCategory="security/flowlogs"
| json field=_raw "rule_name"
| json field=_raw "resource_id"
| json field=_raw "event_name"
| json field=_raw "mac"
| json field=_raw "src_ip"
| json field=_raw "dest_IP"
| json field=_raw "dest_port"
| json field=_raw "protocol"
| json field=_raw "traffic_destination"
| json field=_raw "traffic_a/d" as traffic_a_d
| parse regex field=resource_id"(?<NSG>[\w-_.]+)$"
| json field=_raw "src_port"
| where traffic_a_d = "D"
| lookup latitude, longitude, country_code, country_name, region, city, postal_code, area_code, metro_code from geo://default on ip = src_ip
| count by latitude, longitude, country_code, country_name, region, city, postal_code, area_code, metro_code
| sort _count