前年的时候分享过两篇NSG Flow log相关的文档,忘记的可以翻一番
NSG Flow log对于一些做问题排查,或者要求有审计日志的场景都是很合适的,只不过NSG Flow log主要是基于NSG的,开启和维护会比较麻烦,现在微软推出了VNET Flow log,目前还在public preview阶段,今天先来大概介绍下
首先来看下VNET Flow log和NSG Flow log的区别,以便我们知道到底应该选择哪种产品
- VNet 流日志通过允许在虚拟网络中启用日志记录来简化流量监视范围,确保记录流经虚拟网络中所有受支持的工作负载的流量。
- VNet 流日志还省去了启用多级流日志记录的麻烦,而在 NSG 流日志 中,需在子网和网络接口 (NIC) 中配置网络安全组。
- VNet 流日志还支持识别 Azure Virtual Network Manager 安全管理规则允许/拒绝的流量
- VNet 流日志还支持在启用虚拟网络加密的情况下评估网络流量的加密状态。
其次,在收费这方面,VNET Flow log并不是个永久免费的产品,VNet Flow log当前不计费。 未来,VNet 流日志将按“收集的网络日志量”(以千兆字节为单位)收费,并为每个订阅附送 5 GB/月的免费层。
了解了这些基本内容之后,再来看看具体怎么用,之前有提到过VNET Flow log目前在Global Azure还处于public preview的阶段,21v就更不用说了,如果想提前体验的话,需要自己到https://aka.ms/VNetflowlogspreviewsignup来申请
另外,目前public preview阶段也不是所有的region都可以使用这个功能,VNET Flow log目前只在以下地区可用
- 美国东部 2 EUAP
- 美国中部 EUAP
- 美国中西部
- 美国东部
- 美国东部 2
- 美国西部
- 美国西部 2
如果申请到了权限的话,要开启就比较简单了,VNET Flow log可以通过PowerShell或者CLI来管理,另外因为这个功能同样也是基于storage account的,所以需要提前准备好storage account,如果想结合traffic analysis来用的话,还需要准备好log analytics workspace
PowerShell
# 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
CLI
# Create a VNet flow log.
az network watcher flow-log create --location eastus --resource-group myResourceGroup --name myVNetFlowLog --vnet myVNet --storage-account myStorageAccount
如果没有申请public preview权限的话,部署时候就会收到以下报错