使用 Azure CLI 管理 NSG 流量記錄
重要
網路安全性群組 (NSG) 流量記錄將於 2027 年 9 月 30 日淘汰。 經此淘汰後,自 2025 年 6 月 30 日起您將無法再建立新的 NSG 流量記錄。 建議您移轉 (部分機器翻譯) 至虛擬網路流量記錄,以因應 NSG 流量記錄的限制。 過了淘汰日期之後,將不再支援啟用了 NSG 流量記錄的流量分析,且將會刪除您的訂用帳戶中現有的 NSG 流量記錄資源。 不過,NSG 流量記錄將不會刪除,且將繼續遵循其各自的保留原則。 如需詳細資訊,請參閱官方公告。
網路安全性群組流量記錄是 Azure 網路監看員的一項功能,可讓您記錄流經網路安全性群組的 IP 流量相關資訊。 如需網路安全性群組流量記錄的詳細資訊,請參閱 NSG 流量記錄概觀。
在本文中,您將了解如何使用 Azure CLI 建立、變更、停用或刪除 NSG 流量記錄。 您可以了解如何使用 Azure 入口網站、PowerShell、REST API 或 ARM 範本管理 NSG 流量記錄。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
深入解析提供者。 如需詳細資訊,請參閱註冊 Insights 提供者。
網路安全性群組。 如果您必須建立網路安全性群組,請參閱建立、變更或刪除網路安全性群組。
一個 Azure 儲存體帳戶。 如果您必須建立儲存體帳戶,請參閱使用 PowerShell 建立儲存體帳戶。
本機安裝的 Azure Cloud Shell 或 Azure CLI。
本文中的步驟會在 Azure Cloud Shell 中以互動方式執行 Azure CLI 命令。 若要在 Cloud Shell 中執行命令,請選取程式碼區塊右上角的 [開啟 Cloud Shell]。 選取 [複製] 以複製程式碼,然後將其貼入 Cloud Shell 以執行。 您也可以從 Azure 入口網站內執行 Cloud Shell。
您也可以在本機安裝 Azure CLI 以執行命令。 如果您在本機執行 Azure CLI,請使用 az login 命令登入 Azure。
註冊 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
建立流量記錄和流量分析工作區
使用 az monitor log-analytics workspace create 建立 Log Analytics 工作區。
# Create a Log Analytics workspace. az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup'
使用 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'
注意
刪除流量記錄不會從儲存體帳戶刪除流量記錄資料。 儲存在儲存體帳戶的流量記錄資料會遵循所設定的保留原則。
相關內容
- 若要了解如何使用 Azure 內建原則以稽核或部署 NSG 流量記錄,請參閱使用 Azure 原則管理 NSG 流量記錄。
- 若要了解流量分析,請參閱流量分析。