使用 PowerShell 配置网络安全组流日志

网络安全组流日志是网络观察程序的一项功能,可用于查看有关通过网络安全组的入口和出口 IP 流量的信息。 这些流日志以 json 格式编写,并基于每个规则显示出站和入站流、流所适用的 NIC、有关流的 5 元组信息(源/目标 IP、源/目标端口、协议),以及是允许还是拒绝流量。

注册 Insights 提供程序

要使流日志记录正常工作,必须注册 Microsoft.Insights 提供程序。 如果不确定 Microsoft.Insights 提供程序是否已注册,请运行以下脚本。

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Insights

启用网络安全组流日志

以下示例显示了用于启用流日志的命令:

$NW = Get-AzurermNetworkWatcher -ResourceGroupName NetworkWatcherRg -Name NetworkWatcher_chinaeast
$nsg = Get-AzureRmNetworkSecurityGroup -ResourceGroupName nsgRG -Name nsgName
$storageAccount = Get-AzureRmStorageAccount -ResourceGroupName StorageRG -Name contosostorage123
Get-AzureRmNetworkWatcherFlowLogStatus -NetworkWatcher $NW -TargetResourceId $nsg.Id
Set-AzureRmNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $true

指定的存储帐户不能配置有仅限 Azure 服务或特定虚拟网络进行网络访问的网络规则。 存储帐户可以与启用流日志的 NSG 使用相同或不同的 Azure 订阅。 如果使用不同的订阅,它们必须都与同一 Azure Active Directory 租户相关联。 用于每个订阅的帐户必须有必要的权限

禁用网络安全组流日志

使用以下示例禁用流日志:

Set-AzureRmNetworkWatcherConfigFlowLog -NetworkWatcher $NW -TargetResourceId $nsg.Id -StorageAccountId $storageAccount.Id -EnableFlowLog $false

下载流日志

流日志的存储位置是在创建时定义的。 用于访问这些保存到存储帐户的流日志的便利工具是 Azure 存储资源管理器,下载地址为:http://storageexplorer.com/

如果指定了存储帐户,则数据包捕获文件将保存到以下位置的存储帐户:

https://{storageAccountName}.blob.core.chinacloudapi.cn/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{nsgName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

有关日志结构的信息,请访问网络安全组流日志概述

后续步骤

了解如何使用 PowerBI 直观地显示 NSG 流日志

了解如何使用开源工具直观地显示 NSG 流日志