Dela via


Hantera NSG-flödesloggar med hjälp av REST API

Flödesloggning för nätverkssäkerhetsgrupp är en funktion i Azure Network Watcher som gör att du kan logga information om IP-trafik som flödar genom en nätverkssäkerhetsgrupp. Mer information om flödesloggning för nätverkssäkerhetsgrupper finns i Översikt över NSG-flödesloggar.

Den här artikeln visar hur du använder REST-API:et för att aktivera, inaktivera och köra frågor mot flödesloggar med hjälp av REST-API:et. Du kan lära dig hur du hanterar en NSG-flödeslogg med hjälp av Azure-portalen, PowerShell, Azure CLI eller ARM-mallen.

I den här artikeln får du lära dig hur du:

  • Aktivera flödesloggar (version 2)
  • Inaktivera flödesloggar
  • Status för frågeflödesloggar

Förutsättningar

Viktigt!

När du gör REST API-anrop till Network Watcher refererar resursgruppens namn i begärande-URI:n till resursgruppen som innehåller Network Watcher, inte de resurser som du utför diagnostikåtgärderna på.

Logga in med ARMClient

Logga in på armclient med dina Azure-autentiseringsuppgifter.

armclient login

Registrera Insights-providern

Microsoft.Insights-providern måste vara registrerad för att kunna logga trafik som flödar via en nätverkssäkerhetsgrupp. Om du inte är säker på om Microsoft.Insights-providern är registrerad använder du Providers – Registrera REST API för att registrera den.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"

Aktivera NSG-flödesloggar

Kommandot för att aktivera flödesloggar version 2 visas i följande exempel. För version 1 ersätter du fältet "version" med "1":

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'true',
    'retentionPolicy' : {
			days: 5,
			enabled: true
		},
    'format': {
        'type': 'JSON',
        'version': 2
    }
	}
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody

Svaret som returneras från föregående exempel är följande:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Kommentar

Inaktivera NSG-flödesloggar

Använd följande exempel för att inaktivera flödesloggar. Anropet är detsamma som att aktivera flödesloggar, förutom att false har angetts för den aktiverade egenskapen.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'false',
    'retentionPolicy' : {
			days: 5,
			enabled: true
		},
    'format': {
        'type': 'JSON',
        'version': 2
    }
	}
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody

Svaret som returneras från föregående exempel är följande:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": false,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Kommentar

Frågeflödesloggar

Följande REST-anrop frågar statusen för flödesloggar i en nätverkssäkerhetsgrupp.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/queryFlowLogStatus?api-version=2022-11-01" $requestBody

I följande exempel visas svaret som returneras:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
   "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Kommentar

Ladda ned en flödeslogg

Lagringsplatsen för en flödeslogg definieras när den skapas. Ett praktiskt verktyg för att komma åt flödesloggar som sparats på ett lagringskonto är Microsoft Azure Storage Explorer. Mer information finns i Komma igång med Storage Explorer.

Om ett lagringskonto anges sparas paketinsamlingsfiler till ett lagringskonto på följande plats:

https://{storageAccountName}.blob.core.windows.net/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

Nästa steg