إدارة سجلات تدفق NSG باستخدام واجهة برمجة تطبيقات REST

يعد تسجيل تدفق مجموعة أمان الشبكة إحدى ميزات Azure Network Watcher التي تسمح لك بتسجيل معلومات حول حركة مرور IP المتدفقة من خلال مجموعة أمان الشبكة. لمزيد من المعلومات حول تسجيل تدفق مجموعة أمان الشبكة، راجع نظرة عامة على سجلات تدفق NSG.

توضح لك هذه المقالة كيفية استخدام واجهة برمجة تطبيقات REST لتمكين وتعطيل واستعلام سجلات التدفق باستخدام واجهة برمجة تطبيقات REST. يمكنك معرفة كيفية إدارة سجل تدفق NSG باستخدام مدخل Microsoft Azure أو PowerShell أو Azure CLI أو قالب ARM.

في هذه المقالة، ستتعلم كيفية:

  • تمكين سجلات التدفق (الإصدار 2)
  • تعطيل سجلات التدفق
  • حالة سجلات تدفق الاستعلام

المتطلبات الأساسية

هام

عند إجراء استدعاءات REST API إلى Network Watcher، يشير اسم مجموعة الموارد في طلب URI إلى مجموعة الموارد التي تحتوي على Network Watcher، وليس الموارد التي تقوم بتنفيذ إجراءات التشخيص عليها.

تسجيل الدخول باستخدام ARMClient

سجل الدخول إلى armclient باستخدام بيانات اعتماد Azure.

armclient login

سجّل موفر Insights

يجب تسجيل موفر Microsoft.Insights لتسجيل نسبة استخدام الشبكة المتدفقة بنجاح من خلال مجموعة أمان الشبكة. إذا لم تكن متأكدا مما إذا كان موفر Microsoft.Insights مسجلا، فاستخدم Providers - Register REST API لتسجيله.

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

تفعيل سجل تدفق مجموعة أمان شبكة الاتصال (NSG)

يظهر الأمر لتمكين الإصدار 2 من سجلات التدفق في المثال التالي. بالنسبة للإصدار 1، استبدل حقل 'version' ب '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

الرد الذي تم إرجاعه من المثال السابق كالتالي:

{
  "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
    }
  }
}

إشعار

تعطيل سجلات تدفق NSG

استخدم المثال التالي لتعطيل سجلات التدفق. الاستدعاء هو نفسه تمكين سجلات التدفق، باستثناء تعيين خطأ للخاصية الممكنة.

$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

الرد الذي تم إرجاعه من المثال السابق كالتالي:

{
  "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
    }
  }
}

إشعار

سجلات تدفق الاستعلام

يستعلم استدعاء REST التالي عن حالة سجلات التدفق على مجموعة أمان الشبكة.

$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

يوضح المثال التالي الاستجابة التي تم إرجاعها:

{
  "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
    }
  }
}

إشعار

  • تتطلب Network Watchers - Get Flow Log Status REST API المستخدمة في المثال السابق إذن قارئ إضافي في مجموعة الموارد الخاصة بمراقب الشبكة. بالإضافة إلى ذلك، واجهة برمجة التطبيقات هذه قديمة وقد يتم إهمالها قريبا.
  • يوصى باستخدام سجلات التدفق الجديدة - الحصول على واجهة برمجة تطبيقات REST للاستعلام عن سجلات التدفق.

تنزيل سجل التدفق

يتم تحديد موقع تخزين سجل التدفق عند الإنشاء. أداة ملائمة للوصول إلى سجلات التدفق المحفوظة في حساب تخزين هي Microsoft Azure Storage Explorer. لمزيد من المعلومات، راجع بدء استخدام Storage Explorer.

إذا تم تحديد حساب تخزين، يتم حفظ ملفات تسجيل الحزمة في حساب تخزين في الموقع التالي:

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

الخطوات التالية