快速入门:使用 Bicep 文件配置 Azure 网络观察程序 NSG 流日志

本快速入门介绍如何使用 Bicep 文件启用 NSG 流日志

Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 它提供简明的语法、可靠的类型安全性以及对代码重用的支持。 Bicep 会针对你的 Azure 基础结构即代码解决方案提供最佳创作体验。

先决条件

查阅 Bicep 文件

本快速入门使用 Azure 快速入门模板中的 创建 NSG 流日志 Bicep 模板。

@description('Name of the Network Watcher attached to your subscription. Format: NetworkWatcher_<region_name>')
param networkWatcherName string = 'NetworkWatcher_${location}'

@description('Name of your Flow log resource')
param flowLogName string = 'FlowLog1'

@description('Region where you resources are located')
param location string = resourceGroup().location

@description('Resource ID of the target NSG')
param existingNSG string

@description('Retention period in days. Default is zero which stands for permanent retention. Can be any Integer from 0 to 365')
@minValue(0)
@maxValue(365)
param retentionDays int = 0

@description('FlowLogs Version. Correct values are 1 or 2 (default)')
@allowed([
  1
  2
])
param flowLogsVersion int = 2

@description('Storage Account type')
@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_ZRS'
])
param storageAccountType string = 'Standard_LRS'

var storageAccountName = 'flowlogs${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

resource networkWatcher 'Microsoft.Network/networkWatchers@2022-01-01' = {
  name: networkWatcherName
  location: location
  properties: {}
}

resource flowLog 'Microsoft.Network/networkWatchers/flowLogs@2022-01-01' = {
  name: '${networkWatcherName}/${flowLogName}'
  location: location
  properties: {
    targetResourceId: existingNSG
    storageId: storageAccount.id
    enabled: true
    retentionPolicy: {
      days: retentionDays
      enabled: true
    }
    format: {
      type: 'JSON'
      version: flowLogsVersion
    }
  }
}

Bicep 文件中定义了以下资源:

前面的示例中突出显示的代码显示了 NSG 流日志资源定义。

部署 Bicep 文件

本快速入门假设你有一个可以启用流日志记录的网络安全组。

  1. 将该 Bicep 文件另存为本地计算机上的 main.bicep。

  2. 使用 Azure CLI 或 Azure PowerShell 来部署该 Bicep 文件。

    az group create --name exampleRG --location chinaeast
    az deployment group create --resource-group exampleRG --template-file main.bicep
    

    系统会提示输入现有网络安全组的资源 ID。 网络安全组资源 ID 的语法为:

    "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/networkSecurityGroups/<network-security-group-name>"
    

部署完成后,应会看到一条指出部署成功的消息。

验证部署

可通过两个选项来查看部署是否成功:

  • 你的控制台显示 ProvisioningStateSucceeded
  • 转到 NSG 流日志门户页确认所做的更改。

如果部署出现问题,请参阅排查使用 Azure 资源管理器时的常见 Azure 部署错误

清理资源

可以使用完整部署模式删除 Azure 资源。 若要删除流日志资源,请在完整模式下指定部署,而不包含要删除的资源。 详细了解完整部署模式

还可以在 Azure 门户中禁用 NSG 流日志:

  1. 登录 Azure 门户。

  2. 在门户顶部的搜索框中,输入“网络观察程序”。 在搜索结果中,选择“网络观察程序”。

  3. 在“日志”下,选择“流日志”。

  4. 在流日志列表中,选择要禁用的流日志。

  5. 选择禁用

若要了解如何直观地显示 NSG 流日志数据,请参阅: