Network Watcher


The presented resiliency recommendations in this guidance include Network Watcher and associated resources and settings.

Summary of Recommendations

Recommendations Details

NW-1 - ネットワーク サービスがあるすべてのリージョンに Network Watcher をデプロイします

Category: Monitoring

Impact: Low

Guidance

Azure Network Watcher には、Azure IaaS (サービスとしてのインフラストラクチャ) リソースの監視、診断、メトリックの表示、ログの有効化または無効化を行うための一連のツールが用意されています。Network Watcher を使用すると、仮想マシン (VM)、仮想ネットワーク (VNet)、アプリケーション ゲートウェイ、ロード バランサーなどの IaaS 製品のネットワーク正常性を監視および修復できます。 Network Watcher は、PaaS 監視や Web 分析用に設計または意図されていません。

Resources

Resource Graph Query

// Azure Resource Graph Query
// This query will return all locations that do not have a Network Watcher deployed
resources
| where location != "global"
| union (Resources
    | where type =~ "microsoft.network/networkwatchers")
| summarize NetworkWatcherCount = countif(type =~ 'Microsoft.Network/networkWatchers') by location
| where NetworkWatcherCount == 0
| project recommendationId = "nw-1", name=location, id="n/a", tags, param1 = strcat("LocationMisingNetworkWatcher:", location)



NW-2 - 失敗状態または無効状態のフローログ構成を修正します

Category: Monitoring

Impact: Low

Guidance

ネットワーク セキュリティ グループ フロー ログは、ネットワーク セキュリティ グループを通過する IP トラフィックに関する情報をログに記録できる Azure Network Watcher の機能です。フロー ログが [失敗] 状態の場合、関連付けられたリソースからの監視データは収集されていません。

Resources

Resource Graph Query

// Azure Resource Graph Query
// This query will return all Network Watcher Flow Logs that are not enabled or in a succeeded state
resources
| where type =~ "microsoft.network/networkwatchers/flowlogs" and isnotnull(properties)
| extend targetResourceId = tostring(properties.targetResourceId)
| extend status = iff(properties.enabled =~ 'true', "Enabled", "Disabled")
| extend provisioningState = tostring(properties.provisioningState)
| extend flowLogType = iff(properties.targetResourceId contains "Microsoft.Network/virtualNetworks", 'Virtual network', 'Network security group')
| where provisioningState != "Succeeded" or status != "Enabled"
| project recommendationId = "nw-2", name, id, tags, param1 = strcat("provisioningState:", provisioningState), param2=strcat("Status:", status), param3=strcat("targetResourceId:",targetResourceId), param4=strcat("flowLogType:",flowLogType)