Краткое руководство. Настройка журналов потоков NSG в Azure Наблюдатель за сетями с помощью шаблона Azure Resource Manager (ARM)

В этом кратком руководстве описано, как включить журналы потоков NSG с помощью шаблона Azure Resource Manager (ARM) и Azure PowerShell. Дополнительные сведения см. в статье "Что такое Azure Resource Manager" и журналы потоков NSG.

Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.

Мы начнем с обзора свойств объекта журнала потоков NSG. Будут предоставлены примеры шаблонов. Затем мы будем использовать локальный экземпляр Azure PowerShell для развертывания шаблона.

Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. На портале Azure откроется шаблон.

Кнопка для развертывания шаблона Resource Manager в Azure.

Необходимые компоненты

Учетная запись Azure с активной подпиской. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начать работу.

Изучение шаблона

Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.9.1.41621",
      "templateHash": "14580725600461536175"
    }
  },
  "parameters": {
    "networkWatcherName": {
      "type": "string",
      "defaultValue": "[format('NetworkWatcher_{0}', parameters('location'))]",
      "metadata": {
        "description": "Name of the Network Watcher attached to your subscription. Format: NetworkWatcher_<region_name>"
      }
    },
    "flowLogName": {
      "type": "string",
      "defaultValue": "FlowLog1",
      "metadata": {
        "description": "Name of your Flow log resource"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Region where you resources are located"
      }
    },
    "existingNSG": {
      "type": "string",
      "metadata": {
        "description": "Resource ID of the target NSG"
      }
    },
    "retentionDays": {
      "type": "int",
      "defaultValue": 0,
      "maxValue": 365,
      "minValue": 0,
      "metadata": {
        "description": "Retention period in days. Default is zero which stands for permanent retention. Can be any Integer from 0 to 365"
      }
    },
    "flowLogsVersion": {
      "type": "int",
      "defaultValue": 2,
      "allowedValues": [
        1,
        2
      ],
      "metadata": {
        "description": "FlowLogs Version. Correct values are 1 or 2 (default)"
      }
    },
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    }
  },
  "variables": {
    "storageAccountName": "[format('flowlogs{0}', uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    },
    {
      "type": "Microsoft.Network/networkWatchers",
      "apiVersion": "2022-01-01",
      "name": "[parameters('networkWatcherName')]",
      "location": "[parameters('location')]",
      "properties": {}
    },
    {
      "type": "Microsoft.Network/networkWatchers/flowLogs",
      "apiVersion": "2022-01-01",
      "name": "[format('{0}/{1}', parameters('networkWatcherName'), parameters('flowLogName'))]",
      "location": "[parameters('location')]",
      "properties": {
        "targetResourceId": "[parameters('existingNSG')]",
        "storageId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
        "enabled": true,
        "retentionPolicy": {
          "days": "[parameters('retentionDays')]",
          "enabled": true
        },
        "format": {
          "type": "JSON",
          "version": "[parameters('flowLogsVersion')]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
      ]
    }
  ]
}

В шаблоне определены следующие ресурсы:

Выделенный код в предыдущем примере показывает определение ресурса журналов потоков группы безопасности сети.

Развертывание шаблона

Для выполнения действий, описанных в этом учебнике, предполагается, что у вас есть группа ресурсов и NSG, для которых можно включить ведение журнала потоков.

Вы можете сохранить любой из примеров шаблонов, которые показаны в этой статье, локально в виде файла azuredeploy.json. Обновите значения свойств, чтобы они указывали на действительные ресурсы в вашей подписке.

Чтобы развернуть шаблон, выполните следующую команду в PowerShell:

$context = Get-AzSubscription -SubscriptionId <subscription Id>
Set-AzContext $context
New-AzResourceGroupDeployment -Name EnableFlowLog -ResourceGroupName NetworkWatcherRG `
    -TemplateFile "C:\MyTemplates\azuredeploy.json"

Примечание.

Эти команды развертывают ресурс в группе ресурсов NetworkWatcherRG , а не в группу ресурсов, содержащую группу безопасности сети.

Проверка развертывания

Существует две возможности проверить успешность развертывания:

Если возникнут проблемы с развертыванием, см. статью Устранение распространенных ошибок развертывания в Azure с помощью Azure Resource Manager.

Очистка ресурсов

Вы можете удалить ресурсы Azure с помощью режима полного развертывания. Чтобы удалить ресурс журнала потоков, укажите развертывание в полном режиме без включения ресурса, который требуется удалить. Ознакомьтесь с дополнительными сведениями о завершении режима развертывания.

Вы также можете отключить или удалить журнал потоков в портал Azure:

  1. В поле поиска в верхней части портала введите наблюдателя за сетями. В результатах поиска выберите Наблюдатель за сетями.

  2. В разделе "Журналы" выберите журналы потоков.

  3. В Наблюдатель за сетями | Журналы потоков выберите проверка box журнала потока, который требуется удалить.

  4. Выберите "Отключить " или "Удалить". Дополнительные сведения см. в разделе "Отключение журнала потока" или "Удаление журнала потока".

Из этого краткого руководства вы узнали, как включить журналы потоков NSG с помощью шаблона ARM. Далее вы узнаете, как визуализировать данные потока NSG с помощью аналитики трафика: