虚拟网络流日志记录是Azure Network Watcher的一项功能,可用于记录流经Azure虚拟网络的 IP 流量的相关信息。 有关虚拟网络流日志记录的详细信息,请参阅虚拟网络流日志概述。
本文介绍如何使用 Azure 门户、PowerShell 和Azure CLI创建、更改、启用、禁用或删除虚拟网络流日志。
先决条件
具有活动订阅的Azure帐户。
创建试用版订阅。
洞察力提供者。 有关更多信息,请参阅注册 Insights 服务提供商。
虚拟网络。 如果需要创建虚拟网络,请参阅 使用 Azure CLI。
Azure存储帐户。 如果需要创建存储帐户,请参阅使用 Azure CLI。
Azure CLI。
可以在本地安装Azure CLI来运行命令。 本文需要 Azure CLI 2.39.0 或更高版本。 运行 az --version 命令查找安装的版本。 如果在本地运行Azure CLI,请使用 az login 命令登录到Azure。
注册洞察服务商
必须注册 Microsoft.Insights 提供程序才能成功记录流经虚拟网络的流量。 如果不确定是否已注册 Microsoft.Insights 提供程序,请按照以下步骤在 Azure 门户中检查其状态:
在门户顶部的搜索框中,输入“订阅”。 从搜索结果中选择“订阅”。
截图,说明如何在 Azure Portal 中搜索订阅。
选择要在订阅中启用提供程序的 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存储帐户中。
在门户顶部的搜索框中,输入Network Watcher。 从搜索结果中选择 Network Watcher。
在“日志”下,选择“流日志”。
在 Network Watcher |流日志,选择+ 创建或创建流日志蓝色按钮。
在“创建流日志”的“基本信息”选项卡上,输入或选择以下值:
| 设置 |
价值 |
|
项目详细信息 |
|
| 订阅 |
选择包含虚拟网络的Azure订阅。 |
| 流日志类型 |
选择 “虚拟网络”,然后选择“ + 选择目标资源”。 可用选项包括: 虚拟网络、 子网和 网络接口。 选择要记录的资源,然后选择“ 确认选择”。 |
| 流日志名称 |
输入流日志的名称,或保留默认名称。 Azure门户使用 {ResourceName}-{ResourceGroupName}-flowlog作为默认名称。 |
|
实例详细信息 |
|
| 订阅 |
选择包含存储帐户的Azure订阅。 |
| 存储帐户 |
选择要在其中保存流日志的存储帐户。 若要创建新的存储帐户,请选择“ 创建新存储帐户”。 |
| 保留期(天数) |
输入日志的保留期(以天为单位)。 此选项仅适用于 标准常规用途 v2 存储帐户。 输入 0 以无限期保留流日志数据(直到手动删除)。 有关定价信息,请参阅 Azure Storage 定价。 |
显示在 Azure portal 中创建虚拟网络流日志的“基本”选项卡的截图。
若要启用流量分析,请选择“下一步: 分析”按钮,或选择“分析”选项卡。输入或选择下列值:
| 设置 |
价值 |
| 启用流量分析 |
选中复选框,以启用流日志的流量监测。 |
| 流量分析处理间隔 |
选择所需的处理间隔,可用选项包括:每小时和每 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_chinaeast2' -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 'chinaeast2'
# Create a VNet flow log.
New-AzNetworkWatcherFlowLog -Enabled $true -Name 'myVNetFlowLog' -NetworkWatcherName 'NetworkWatcher_chinaeast2' -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 'chinaeast2' --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 'chinaeast2' --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 'chinaeast2'
# Create a VNet flow log.
az network watcher flow-log create --location 'chinaeast2' --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 'chinaeast2'
# 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 'chinaeast2' --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
重要
如果在 NIC、子网和虚拟网络级别配置虚拟网络流日志,则启用首选项遵循以下顺序:NIC > 子网 > 虚拟网络。
注释
- 如果存储帐户位于不同的订阅中,则记录的资源(虚拟网络、子网或网络接口)和存储帐户必须与同一Microsoft Entra租户相关联。 用于每个订阅的帐户必须有必要的权限。
- 目前,存储帐户支持 100 条规则,每个规则可以容纳 10 个 Blob 前缀。 有关详细信息,请参阅一个存储帐户可具有多少条保留策略规则?
- 支持所有Azure Storage冗余配置,包括本地冗余存储(LRS)、区域冗余存储(ZRS)、异地冗余存储(GRS)和异地区域冗余存储(GZRS)。
警告
虚拟网络流日志通过追加块的方式,按一分钟的间隔引入到块 Blob 中。 在数据导入过程中,请不要执行会修改 Blob 块结构的操作,例如编辑、覆盖或删除 Blob 内容。 这些操作可能导致该特定小时 Blob 的所有后续流日志写入操作失败。
谨慎
流量分析在与 Log Analytics 工作区相同的资源组中创建和管理以 NWTA 为前缀的数据收集规则(DCR)和数据收集终端(DCE)资源。 如果对这些资源执行任何操作,流量分析可能无法按预期运行。
启用或禁用流量分析
为流日志启用流量分析以分析流日志数据。 流量分析提供对虚拟网络流量模式的见解。 可以随时为流日志启用或禁用流量分析。
注释
除了启用或禁用流量分析之外,还可以更改其他流日志设置。
若要为流日志启用流量分析,请执行以下步骤:
在门户顶部的搜索框中,输入Network Watcher。 从搜索结果中选择 Network Watcher。
在“日志”下,选择“流日志”。
在 Network Watcher |流日志,选择要为其启用流量分析的流日志。
在“流日志设置”的“流量分析”下,选中“启用流量分析”复选框。
< c2 >< c1 >< c0 >< sb0 >显示如何在 Azure 门户中为现有的流日志启用流量分析的截图。< /sb0 >< /c0 >< /c1 >< /c2 >
输入或选择下列值:
| 设置 |
价值 |
| 订阅 |
选择Log Analytics工作区的Azure订阅。 |
| Log Analytics工作区 |
选择Log Analytics工作区。 默认情况下,Azure门户会在 defaultresourcegroup-{Region} 资源组中创建 DefaultWorkspace-{SubscriptionID}-{Region} Log Analytics 工作区。 |
| 流量日志记录间隔 |
选择所需的处理间隔,可用选项包括:每小时和每 10 分钟。 默认处理间隔为每小时。 有关详细信息,请参阅流量分析。 |
选择保存以应用更改。
若要为流日志禁用流量分析,请执行前面的步骤 1-3,然后取消选中“启用流量分析”复选框,并选择“保存”。
Screenshot,演示如何在 Azure portal.
要在流日志资源上启用流量分析,请使用 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_chinaeast2' -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_chinaeast2' -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 'chinaeast2' --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 'chinaeast2' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account 'myStorageAccount' --traffic-analytics false
谨慎
流量分析在与 Log Analytics 工作区相同的资源组中创建和管理以 NWTA 为前缀的数据收集规则(DCR)和数据收集终端(DCE)资源。 如果对这些资源执行任何操作,流量分析可能无法按预期运行。
列出所有流日志
可以在 Azure 门户中列出一个订阅或多个订阅中的所有流日志。 还可以列出某个区域中的所有流日志。
在门户顶部的搜索框中,输入Network Watcher。 从搜索结果中选择 Network Watcher。
在“日志”下,选择“流日志”。
选择“订阅等于”筛选器,以选择一个或多个订阅。 可以应用“位置等于”等其他筛选器来列出某个区域的所有流日志。
<c2><c1><c0><sb0>截图,显示如何在 Azure 门户中列出现有流日志。</sb0></c0></c1></c2>
使用 Get-AzNetworkWatcherFlowLog cmdlet 列出订阅中特定区域内的所有流日志资源。
# Get all flow logs in China East 2 region.
Get-AzNetworkWatcherFlowLog -Location 'chinaeast2' | format-table
使用 az network watcher flow-log list 命令列出订阅中特定区域内的所有 NSG 流日志资源。
# Get all flow logs in China East 2 region.
az network watcher flow-log list --location 'chinaeast2' --out table
查看流日志资源的详细信息
可以查看流日志的详细信息。
在门户顶部的搜索框中,输入Network Watcher。 从搜索结果中选择 Network Watcher。
在“日志”下,选择“流日志”。
在 Network Watcher |流日志,选择要查看的流日志。
在“流日志设置”中,可以查看流日志资源的设置。
选择“取消”关闭设置页,无需进行更改。
使用 Get-AzNetworkWatcherFlowLog cmdlet 查看流日志资源的详细信息。
# Get the flow log details.
Get-AzNetworkWatcherFlowLog -NetworkWatcherName 'NetworkWatcher_chinaeast2' -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 'chinaeast2'
下载流日志
可以从要保存流日志的存储帐户下载流日志数据。
在门户顶部的搜索框中,输入“存储帐户”。 从搜索结果中选择“存储帐户”Storage accounts。
选择用于存储日志的存储帐户。
在“数据存储”下,选择“容器”。
选择“insights-logs-flowlogflowevent”容器。
在“insights-logs-flowlogflowevent”中,浏览文件夹层次结构,直到找到要下载的 文件PT1H.json。 虚拟网络流日志文件遵循以下路径:
https://{storageAccountName}.blob.core.chinacloudapi.cn/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。
屏幕截图演示如何从 Azure 门户中的存储帐户容器下载虚拟网络流日志数据文件。
若要从存储帐户下载虚拟网络流日志,请使用 Get-AzStorageBlobContent cmdlet。 有关详细信息,请参阅下载 blob。
虚拟网络流日志文件会保存到以下路径的存储帐户:
https://{storageAccountName}.blob.core.chinacloudapi.cn/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.chinacloudapi.cn/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
有关流日志结构的信息,请参阅虚拟网络流日志的日志格式。
禁用流日志
可以暂时禁用虚拟网络流日志,而无需删除它。 禁用流日志会停止关联虚拟网络的流日志记录。 但是,流日志资源会保留其所有设置和关联。 可以随时重新启用它,以恢复对配置的虚拟网络进行流日志记录。
在门户顶部的搜索框中,输入Network Watcher。 从搜索结果中选择 Network Watcher。
在“日志”下,选择“流日志”。
在 Network Watcher |流日志,选中要禁用的流日志复选框。
选择 “禁用”。
截图显示如何在 Azure 门户中禁用流日志。
注释
如果为流日志启用了流量分析,则必须先禁用流量分析,然后才能禁用流日志。 若要禁用流量分析,请参阅启用或禁用流量分析。
使用 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_chinaeast2' -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 'chinaeast2' --name 'myVNetFlowLog' --resource-group 'myResourceGroup' --vnet 'myVNet' --storage-account 'myStorageAccount'
注释
如果禁用启用了流量分析的流日志,则必须在同一命令中禁用流量分析,或在禁用流日志之前先禁用流量分析。
删除流日志
可以永久删除虚拟网络流日志。 删除流日志会删除其所有设置和关联。 要为同一资源重新开始流日志记录,必须为其创建新的流日志。
在门户顶部的搜索框中,输入Network Watcher。 从搜索结果中选择 Network Watcher。
在“日志”下,选择“流日志”。
在 Network Watcher |流日志,选中要删除的流日志复选框。
选择 删除。
截图显示如何在 Azure 门户中删除流日志。
要删除虚拟网络流日志资源,请使用 Remove-AzNetworkWatcherFlowLog cmdlet。
# Delete the VNet flow log.
Remove-AzNetworkWatcherFlowLog -Name 'myVNetFlowLog' -Location 'chinaeast2'
注释
删除流日志不会删除存储帐户中的流日志数据。 存储在存储帐户中的流日志数据遵循配置的保留策略,或在手动删除前一直存储在存储帐户中。
相关内容