إرسال بيانات سجل نشاط Azure Monitor

سجل نشاط Azure Monitor هو سجل نظام أساسي يوفر نظرة ثاقبة على الأحداث على مستوى الاشتراك. يتضمن سجل النشاط معلومات مثل عند تعديل مورد أو بدء تشغيل جهاز ظاهري. يمكنك عرض سجل النشاط في مدخل Microsoft Azure أو استرداد الإدخالات باستخدام PowerShell وAzure CLI. توفر هذه المقالة معلومات حول كيفية عرض سجل النشاط وإرساله إلى وجهات مختلفة.

إنشاء إعداد تشخيص لإرسال سجل النشاط إلى موقع واحد أو أكثر من هذه المواقع:

  • مساحة عمل Log Analytics للاستعلام والتنبيه الأكثر تعقيدا
  • مراكز أحداث Azure لإعادة توجيه السجلات خارج Azure.
  • تخزين Azure لأرشفة أرخص وطويلة الأجل.

للحصول على تفاصيل حول إنشاء، راجع إنشاء إعدادات تشخيص لإرسال سجلات النظام الأساسي والمقاييس إلى وجهات مختلفة.

تلميح

إرسال سجلات النشاط إلى مساحة عمل Log Analytics للمزايا التالية:

إشعار

  • يتم إنشاء الإدخالات في سجل النشاط بواسطة النظام ولا يمكن تغييرها أو حذفها.
  • تمثل الإدخالات في سجل النشاط تغييرات مستوى التحكم مثل إعادة تشغيل الجهاز الظاهري، يجب كتابة أي إدخالات غير ذات صلة في سجلات موارد Azure
  • عادة ما تكون الإدخالات في سجل النشاط نتيجة للتغييرات (إنشاء عمليات أو تحديثها أو حذفها) أو إجراء تم بدؤه. لا يتم عادة التقاط العمليات التي تركز على قراءة تفاصيل المورد.

إرسال إلى مساحة عمل Log Analytics

أرسل سجل النشاط إلى مساحة عمل Log Analytics لتمكين ميزةAzure Monitor Logs، حيث:

  • اربط بيانات سجل النشاط ببيانات المراقبة الأخرى التي جمعها Azure Monitor.
  • ادمج إدخالات السجل من اشتراكات Azure المتعددة والمستأجرين في موقع واحد لتحليلها معاً.
  • استخدم استعلامات السجل لإجراء تحليل معقد والحصول على نتيجة معرفية حول إدخالات سجل النشاط.
  • استخدم تنبيهات بحث السجل مع إدخالات النشاط لمنطق تنبيه أكثر تعقيدا.
  • إدخالات سجل نشاط Microsoft Store لمدة أطول من فترة الاحتفاظ بسجل النشاط.
  • لا توجد رسوم مفروضة على نقل البيانات لبيانات سجل النشاط المخزنة في مساحة عمل Log Analytics.
  • فترة الاستبقاء الافتراضية في Log Analytics هي 90 يوما

حدد Export Activity Logs لترسل سجل النشاط إلى مساحة عمل Log Analytics.

لقطة شاشة توضح سجلات تصدير النشاط.

بإمكانك إرسال سجل النشاط من أي اشتراك فردي لما يصل إلى خمس مساحات عمل.

يتم تخزين بيانات سجل النشاط في مساحة عمل Log Analytics في جدول يسمى AzureActivity يمكنك استرداده باستخدام استعلام سجل في Log Analytics. يختلف هيكل هذا الجدول اعتماداً على فئة إدخال السجل. للحصول على وصف لخصائص الجدول، راجع مرجع بيانات Azure Monitor.

على سبيل المثال، لعرض عدد سجلات سجل النشاط لكل فئة، استخدم الاستعلام التالي:

AzureActivity
| summarize count() by CategoryValue

لتسترد جميع السجلات في الفئة الإدارية، استخدم الاستعلام التالي:

AzureActivity
| where CategoryValue == "Administrative"

هام

في بعض السيناريوهات، من الممكن أن يكون للقيم في حقول AzureActivity أغلفة مختلفة عن القيم المكافئة بخلاف ذلك. انتبه عند الاستعلام عن البيانات في AzureActivity لاستخدام عوامل التشغيل غير الحساسة لحالة الأحرف لمقارنات السلاسل، أو استخدم دالة عددية لفرض حقل على غلاف موحد قبل أي مقارنات. على سبيل المثال، استخدم الدالة tolower() في حقل لإجباره على أن يكون دائما صغيرا أو عامل التشغيل =~ عند إجراء مقارنة سلسلة.

