使用 Azure CLI 管理 NSG 流量記錄
網路安全組流量記錄是 Azure 網路監看員 的一項功能,可讓您記錄流經網路安全組的 IP 流量相關信息。 如需網路安全組流量記錄的詳細資訊,請參閱 NSG 流量記錄概觀。
在本文中,您將瞭解如何使用 Azure CLI 建立、變更、停用或刪除 NSG 流量記錄。 您可以瞭解如何使用 Azure 入口網站、PowerShell、REST API 或 ARM 範本來管理 NSG 流量記錄。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
深入解析提供者。 如需詳細資訊,請參閱 Register Insights 提供者。
網路安全組。 如果您需要建立網路安全組,請參閱 建立、變更或刪除網路安全組。
Azure 儲存體帳戶。 如果您需要建立記憶體帳戶,請參閱 使用 PowerShell 建立記憶體帳戶。
安裝在本機的 Azure Cloud Shell 或 Azure CLI。
註冊深入解析提供者
必須註冊 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 租使用者相關聯。 您用於每個訂用帳戶的 帳戶必須具有必要的許可權。
- 如果記憶體帳戶位於不同的資源群組或訂用帳戶中,您必須指定記憶體帳戶的完整標識碼,而不是只指定其名稱。 例如,如果 my 儲存體 Account 記憶體帳戶位於名為 儲存體 RG 的資源群組中,而網路安全組位於資源群組 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 租使用者相關聯。 您用於每個訂用帳戶的 帳戶必須具有必要的許可權。
- 如果記憶體帳戶位於不同的資源群組或訂用帳戶中,則必須使用記憶體帳戶的完整標識符。 例如,如果 my 儲存體 Account 記憶體帳戶位於名為 儲存體 RG 的資源群組中,而網路安全組位於資源群組 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 儲存體 Explorer。 如需詳細資訊,請參閱開始使用 儲存體總管。
儲存至記憶體帳戶的 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 流量記錄。
- 若要瞭解使用分析,請參閱 使用分析。