إدارة سجلات تدفق NSG باستخدام واجهة برمجة تطبيقات REST
هام
في 30 سبتمبر 2027، سيتم إيقاف سجلات تدفق مجموعة أمان الشبكة (NSG). كجزء من هذا الإيقاف، لن تتمكن بعد الآن من إنشاء سجلات تدفق NSG جديدة بدءا من 30 يونيو 2025. نوصي بالترحيل إلى سجلات تدفق الشبكة الظاهرية، والتي تتغلب على قيود سجلات تدفق NSG. بعد تاريخ الإيقاف، لن يتم دعم تحليلات نسبة استخدام الشبكة الممكنة مع سجلات تدفق NSG، وسيتم حذف موارد سجلات تدفق NSG الموجودة في اشتراكاتك. ومع ذلك، لن يتم حذف سجلات سجلات تدفق NSG وستستمر في اتباع نهج الاستبقاء الخاصة بها. لمزيد من المعلومات، راجع الإعلان الرسمي.
يعد تسجيل تدفق مجموعة أمان الشبكة إحدى ميزات Azure Network Watcher التي تسمح لك بتسجيل معلومات حول حركة مرور IP المتدفقة من خلال مجموعة أمان الشبكة. لمزيد من المعلومات حول تسجيل تدفق مجموعة أمان الشبكة، راجع نظرة عامة على سجلات تدفق NSG.
توضح لك هذه المقالة كيفية استخدام واجهة برمجة تطبيقات REST لتمكين وتعطيل واستعلام سجلات التدفق باستخدام واجهة برمجة تطبيقات REST. يمكنك معرفة كيفية إدارة سجل تدفق NSG باستخدام مدخل Microsoft Azure أو PowerShell أو Azure CLI أو قالب ARM.
في هذه المقالة، ستتعلم كيفية:
- تمكين سجلات التدفق (الإصدار 2)
- تعطيل سجلات التدفق
- حالة سجلات تدفق الاستعلام
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.
- ARMClient. ARMClient هو أداة سطر أوامر بسيطة لاستدعاء واجهة برمجة تطبيقات Azure Resource Manager. لتثبيت الأداة، راجع ARMClient. للحصول على مواصفات مفصلة لسجلات تدفق NSG REST API، راجع سجلات التدفق - واجهة برمجة تطبيقات REST
هام
عند إجراء استدعاءات REST API إلى Network Watcher، يشير اسم مجموعة الموارد في طلب URI إلى مجموعة الموارد التي تحتوي على Network Watcher، وليس الموارد التي تقوم بتنفيذ إجراءات التشخيص عليها.
تسجيل الدخول باستخدام ARMClient
سجل الدخول إلى armclient باستخدام بيانات اعتماد Azure.
armclient login
سجّل موفر Insights
يجب تسجيل موفر Microsoft.Insights لتسجيل نسبة استخدام الشبكة المتدفقة بنجاح من خلال مجموعة أمان الشبكة. إذا لم تكن متأكدا مما إذا كان موفر Microsoft.Insights مسجلا، فاستخدم Providers - Register REST API لتسجيله.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"
تفعيل سجل تدفق مجموعة أمان شبكة الاتصال (NSG)
يظهر الأمر لتمكين الإصدار 2 من سجلات التدفق في المثال التالي. بالنسبة للإصدار 1، استبدل حقل 'version' ب '1':
$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
الرد الذي تم إرجاعه من المثال السابق كالتالي:
{
"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
}
}
}
إشعار
- Network Watchers - Set Flow Log Configuration REST API المستخدمة في المثال السابق، قديمة وقد يتم إهمالها قريبا.
- يوصى باستخدام سجلات التدفق الجديدة - إنشاء أو تحديث REST API لإنشاء سجلات التدفق أو تحديثها.
تعطيل سجلات تدفق NSG
استخدم المثال التالي لتعطيل سجلات التدفق. الاستدعاء هو نفسه تمكين سجلات التدفق، باستثناء تعيين خطأ للخاصية الممكنة.
$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
الرد الذي تم إرجاعه من المثال السابق كالتالي:
{
"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
}
}
}
إشعار
- Network Watchers - Set Flow Log Configuration REST API المستخدمة في المثال السابق، قديمة وقد يتم إهمالها قريبا.
- يوصى باستخدام سجلات التدفق الجديدة - إنشاء أو تحديث REST API لتعطيل سجلات التدفق وسجلات التدفق - حذف REST API لحذف مورد سجلات التدفق.
سجلات تدفق الاستعلام
يستعلم استدعاء REST التالي عن حالة سجلات التدفق على مجموعة أمان الشبكة.
$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
يوضح المثال التالي الاستجابة التي تم إرجاعها:
{
"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
}
}
}
إشعار
- تتطلب 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
الخطوات التالية
- لمعرفة كيفية استخدام نهج Azure المضمنة لتدقيق سجلات تدفق NSG أو نشرها، راجع إدارة سجلات تدفق NSG باستخدام نهج Azure.
- للتعرف على تحليلات نسبة استخدام الشبكة، راجع تحليلات نسبة استخدام الشبكة.