أرسل إلى مراكز الأحداث

أرسل سجل النشاط إلى مراكز الأحداث من Azure لإرسال إدخالات خارج Azure، على سبيل المثال إلى جهة خارجية SIEM أو حلول تحليلات السجل الأخرى. يتم استهلاك أحداث سجل النشاط من مراكز الأحداث بتنسيق JSON مع عنصر records يحتوي على السجلات في كل بيانات أساسية. يعتمد المخطط على الفئة ويوصف في مخطط حدث سجل نشاط Azure.

يرد فيما يلي نموذج لبيانات المخرجات من مراكز الأحداث لسجل النشاط:

{
    "records": [
        {
            "time": "2019-01-21T22:14:26.9792776Z",
            "resourceId": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
            "operationName": "microsoft.support/supporttickets/write",
            "category": "Write",
            "resultType": "Success",
            "resultSignature": "Succeeded.Created",
            "durationMs": 2826,
            "callerIpAddress": "111.111.111.11",
            "correlationId": "c776f9f4-36e5-4e0e-809b-c9b3c3fb62a8",
            "identity": {
                "authorization": {
                    "scope": "/subscriptions/s1/resourceGroups/MSSupportGroup/providers/microsoft.support/supporttickets/115012112305841",
                    "action": "microsoft.support/supporttickets/write",
                    "evidence": {
                        "role": "Subscription Admin"
                    }
                },
                "claims": {
                    "aud": "https://management.core.windows.net/",
                    "iss": "https://sts.windows.net/72f988bf-86f1-41af-91ab-2d7cd011db47/",
                    "iat": "1421876371",
                    "nbf": "1421876371",
                    "exp": "1421880271",
                    "ver": "1.0",
                    "http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
                    "http://schemas.microsoft.com/claims/authnmethodsreferences": "pwd",
                    "http://schemas.microsoft.com/identity/claims/objectidentifier": "2468adf0-8211-44e3-95xq-85137af64708",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn": "admin@contoso.com",
                    "puid": "20030000801A118C",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "9vckmEGF7zDKk1YzIY8k0t1_EAPaXoeHyPRn6f413zM",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname": "John",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname": "Smith",
                    "name": "John Smith",
                    "groups": "cacfe77c-e058-4712-83qw-f9b08849fd60,7f71d11d-4c41-4b23-99d2-d32ce7aa621c,31522864-0578-4ea0-9gdc-e66cc564d18c",
                    "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": " admin@contoso.com",
                    "appid": "c44b4083-3bq0-49c1-b47d-974e53cbdf3c",
                    "appidacr": "2",
                    "http://schemas.microsoft.com/identity/claims/scope": "user_impersonation",
                    "http://schemas.microsoft.com/claims/authnclassreference": "1"
                }
            },
            "level": "Information",
            "location": "global",
            "properties": {
                "statusCode": "Created",
                "serviceRequestId": "50d5cddb-8ca0-47ad-9b80-6cde2207f97c"
            }
        }
    ]
}

إرسال إلى تخزين Azure

أرسل سجل النشاط إلى حساب Azure Storage إذا كنت تريد الاحتفاظ ببيانات السجل الخاصة بك لمدة أطول من 90 يوما للتدقيق أو التحليل الثابت أو النسخ الاحتياطي. إذا كنت مطالبًا باستبقاء بأحداثك لمدة 90 يومًا أو أقل، فلن تحتاج إلى إعداد أرشفة لحساب التخزين. يتم استبقاء أحداث سجل النشاط في Azure لمدة 90 يوما.

عند إرسال سجل النشاط إلى Azure، تُنشأ حاوية تخزين في حساب التخزين بمجرد وقوع الحدث. تستخدم النقاط الموجودة في الحاوية اصطلاح التسمية التالي:

insights-activity-logs/resourceId=/SUBSCRIPTIONS/{subscription ID}/y={four-digit numeric year}/m={two-digit numeric month}/d={two-digit numeric day}/h={two-digit 24-hour clock hour}/m=00/PT1H.json

على سبيل المثال، قد يكون لنقطة تخزين البيانات الثنائية كبيرة الحجم اسم مشابه لما يلي:

insights-activity-logs/resourceId=/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/y=2020/m=06/d=08/h=18/m=00/PT1H.json

