虚拟网络安全组流日志记录是 Azure 网络观察程序的一项功能,可用于记录有关流经 Azure 虚拟网络的 IP 流量的信息。 有关虚拟网络流日志记录的详细信息,请参阅虚拟网络流日志概述。
本文介绍如何使用 Azure 门户、PowerShell 和 Azure CLI 创建、更改、启用、禁用或删除虚拟网络流日志。
先决条件
注册 Insights 提供程序
必须注册 Microsoft.Insights 提供程序才能成功记录流经虚拟网络的流量。 如果不确定是否已注册 Microsoft.Insights 提供程序,请按照以下步骤在 Azure 门户中检查其状态:
在门户顶部的搜索框中,输入“订阅”。 从搜索结果中选择“订阅”。
在“订阅”中,选择要为其启用提供程序的 Azure 订阅。
在“设置”下,选择“资源提供程序”。
在筛选器框中输入“insight”。
确认显示的提供程序状态为“已注册”。 如果状态为“NotRegistered”,请选择“Microsoft.Insights”提供程序,然后选择“注册”。
必须注册 Microsoft.Insights 提供程序才能成功记录虚拟网络中的流量。 如果不确定是否已注册 Microsoft.Insights 提供程序,请使用 Register-AzResourceProvider 来注册。
# Register Microsoft.Insights provider.
Register-AzResourceProvider -ProviderNamespace Microsoft.Insights
必须注册 Microsoft.Insights 提供程序才能成功记录虚拟网络中的流量。 如果不确定 Microsoft.Insights 提供程序是否已注册,请使用 az provider register 来注册它。
# Register Microsoft.Insights provider.
az provider register --namespace Microsoft.Insights
创建流日志
为虚拟网络、子网或网络接口创建流日志。 此流日志保存在 Azure 存储帐户中。
在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。
在“日志”下,选择“流日志”。
在“网络观察程序 | 流日志”中,选择“+ 创建”或“创建流日志”蓝色按钮。
在“创建流日志”的“基本信息”选项卡上,输入或选择以下值:
设置 |
价值 |
项目详细信息 |
|
订阅 |
选择要记录的虚拟网络的 Azure 订阅。 |
流日志类型 |
选择“虚拟网络”,然后选择“+ 选择目标资源”(可用选项包括:虚拟网络、子网和网络接口)。 选择要记录流日志的资源,然后选择“确认选择”。 |
流日志名称 |
输入流日志的名称或保留默认名称。 Azure 门户使用 {ResourceName}-{ResourceGroupName}-flowlog 作为流日志的默认名称。 |
实例详细信息 |
|
订阅 |
为存储帐户选择 Azure 订阅。 |
存储帐户 |
选择要在其中保存流日志的存储帐户。 如果要创建新的存储帐户,可选择“新建存储帐户”。 |
保留期(天) |
输入日志的保留时间(此选项仅适用于标准常规用途 v2 存储帐户)。 如果要永久保留存储帐户中的流日志数据(直到手动将其从存储帐户中删除),请输入 0。 有关定价的详细信息,请参阅 Azure 存储定价。 |
注释
如果存储帐户位于其他订阅中,则记录的资源(虚拟网络、子网或网络接口)和存储帐户必须与同一 Microsoft Entra 租户相关联。 用于每个订阅的帐户必须有必要的权限。
要启用流量分析,请选择“下一步: 分析”按钮,或选择“分析”选项卡。输入或选择下列值:
设置 |
价值 |
启用流量分析 |
选中复选框为流日志启用流量分析。 |
流量分析处理间隔 |
选择所需的处理间隔,可用选项包括:“每小时”和“每 10 分钟”。 默认处理间隔为每小时。 有关详细信息,请参阅流量分析。 |
订阅 |
选择 Log Analytics 工作区的 Azure 订阅。 |
Log Analytics 工作区 |
选择 Log Analytics 工作区。 默认情况下,Azure 门户会在 defaultresourcegroup-{Region} 资源组中创建 DefaultWorkspace-{SubscriptionID}-{Region} Log Analytics 工作区。 |
选择 审阅 + 创建。
检查设置,然后选择“创建”。
使用 New-AzNetworkWatcherFlowLog cmdlet 创建虚拟网络流日志。
在没有流量分析的情况下启用虚拟网络流日志
# 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 -FormatVersion 2
启用虚拟网络流日志和流量分析
# 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 -FormatVersion 2 -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId -TrafficAnalyticsInterval 10
使用 az network watcher flow-log create 命令创建虚拟网络流日志。
在没有流量分析的情况下启用虚拟网络流日志
# Create a VNet flow log.
az network watcher flow-log create --___location 'eastus' --resource-group 'myResourceGroup' --name 'myVNetFlowLog' --vnet 'myVNet' --storage-account 'myStorageAccount'
# Create a VNet flow log (storage account is in a different resource group from the virtual network).
az network watcher flow-log create --___location 'eastus' --resource-group 'myResourceGroup' --name 'myVNetFlowLog' --vnet 'myVNet' --storage-account '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/StorageRG/providers/Microsoft.Storage/storageAccounts/myStorageAccount'
启用虚拟网络流日志和流量分析
# Create a traffic analytics workspace.
az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup' --___location 'eastus'
# Create a VNet flow log.
az network watcher flow-log create --___location 'eastus' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account 'myStorageAccount' --traffic-analytics true --workspace 'myWorkspace' --interval 10
# Create a traffic analytics workspace.
az monitor log-analytics workspace create --name 'myWorkspace' --resource-group 'myResourceGroup' --___location 'eastus'
# Create a VNet flow log (storage account and traffic analytics workspace are in different resource groups from the virtual network).
az network watcher flow-log create --___location 'eastus' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/StorageRG/providers/Microsoft.Storage/storageAccounts/myStorageAccount' --traffic-analytics true --workspace '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/WorkspaceRG/providers/Microsoft.OperationalInsights/workspaces/myWorkspace' --interval 10
启用或禁用流量分析
为流日志启用流量分析以分析流日志数据。 流量分析提供对虚拟网络流量模式的见解。 可以随时为流日志启用或禁用流量分析。
注释
除了启用或禁用流量分析之外,还可以更改其他流日志设置。
若要为流日志启用流量分析,请执行以下步骤:
在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。
在“日志”下,选择“流日志”。
在“网络观察程序 | 流日志”中,选择要启用流量分析的流日志。
在“流日志设置”的“流量分析”下,选中“启用流量分析”复选框。
输入或选择下列值:
设置 |
价值 |
订阅 |
选择 Log Analytics 工作区的 Azure 订阅。 |
Log Analytics 工作区 |
选择 Log Analytics 工作区。 默认情况下,Azure 门户会在 defaultresourcegroup-{Region} 资源组中创建 DefaultWorkspace-{SubscriptionID}-{Region} Log Analytics 工作区。 |
流量日志记录间隔 |
选择所需的处理间隔,可用选项包括:“每小时”和“每 10 分钟”。 默认处理间隔为每小时。 有关详细信息,请参阅流量分析。 |
选择 保存 以应用更改。
若要为流日志禁用流量分析,请执行前面的步骤 1-3,然后取消选中“启用流量分析”复选框,并选择“保存”。
要在流日志资源上启用流量分析,请使用 Set-AzNetworkWatcherFlowLog cmdlet。
# 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'
# Place the workspace configuration into a variable.
$workspace = Get-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup'
# Update the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $true -Name 'myVNetFlowLog' -NetworkWatcherName 'NetworkWatcher_eastus' -ResourceGroupName 'NetworkWatcherRG' -StorageId $storageAccount.Id -TargetResourceId $vnet.Id -FormatVersion 2 -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId -TrafficAnalyticsInterval 10
要对流日志资源禁用流量分析并继续生成虚拟网络流日志以及将其保存到存储帐户,请使用 Set-AzNetworkWatcherFlowLog cmdlet。
# 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'
# Update the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $true -Name 'myVNetFlowLog' -NetworkWatcherName 'NetworkWatcher_eastus' -ResourceGroupName 'NetworkWatcherRG' -StorageId $storageAccount.Id -TargetResourceId $vnet.Id -FormatVersion 2
要在流日志资源上启用流量分析,请使用 az network watcher flow-log update 命令。
# Update the VNet flow log.
az network watcher flow-log update --___location 'eastus' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account 'myStorageAccount' --traffic-analytics true --workspace 'myWorkspace' --interval 10
要对流日志资源禁用流量分析,并且继续生成虚拟网络流日志并将其保存到存储帐户,请使用 az network watcher flow-log update 命令。
# Update the VNet flow log.
az network watcher flow-log update --___location 'eastus' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account 'myStorageAccount' --traffic-analytics false
列出所有流日志
可以列出一个订阅或一组订阅中的所有流日志(Azure 门户)。 还可以列出某个区域中的所有流日志。
在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。
在“日志”下,选择“流日志”。
选择“订阅等于”筛选器,以选择一个或多个订阅。 可以应用“位置等于”等其他筛选器来列出某个区域的所有流日志。
使用 Get-AzNetworkWatcherFlowLog cmdlet 列出订阅中特定区域内的所有流日志资源。
# Get all flow logs in East US region.
Get-AzNetworkWatcherFlowLog -Location 'eastus' | format-table
使用 az network watcher flow-log list 命令列出订阅中特定区域内的所有 NSG 流日志资源。
# Get all flow logs in East US region.
az network watcher flow-log list --___location 'eastus' --out table
查看流日志资源的详细信息
可以查看流日志的详细信息。
在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。
在“日志”下,选择“流日志”。
在“网络观察程序|流日志”中选择要查看的流日志。
在“流日志设置”中,可以查看流日志资源的设置。
选择“取消”关闭设置页,无需进行更改。
使用 Get-AzNetworkWatcherFlowLog cmdlet 查看流日志资源的详细信息。
# Get the flow log details.
Get-AzNetworkWatcherFlowLog -NetworkWatcherName 'NetworkWatcher_eastus' -ResourceGroupName 'NetworkWatcherRG' -Name 'myVNetFlowLog'
使用 az network watcher flow-log show 查看流日志资源的详细信息。
# Get the flow log details.
az network watcher flow-log show --name 'myVNetFlowLog' --resource-group 'NetworkWatcherRG' --___location 'eastus'
下载流日志
可以从要保存流日志的存储帐户下载流日志数据。
在门户顶部的搜索框中,输入“存储帐户”。 从搜索结果中选择“存储帐户”。
选择用于存储日志的存储帐户。
在“数据存储”下,选择“容器”。
选择“insights-logs-flowlogflowevent”容器。
在“insights-logs-flowlogflowevent”中,浏览文件夹层次结构,直到找到要下载的 文件PT1H.json
。 虚拟网络流日志文件遵循以下路径:
https://{storageAccountName}.blob.core.windows.net/insights-logs-flowlogflowevent/flowLogResourceID=/{subscriptionID}_NETWORKWATCHERRG/NETWORKWATCHER_{Region}_{ResourceName}-{ResourceGroupName}-FLOWLOGS/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json
选择 文件右侧的省略号“...”,然后选择“下载”PT1H.json
。
若要从存储帐户下载虚拟网络流日志,请使用 Get-AzStorageBlobContent cmdlet。 有关详细信息,请参阅下载 blob。
虚拟网络流日志文件会保存到以下路径的存储帐户:
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
若要从存储帐户下载虚拟网络流日志,请使用 az storage blob download 命令。 有关详细信息,请参阅下载 blob。
虚拟网络流日志文件会保存到以下路径的存储帐户:
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
有关流日志结构的信息,请参阅虚拟网络流日志的日志格式。
禁用流日志
可以暂时禁用虚拟网络流日志,而无需删除它。 禁用流日志会停止关联虚拟网络的流日志记录。 但是,流日志资源会保留其所有设置和关联。 可以随时重新启用它,以恢复对配置的虚拟网络进行流日志记录。
在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。
在“日志”下,选择“流日志”。
在“网络观察程序 | 流日志”中,选择要禁用的流日志的复选框。
选择禁用。
注释
如果为流日志启用了流量分析,则必须先禁用流量分析,然后才能禁用流日志。 若要禁用流量分析,请参阅启用或禁用流量分析。
使用 Set-AzNetworkWatcherFlowLog cmdlet 禁用流日志。
# 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'
# Disable the VNet flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name 'myVNetFlowLog' -NetworkWatcherName 'NetworkWatcher_eastus' -ResourceGroupName 'NetworkWatcherRG' -StorageId $storageAccount.Id -TargetResourceId $vnet.Id
注释
如果禁用启用了流量分析的流日志,则必须在同一命令中禁用流量分析,或在禁用流日志之前先禁用流量分析。
使用 az network watcher flow-log update 命令禁用流日志。
# Update the VNet flow log.
az network watcher flow-log update --enabled false --___location 'eastus' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account 'myStorageAccount'
注释
如果禁用启用了流量分析的流日志,则必须在同一命令中禁用流量分析,或在禁用流日志之前先禁用流量分析。
删除流日志
可以永久删除虚拟网络流日志。 删除流日志会删除其所有设置和关联。 要为同一资源重新开始流日志记录,必须为其创建新的流日志。
在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。
在“日志”下,选择“流日志”。
在“网络观察程序 | 流日志”中,选择要删除的流日志的复选框。
选择 删除。
要删除虚拟网络流日志资源,请使用 Remove-AzNetworkWatcherFlowLog cmdlet。
# Delete the VNet flow log.
Remove-AzNetworkWatcherFlowLog -Name 'myVNetFlowLog' -Location 'eastus'
注释
删除流日志不会删除存储帐户中的流日志数据。 存储在存储帐户中的流日志数据遵循配置的保留策略,或在手动删除前一直存储在存储帐户中。
相关内容