REST API kullanarak NSG akış günlüklerini yönetme

Önemli

30 Eylül 2027'de ağ güvenlik grubu (NSG) akış günlükleri kullanımdan kaldırılacaktır. Bu kullanımdan kaldırmanın bir parçası olarak 30 Haziran 2025'den itibaren yeni NSG akış günlükleri oluşturamayacaksınız. NSG akış günlüklerinin sınırlamalarını aşan sanal ağ akış günlüklerine geçiş yapmanızı öneririz. Kullanımdan kaldırma tarihinden sonra NSG akış günlükleriyle etkinleştirilen trafik analizi artık desteklenmeyecektir ve aboneliklerinizdeki mevcut NSG akış günlükleri kaynakları silinir. Ancak NSG akış günlükleri kayıtları silinmez ve ilgili bekletme ilkelerini izlemeye devam eder. Daha fazla bilgi için resmi duyuruya bakın.

Ağ güvenlik grubu akış günlüğü, Azure Ağ İzleyicisi'nin bir ağ güvenlik grubu üzerinden akan IP trafiği hakkındaki bilgileri günlüğe kaydetmenize olanak tanıyan bir özelliğidir. Ağ güvenlik grubu akış günlüğü hakkında daha fazla bilgi için bkz . NSG akış günlüklerine genel bakış.

Bu makalede REST API kullanarak akış günlüklerini etkinleştirmek, devre dışı bırakmak ve sorgulamak için REST API'nin nasıl kullanılacağı gösterilmektedir. Azure portalı, PowerShell, Azure CLI veya ARM şablonunu kullanarak NSG akış günlüğünü yönetmeyi öğrenebilirsiniz.

Bu makalede şunların nasıl yapılacağını öğreneceksiniz:

  • Akış günlüklerini etkinleştirme (Sürüm 2)
  • Akış günlüklerini devre dışı bırakma
  • Sorgu akışı günlükleri durumu

Önkoşullar

Önemli

Ağ İzleyicisi REST API çağrıları yaptığınızda, istek URI'sindeki kaynak grubu adı tanılama eylemlerini gerçekleştirdiğiniz kaynaklara değil, Ağ İzleyicisi içeren kaynak grubuna başvurur.

ARMClient ile oturum açma

Azure kimlik bilgilerinizle armclient'da oturum açın.

armclient login

Insights sağlayıcısını kaydetme

Bir ağ güvenlik grubu üzerinden akan trafiğin başarıyla günlüğe kaydedilmesi için Microsoft.Insights sağlayıcısının kaydedilmesi gerekir. Microsoft.Insights sağlayıcısının kayıtlı olup olmadığından emin değilseniz, kaydetmek için Sağlayıcılar - REST API'yi kaydetme seçeneğini kullanın.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"

NSG akış günlüklerini etkinleştirme

Akış günlükleri sürüm 2'yi etkinleştirme komutu aşağıdaki örnekte gösterilmiştir. Sürüm 1 için 'version' alanını '1' ile değiştirin:

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{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

Önceki örnekten döndürülen yanıt aşağıdaki gibidir:

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

Not

NSG akış günlüklerini devre dışı bırakma

Akış günlüklerini devre dışı bırakmak için aşağıdaki örneği kullanın. Çağrı, etkin özellik için false'un ayarlanması dışında akış günlüklerini etkinleştirmeyle aynıdır.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{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

Önceki örnekten döndürülen yanıt aşağıdaki gibidir:

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

Not

Akış günlüklerini sorgulama

Aşağıdaki REST çağrısı, bir ağ güvenlik grubundaki akış günlüklerinin durumunu sorgular.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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

Aşağıdaki örnekte döndürülen yanıt gösterilmektedir:

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

Not

Akış günlüğünü indirme

Akış günlüğünün depolama konumu oluşturma sırasında tanımlanır. Depolama hesabına kaydedilen akış günlüklerine erişmek için kullanışlı bir araç Microsoft Azure Depolama Gezgini. Daha fazla bilgi için bkz. Depolama Gezgini kullanmaya başlama.

Bir depolama hesabı belirtilirse paket yakalama dosyaları aşağıdaki konumdaki bir depolama hesabına kaydedilir:

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

Sonraki adımlar

  • NSG akış günlüklerini denetlemek veya dağıtmak için Azure yerleşik ilkelerini kullanmayı öğrenmek için bkz. Azure İlkesi kullanarak NSG akış günlüklerini yönetme.
  • Trafik analizi hakkında bilgi edinmek için bkz . Trafik analizi.