分享方式:


使用 Azure PowerShell 建立、變更、啟用、停用或刪除虛擬網路流量記錄

虛擬網路流量記錄是 Azure 網路監看員 的一項功能,可讓您記錄流經 Azure 虛擬網路的 IP 流量相關信息。 如需虛擬網路流量記錄的詳細資訊,請參閱 虛擬網路流量記錄概觀

在本文中,您將瞭解如何使用 Azure PowerShell 建立、變更、啟用、停用或刪除虛擬網路流量記錄。 您可以瞭解如何使用 Azure 入口網站Azure CLI 來管理虛擬網路流量記錄。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶

  • 深入解析提供者。 如需詳細資訊,請參閱 Register Insights 提供者

  • 虛擬網路。 如果您需要建立虛擬網路,請參閱 使用PowerShell建立虛擬網路。

  • 一個 Azure 儲存體帳戶。 如果您需要建立記憶體帳戶,請參閱 使用 PowerShell 建立記憶體帳戶。

  • Azure Cloud Shell 或本地安裝 Azure PowerShell 的 PowerShell 環境。 若要深入瞭解如何在 Azure Cloud Shell 中使用 PowerShell,請參閱 Azure Cloud Shell 快速入門 - PowerShell

    • 如果您選擇在本機安裝和使用 PowerShell,本文需要 Azure PowerShell 7.4.0 版或更新版本。 執行 Get-InstalledModule -Name Az 以尋找安裝的版本。 如果您需要升級,請參閱安裝 Azure PowerShell 模組。 執行 Connect-AzAccount 以登入 Azure。

註冊深入解析提供者

必須註冊 Microsoft.Insights 提供者,才能成功記錄虛擬網路中的流量。 如果您不確定是否已 註冊 Microsoft.Insights 提供者,請使用 Register-AzResourceProvider 來註冊它。

# Register Microsoft.Insights provider.
Register-AzResourceProvider -ProviderNamespace Microsoft.Insights

啟用虛擬網路流量記錄

使用 New-AzNetworkWatcherFlowLog 來建立虛擬網路流程記錄。

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name myStorageAccount -ResourceGroupName myResourceGroup

# Create a VNet flow log.
New-AzNetworkWatcherFlowLog -Enabled $true -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id

啟用虛擬網路流量記錄和使用分析

使用 New-AzOperationalInsightsWorkspace 來建立使用分析工作區,然後使用 New-AzNetworkWatcherFlowLog 來建立使用該工作區的虛擬網路流程記錄。

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name myStorageAccount -ResourceGroupName myResourceGroup

# Create a traffic analytics workspace and place its configuration into a variable.
$workspace = New-AzOperationalInsightsWorkspace -Name myWorkspace -ResourceGroupName myResourceGroup -Location EastUS

# Create a VNet flow log.
New-AzNetworkWatcherFlowLog -Enabled $true -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId -TrafficAnalyticsInterval 10

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

使用 Get-AzNetworkWatcherFlowLog 來列出您訂用帳戶中特定區域中的所有流量記錄資源。

# Get all flow logs in East US region.
Get-AzNetworkWatcherFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG | format-table Name

檢視虛擬網路流量記錄資源

使用 Get-AzNetworkWatcherFlowLog 來查看流量記錄資源的詳細數據。

# Get the flow log details.
Get-AzNetworkWatcherFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -Name myVNetFlowLog

下載流程記錄檔

若要從記憶體帳戶下載虛擬網路流量記錄,請使用 Get-Az 儲存體 BlobContent Cmdlet。

虛擬網路流量記錄檔會儲存至記憶體帳戶,路徑如下:

https://{storageAccountName}.blob.core.windows.net/insights-logs-flowlogflowevent/flowLogResourceID=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/NETWORKWATCHERRG/PROVIDERS/MICROSOFT.NETWORK/NETWORKWATCHERS/NETWORKWATCHER_{Region}/FLOWLOGS/{FlowlogResourceName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

注意

您也可以使用 Azure 儲存體 Explorer,從記憶體帳戶容器存取和下載 VNet 流量記錄檔。 儲存體總管 是一個獨立應用程式,可讓您輕鬆地用來存取和使用 Azure 儲存體 數據。 如需詳細資訊,請參閱開始使用儲存體總管

停用流量記錄資源的使用分析

若要停用流量記錄資源的使用分析,並繼續產生虛擬網路流量記錄並將其儲存至記憶體帳戶,請使用 Set-AzNetworkWatcherFlowLog

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name mynwstorageaccount -ResourceGroupName Storage

# Update the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $true -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id

停用虛擬網路流量記錄

若要停用虛擬網路流量記錄,而不刪除它,以便稍後重新啟用它,請使用 Set-AzNetworkWatcherFlowLog

# Place the virtual network configuration into a variable.
$vnet = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
# Place the storage account configuration into a variable.
$storageAccount = Get-AzStorageAccount -Name mynwstorageaccount -ResourceGroupName Storage

# Disable the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG -StorageId $storageAccount.Id -TargetResourceId $vnet.Id

刪除虛擬網路流量記錄資源

若要刪除虛擬網路流量記錄資源,請使用 Remove-AzNetworkWatcherFlowLog

# Delete the VNet flow log.
Remove-AzNetworkWatcherFlowLog -Name myVNetFlowLog -NetworkWatcherName NetworkWatcher_eastus -ResourceGroupName NetworkWatcherRG
  • 若要瞭解使用分析,請參閱 使用分析
  • 若要瞭解如何使用 Azure 內建原則來稽核或啟用使用分析,請參閱使用 Azure 原則 管理使用分析。