使用 Azure CLI 管理 NSG 流量記錄

重要

網路安全性群組 (NSG) 流量記錄將於 2027 年 9 月 30 日淘汰。 經此淘汰後,自 2025 年 6 月 30 日起您將無法再建立新的 NSG 流量記錄。 建議您移轉 (部分機器翻譯) 至虛擬網路流量記錄,以因應 NSG 流量記錄的限制。 過了淘汰日期之後,將不再支援啟用了 NSG 流量記錄的流量分析,且將會刪除您的訂用帳戶中現有的 NSG 流量記錄資源。 不過,NSG 流量記錄將不會刪除,且將繼續遵循其各自的保留原則。 如需詳細資訊,請參閱官方公告

網路安全性群組流量記錄是 Azure 網路監看員的一項功能,可讓您記錄流經網路安全性群組的 IP 流量相關資訊。 如需網路安全性群組流量記錄的詳細資訊,請參閱 NSG 流量記錄概觀

在本文中,您將了解如何使用 Azure CLI 建立、變更、停用或刪除 NSG 流量記錄。 您可以了解如何使用 Azure 入口網站PowerShellREST APIARM 範本管理 NSG 流量記錄。

必要條件

註冊 Insights 提供者

您必須註冊 Microsoft.Insights 提供者,才能成功記錄流經網路安全性群組的流量。 如果您不確定是否已註冊 Microsoft.Insights 提供者,請使用 az provider register 進行註冊。

# Register Microsoft.Insights provider.
az provider register --namespace 'Microsoft.Insights'

建立流量記錄

使用 az network watcher flow-log create 建立流量記錄。 網路監看員預設資源群組 NetworkWatcherRG 中會建立流量記錄。

# Create a version 1 NSG flow log.
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount'

注意

  • 如果儲存體帳戶位於不同的訂用帳戶,網路安全性群組和儲存體群組必須與相同的 Azure Active Directory 租用戶相關聯。 為每個訂用帳戶所使用的帳戶必須具有必要的權限
  • 如果儲存體帳戶位於不同的資源群組或訂用帳戶中,您必須指定儲存體帳戶的完整識別碼,而不是只指定其名稱。 例如,如果 myStorageAccount 儲存體帳戶位於名為 StorageRG 的資源群組,而網路安全性群組是在 myResourceGroup 資源群組中,您必須使用 /subscriptions/{SubscriptionID}/resourceGroups/RG-Storage/providers/Microsoft.Storage/storageAccounts/myStorageAccount 作為 --storage-account 參數,而不是使用 myStorageAccount
# Place the storage account resource ID into a variable.
sa=$(az storage account show --name 'myStorageAccount' --query 'id' --output 'tsv')

# Create a version 1 NSG flow log (the storage account is in a different resource group).
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account $sa

建立流量記錄和流量分析工作區

  1. 使用 az monitor log-analytics workspace create 建立 Log Analytics 工作區。

    # Create a Log Analytics workspace.
    az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'
    
  2. 使用 az network watcher flow-log create 建立流量記錄。 網路監看員預設資源群組 NetworkWatcherRG 中會建立流量記錄。

    # Create a version 1 NSG flow log and enable traffic analytics for it.
    az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'true' --workspace 'myWorkspace'
    

注意

  • 儲存體帳戶無法有網路規則以將網路存取僅限制為 Microsoft 服務或特定虛擬網路。
  • 如果儲存體帳戶位於不同的訂用帳戶,網路安全性群組和儲存體群組必須與相同的 Azure Active Directory 租用戶相關聯。 為每個訂用帳戶所使用的帳戶必須具有必要的權限
  • 如果儲存體帳戶位於不同的資源群組或訂用帳戶中,則必須使用儲存體帳戶的完整識別碼。 例如,如果 myStorageAccount 儲存體帳戶位於名為 StorageRG 的資源群組,而網路安全性群組是在 myResourceGroup 資源群組中,您必須使用 /subscriptions/{SubscriptionID}/resourceGroups/RG-Storage/providers/Microsoft.Storage/storageAccounts/myStorageAccount 作為 --storage-account 參數,而不是使用 myStorageAccount
# Place the storage account resource ID into a variable.
sa=$(az storage account show --name 'myStorageAccount' --query 'id' --output 'tsv')

# Create a Log Analytics workspace.
az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'

# Create a version 1 NSG flow log and enable traffic analytics for it (the storage account is in a different resource group).
az network watcher flow-log create --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account $sa --traffic-analytics 'true' --workspace 'myWorkspace'

變更流量記錄

您可以使用 az network watcher flow-log update 來變更流量記錄的屬性。 例如,您可變更流量記錄版本或停用流量分析。

# Update the flow log.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'false' --log-version '2'

列出區域中的所有流量記錄

使用 az network watcher flow-log list 列出您訂用帳戶中特定區域的所有 NSG 流量記錄資源。

# Get all NSG flow logs in East US region.
az network watcher flow-log list --location 'eastus' --out table

檢視流量記錄資源的詳細資料

使用 az network watcher flow-log show 查看流量記錄資源的詳細資料。

# Get the details of a flow log.
az network watcher flow-log show --name 'myFlowLog' --resource-group 'NetworkWatcherRG' --location 'eastus'

下載流量記錄

流量記錄的儲存位置會在建立時定義。 若要從儲存體帳戶存取和下載流量記錄,您可以使用 Azure 儲存體總管。 如需詳細資訊,請參閱開始使用儲存體總管

儲存至儲存體帳戶的 NSG 流量記錄檔遵循以下路徑:

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{NetworkSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

如需關於流量記錄結構的資訊,請參閱 NSG 流量記錄的記錄格式

停用流量記錄

若要暫時停用流量記錄,而不刪除它,請使用 az network watcher flow-log update 命令。 停用流量記錄會停止相關網路安全性群組的流量記錄。 然而,流量記錄資源會保留其所有設定和關聯。 您可隨時重新啟用以繼續所設定網路安全性群組的流量記錄。

注意

如果已針對流量記錄啟用流量分析,則必須先停用流量分析,才能停用流量記錄。

# Disable traffic analytics log if it's enabled.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --traffic-analytics 'false' --workspace 'myWorkspace'

# Disable the flow log.
az network watcher flow-log update --name 'myFlowLog' --nsg 'myNSG' --resource-group 'myResourceGroup' --storage-account 'myStorageAccount' --enabled 'false'

刪除流量記錄

若要永久刪除流量記錄,請使用 az network watcher flow-log delete 命令。 刪除流量記錄也會刪除其所有設定和關聯。 若要再次開始進行相同網路安全性群組的流量記錄,您必須為其建立新的流量記錄。

# Delete the flow log.
az network watcher flow-log delete --name 'myFlowLog' --location 'eastus' --no-wait 'true'

注意

刪除流量記錄不會從儲存體帳戶刪除流量記錄資料。 儲存在儲存體帳戶的流量記錄資料會遵循所設定的保留原則。