يحتوي كل كائن ثنائي كبير الحجم PT1H.json على كائن JSON مع أحداث من ملفات السجل التي تم تلقيها خلال الساعة المحددة في عنوان URL للكائن الثنائي كبير الحجم. خلال الساعة الحالية، يتم إلحاق الأحداث بملف PT1H.json عند تلقيها، بغض النظر عن وقت إنشائها. قيمة الدقيقة في عنوان URL، m=00 دائما ما يتم 00 إنشاء الكائنات الثنائية كبيرة الحجم على أساس كل ساعة.

يخزن كل حدث في ملف PT1H.json بالتنسيق التالي. يستخدم هذا التنسيق مخطط مستوى أعلى شائع ولكنه فريد لكل فئة، كما هو موضح في مخطط سجل النشاط.

{ "time": "2020-06-12T13:07:46.766Z", "resourceId": "/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/MV-VM-01", "correlationId": "0f0cb6b4-804b-4129-b893-70aeeb63997e", "operationName": "Microsoft.Resourcehealth/healthevent/Updated/action", "level": "Information", "resultType": "Updated", "category": "ResourceHealth", "properties": {"eventCategory":"ResourceHealth","eventProperties":{"title":"This virtual machine is starting as requested by an authorized user or process. It will be online shortly.","details":"VirtualMachineStartInitiatedByControlPlane","currentHealthStatus":"Unknown","previousHealthStatus":"Unknown","type":"Downtime","cause":"UserInitiated"}}}

طرق أخرى لاسترداد أحداث سجلّ النشاط

كما يمكنك الوصول إلى أحداث سجل النشاط باستخدام الطرق التالية:

طرق الجمع القديمة

إشعار

  • تم استخدام حل سجلات نشاط Azure لإعادة توجيه سجلات النشاط إلى Azure Log Analytics. يتم إيقاف هذا الحل في 15 سبتمبر 2026 وسيتم تحويله تلقائيا إلى إعدادات التشخيص.

إذا كنت تجمع سجلات النشاط باستخدام أسلوب المجموعة القديمة، نوصي بتصدير سجلات النشاط إلى مساحة عمل Log Analytics وتعطيل المجموعة القديمة باستخدام مصادر البيانات - حذف واجهة برمجة التطبيقات كما يلي:

  1. سرد كافة مصادر البيانات المتصلة بمساحة العمل باستخدام مصادر البيانات - سرد حسب واجهة برمجة تطبيقات مساحة العمل وتصفية سجلات النشاط عن طريق تعيين kind eq 'AzureActivityLog'.

    لقطة شاشة توضح تكوين مصادر البيانات - سرد حسب واجهة برمجة تطبيقات مساحة العمل.

  2. انسخ اسم الاتصال الذي تريد تعطيله من استجابة واجهة برمجة التطبيقات.

    لقطة شاشة توضح معلومات الاتصال التي تريد  نسخها من إخراج مصادر البيانات - سرد حسب واجهة برمجة تطبيقات مساحة العمل.

  3. استخدم مصادر البيانات - حذف واجهة برمجة التطبيقات لإيقاف تجميع سجلات النشاط للمورد المحدد.

    لقطة شاشة لتكوين مصادر البيانات - حذف واجهة برمجة التطبيقات.

إدارة ملفات تعريف السجل القديمة - الإيقاف

إشعار

  • تم استخدام ملفات تعريف السجلات لإعادة توجيه سجلات النشاط إلى حسابات التخزين ومراكز الأحداث. يتم إيقاف هذه الطريقة في 15 سبتمبر 2026.
  • إذا كنت تستخدم هذا الأسلوب، فانتقل إلى إعدادات التشخيص قبل 15 سبتمبر 2025، عندما سنتوقف عن السماح بإنشاءات جديدة من ملفات تعريف السجل.

ملفات تعريف السجل هي الطريقة القديمة لإرسال سجل النشاط إلى موقع التخزين أو مراكز الأحداث. إذا كنت تستخدم هذا الأسلوب، فانتقل إلى إعدادات التشخيص، التي توفر وظائف وتناسقا أفضل مع سجلات الموارد.

إذا كان ملف تعريف السجل موجودا بالفعل، يجب أولا إزالة ملف تعريف السجل الموجود، ثم إنشاء ملف تعريف جديد.

  1. استخدم Get-AzLogProfile لتحديد ما إذا كان ملف تعريف السجل موجوداً. إذا كان ملف تعريف السجل موجوداً، فلاحظ خاصية Name.

  2. استخدم Remove-AzLogProfile لتزيل ملف تعريف السجل باستخدام القيمة الموجودة في خاصية Name.

    # For example, if the log profile name is 'default'
    Remove-AzLogProfile -Name "default"
    
  3. استخدم Add-AzLogProfile لإنشاء ملف تعريف سجل جديد:

    Add-AzLogProfile -Name my_log_profile -StorageAccountId /subscriptions/s1/resourceGroups/myrg1/providers/Microsoft.Storage/storageAccounts/my_storage -serviceBusRuleId /subscriptions/s1/resourceGroups/Default-ServiceBus-EastUS/providers/Microsoft.ServiceBus/namespaces/mytestSB/authorizationrules/RootManageSharedAccessKey -Location global,westus,eastus -RetentionInDays 90 -Category Write,Delete,Action
    
    الخاصية المطلوب ‏‏الوصف‬
    الاسم ‏‏نعم‬ اسم ملف تعريف السجل الخاص بك.
    StorageAccountId لا معرف المورد لحساب التخزين حيث ينبغي حفظ سجل النشاط فيه.
    serviceBusRuleId لا معرف قاعدة ناقل خدمة Microsoft Azure لمساحة اسم ناقل خدمة Microsoft Azure التي ترغب في إنشاء مراكز أحداث فيها. تحتوي هذه السلسلة على تنسيق {service bus resource ID}/authorizationrules/{key name}.
    الموقع ‏‏نعم‬ قائمة مفصولة بفواصِل للمناطق التي ترغب في جمع أحداث سجل النشاط لها.
    RetentionInDays ‏‏نعم‬ عدد الأيام التي يجب الاستبقاء فيها بالأحداث في حساب التخزين، من 1 إلى 365. تقوم القيمة صفر بتخزين السجلات إلى أجل غير مسمى.
    الفئة لا قائمة مفصولة بفواصل لفئات الأحداث التي يلزم جمعها. القيم المحتملة هي الكتابة والحذف والإجراء.

مثال على البرنامج النصي

ينشئ هذا البرنامج النصي من PowerShell النموذجي ملف تعريف سجل ينقل معلومات سجل النشاط إلى كل من حساب التخزين ومركز الأحداث.

# Settings needed for the new log profile
$logProfileName = "default"
$locations = (Get-AzLocation).Location
$locations += "global"
$subscriptionId = "<your Azure subscription Id>"
$resourceGroupName = "<resource group name your Event Hub belongs to>"
$eventHubNamespace = "<Event Hub namespace>"

# Build the service bus rule Id from the settings above
$serviceBusRuleId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.EventHub/namespaces/$eventHubNamespace/authorizationrules/RootManageSharedAccessKey"

# Build the Storage Account Id from the settings above
$storageAccountId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Storage/storageAccounts/$storageAccountName"

Add-AzLogProfile -Name $logProfileName -Location $locations -StorageAccountId  $storageAccountId -ServiceBusRuleId $serviceBusRuleId

تغييرات هيكل البيانات

ترسل تجربة سجلات نشاط التصدير نفس البيانات مثل الطريقة القديمة المستخدمة لإرسال سجل النشاط مع بعض التغييرات على بنية جدول AzureActivity.

يتم إهمال الأعمدة في الجدول التالي في المخطط المحدث. لا تزال موجودة في AzureActivity لكن لا يكون عليها بيانات. لا يعد استبدال هذه الأعمدة جديداً، إلا أنها تحتوي على نفس البيانات الموجودة في العمود المُهمَل. إنها بتنسيق مختلف، بالتالي قد تحتاج إلى تعديل استعلامات السجل التي تستخدمها.

سجل نشاط JSON اسم عمود Log Analytics
(مُهمَل أقدم)
اسم العمود الجديد لـ Log Analytics ملاحظات
الفئة فئة CategoryValue
الحالة

القيم هي success, start, accep, failure
حالة النشاط

قيم مماثلة لـ JSON
ActivityStatusValue

تتغير القيم إلى succeeded, started, accepted, failed
تتغير القيم الصالحة على النحو موضح.
subStatus ActivitySubstatus ActivitySubstatusValue
اسم العملية OperationName OperationNameValue توطن واجهة برمجة تطبيقات REST قيمة اسم العملية. تظهر واجهة مستخدم Log Analytics دائما باللغة الإنجليزية.
resourceProviderName موفر المورد ResourceProviderValue

هام

في بعض الحالات، قد تكون القيم في هذه الأعمدة بأحرف كبيرة. في حال كان لديك استعلام يتضمن هذه الأعمدة، فيجب عليك استخدام =~ operator لإجراء مقارنة غير حساسة لحالة الأحرف.

تمت إضافة الأعمدة التالية إلى AzureActivity في المخطط المحدث:

  • Authorization_d
  • Claims_d
  • Properties_d

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

تعلم المزيد عن: