Quickstart: NSG-stroomlogboeken van Azure Network Watcher configureren met behulp van een ARM-sjabloon (Azure Resource Manager)

In deze quickstart leert u hoe u NSG-stroomlogboeken inschakelt met behulp van een ARM-sjabloon (Azure Resource Manager) en Azure PowerShell. Zie Wat is Azure Resource Manager? en overzicht van NSG-stroomlogboeken voor meer informatie.

Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

We beginnen met een overzicht van de eigenschappen van het object NSG-stroomlogboek. Wij zorgen voor voorbeeldsjablonen. Vervolgens gebruiken we een lokale Azure PowerShell-instantie om de sjabloon te implementeren.

Als uw omgeving voldoet aan de vereisten en u benkend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren naar Azure. De sjabloon wordt in Azure Portal geopend.

Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

Vereisten

Een Azure-account met een actief abonnement. Als u nog geen abonnement hebt, maakt u een gratis account voordat u begint.

De sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-quickstart-sjablonen.

{
  "$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'))]"
      ]
    }
  ]
}

De volgende resources zijn gedefinieerd in de sjabloon:

De gemarkeerde code in het voorgaande voorbeeld toont een resourcedefinitie voor NSG-stroomlogboeken.

De sjabloon implementeren

In deze zelfstudie wordt ervan uitgegaan dat u een bestaande resourcegroep hebt en een NSG waarvoor u stroomlogboekregistratie kunt inschakelen.

U kunt de voorbeeldsjablonen die in dit artikel worden weergegeven, lokaal opslaan als azuredeploy.json. Werk de eigenschapswaarden bij, zodat ze naar geldige resources in uw abonnement wijzen.

Voer de volgende opdracht in Azure PowerShell uit om de sjabloon te implementeren:

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

Notitie

Met deze opdrachten wordt een resource geïmplementeerd in de resourcegroep NetworkWatcherRG en niet in de resourcegroep die de netwerkbeveiligingsgroep bevat.

De implementatie valideren

U hebt twee opties om te controleren of uw implementatie is geslaagd:

Als er problemen zijn met de implementatie, raadpleegt u Veelvoorkomende fouten in Azure-implementaties met Azure Resource Manager oplossen.

Resources opschonen

U kunt Azure-resources verwijderen via de implementatiemodus Volledig. Als u een stroomlogboekresource wilt verwijderen, geeft u een implementatie op in de volledige modus zonder de resource op te geven die u wilt verwijderen. Lees meer over de implementatiemodus Volledig.

U kunt een stroomlogboek ook uitschakelen of verwijderen in Azure Portal:

  1. Voer in het zoekvak boven aan de portal netwerk-watcher in. Selecteer Network Watcher in de zoekresultaten.

  2. Selecteer stroomlogboeken onder Logboeken.

  3. In Network Watcher | Stroomlogboeken, schakel het selectievakje in van het stroomlogboek dat u wilt verwijderen.

  4. Selecteer Uitschakelen of Verwijderen. Zie Een stroomlogboek uitschakelen of Een stroomlogboek verwijderen voor meer informatie.

In deze quickstart hebt u geleerd hoe u NSG-stroomlogboeken kunt inschakelen met behulp van een ARM-sjabloon. Leer vervolgens hoe u uw NSG-stroomgegevens kunt visualiseren met behulp van verkeersanalyse: