مشاركة عبر


البرنامج التعليمي: إضافة تحويل في قاعدة تجميع بيانات مساحة العمل إلى Azure Monitor باستخدام قوالب Resource Manager

يرشدك هذا البرنامج التعليمي خلال تكوين تحويل عينة في قاعدة تجميع بيانات مساحة العمل باستخدام قوالب Resource Manager. تسمح لك التحويلات في Azure Monitor بتصفية البيانات الواردة أو تعديلها قبل إرسالها إلى وجهتها. توفر تحويلات مساحة العمل الدعم لتحويلات وقت الاستيعاب لسير العمل التي لا تستخدم بعد البنية الأساسية لبرنامج ربط العمليات التجارية لاستيعاب بيانات Azure Monitor.

يتم تخزين تحويلات مساحة العمل معا في قاعدة تجميع بيانات واحدة (DCR) لمساحة العمل، تسمى DCR لمساحة العمل. يرتبط كل تحويل بجدول معين. يتم تطبيق التحويل على كافة البيانات المرسلة إلى هذا الجدول من أي سير عمل لا يستخدم DCR.

إشعار

يستخدم هذا البرنامج التعليمي قوالب Resource Manager وواجهة برمجة تطبيقات REST لتكوين تحويل مساحة العمل. راجع البرنامج التعليمي: إضافة تحويل في قاعدة تجميع بيانات مساحة العمل إلى Azure Monitor باستخدام مدخل Microsoft Azure لنفس البرنامج التعليمي باستخدام مدخل Microsoft Azure.

ستتعرف في هذا البرنامج التعليمي على:

  • تكوين تحويل مساحة العمل لجدول في مساحة عمل Log Analytics.
  • اكتب استعلام سجل لتحويل وقت الاستيعاب.

إشعار

يستخدم هذا البرنامج التعليمي PowerShell من Azure Cloud Shell لإجراء استدعاءات واجهة برمجة تطبيقات REST باستخدام واجهة برمجة تطبيقات جداول مراقبة Azure ومدخل Microsoft Azure لتثبيت قوالب Resource Manager. يمكنك استخدام أي طريقة أخرى لإجراء هذه المكالمات.

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

لإكمال هذا البرنامج التعليمي، تحتاج إلى ما يلي:

نظرة عامة

في هذا البرنامج التعليمي، ستقوم بتقليل متطلبات التخزين لجدول LAQueryLogs عن طريق تصفية سجلات معينة. ستقوم أيضًا بإزالة محتويات العمود أثناء تحليل بيانات العمود لتخزين جزء من البيانات في عمود مخصص. يتم إنشاء جدول LAQueryLogs عند تمكين تدقيق استعلام السجل في مساحة عمل، ولكن يتم استخدام هذا فقط كنموذج البرنامج التعليمي. يمكنك استخدام نفس العملية الأساسية لإنشاء تحويل لأي جدول مدعوم في مساحة عمل Log Analytics.

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

تحتاج إلى تمكين تدقيق الاستعلام لمساحة العمل لإنشاء جدول LAQueryLogs الذي ستعمل معه. هذا ليس مطلوبًا لجميع تحويلات وقت الاستيعاب. إنه فقط لإنشاء نموذج البيانات التي سيستخدمها تحويل النموذج هذا.

  1. من القائمة مساحات عمل Log Analytics في مدخل Microsoft Azure، حدد إعدادات التشخيص ثم إضافة إعدادات التشخيص.

    لقطة شاشة لإعدادات التشخيص.

  2. وفر اسم لإعداد التشخيص وحدد مساحة العمل بحيث يتم تخزين بيانات التدقيق في نفس مساحة العمل. حدد فئة تدقيق ثم انقر فوق حفظ لحفظ إعداد التشخيص وإغلاق صفحة إعدادات التشخيص.

    لقطة شاشة لإعداد التشخيص الجديد.

  3. حدد سجلات ثم قم بتشغيل بعض الاستعلامات لتعبئة LAQueryLogs ببعض البيانات. لا تحتاج هذه الاستعلامات إلى إرجاع أي بيانات فعليًا.

    لقطة من نماذج استعلامات السجل.

تحديث مخطط جدول

قبل أن تتمكن من إنشاء التحويل، يجب إجراء التغييرين التاليين على الجدول:

  • يجب تمكين الجدول لتحويل مساحة العمل. هذا مطلوب لأي جدول سيكون له تحويل، حتى إذا لم يعدل التحويل مخطط الجدول.
  • يجب إضافة أي أعمدة إضافية يتم ملؤها بواسطة التحويل إلى الجدول.

استخدم API الجداول - تحديث لتكوين الجدول باستخدام التعليمات البرمجية PowerShell أدناه. يتيح استدعاء واجهة برمجة التطبيقات جدول تحويلات مساحة العمل، سواء تم تعريف الأعمدة المخصصة أم لا. في هذا النموذج، يتضمن عمودًا مخصصًا يسمى Resources_CF سيتم ملؤه باستعلام التحويل.

هام

يجب أن تنتهي أي أعمدة مخصصة مضافة إلى جدول مضمن بـ _CF. لا تحتاج الأعمدة المضافة إلى جدول مخصص (الجدول الذي يحمل اسمًا ينتهي بـ _CL) إلى هذه اللاحقة.

  1. انقر فوق الزر Cloud Shell في مدخل Microsoft Azure وتأكد من تعيين البيئة إلى PowerShell.

    لقطة شاشة لفتح Cloud Shell.

  2. انسخ التعليمات البرمجية PowerShell التالية واستبدل المعلمة مسار بالتفاصيل لمساحة العمل الخاصة بك.

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "LAQueryLogs",
                "columns": [
                    {
                        "name": "Resources_CF",
                        "description": "The list of resources, this query ran against",
                        "type": "string",
                        "isDefaultDisplay": true,
                        "isHidden": false
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/LAQueryLogs?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
    
  3. الصق التعليمات البرمجية في مطالبة Cloud Shell لتشغيلها.

    لقطة شاشة للبرنامج النصي في Cloud Shell.

  4. يمكنك التحقق من إضافة العمود بالانتقال إلى قائمة مساحة عمل Log Analytics في مدخل Azure. حدد السجلات لفتح Log Analytics ثم قم بتوسيع جدول LAQueryLogs لعرض أعمدتها.

    لقطة شاشة لـ Log Analytics بعمود جديد.

تحديد الاستعلام الخاص بالتحويل

استخدم Log Analytics لاختبار استعلام التحويل قبل إضافته إلى قاعدة تجميع البيانات.

  1. افتح مساحة العمل في قائمة مساحات عمل Log Analytics في مدخل Azure وحدد السجلات لفتح Log Analytics.

  2. شغل الاستعلام التالي لعرض محتويات جدول LAQueryLogs. لاحظ محتويات العمود RequestContext. سيقوم التحويل باسترداد اسم مساحة العمل من هذا العمود وإزالة بقية البيانات فيه.

    LAQueryLogs
    | take 10
    

    لقطة شاشة للاستعلام الأولي في Log Analytics.

  3. عدل الاستعلام إلى ما يلي:

    LAQueryLogs
    | where QueryText !contains 'LAQueryLogs'
    | extend Context = parse_json(RequestContext)
    | extend Workspace_CF = tostring(Context['workspaces'][0])
    | project-away RequestContext, Context
    

    يقوم هذا بإجراء التغييرات التالية:

    • أفلت الصفوف المتعلقة بالاستعلام عن جدول LAQueryLogs نفسه لتوفير مساحة لأن إدخالات السجل هذه ليست مفيدة.
    • أضف عمودًا لاسم مساحة العمل التي تم الاستعلام عنها.
    • بادر بإزالة البيانات من العمود RequestContext لتوفير مساحة.

    لقطة شاشة للاستعلام المعدل في Log Analytics.

  4. بادر بإجراء التغييرات التالية على الاستعلام لاستخدامه في التحويل:

    • بدلاً من تحديد اسم جدول (LAQueryLogs في هذه الحالة) كمصدر للبيانات لهذا الاستعلام، استخدم الكلمة الأساسية source. هذا جدول ظاهري يمثل دائمًا البيانات الواردة في استعلام تحويل.
    • بادر بإزالة أي عوامل تشغيل غير مدعومة من خلال استعلامات التحويل. راجع ميزات KQL المدعومة للحصول على قائمة مفصلة بعوامل التشغيل المدعومة.
    • بادر بتسوية الاستعلام إلى سطر واحد بحيث يمكن أن يتناسب مع DCR JSON.

    فيما يلي الاستعلام الذي ستستخدمه في التحويل بعد هذه التعديلات:

    source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''
    

إنشاء قاعدة جمع البيانات (DCR)

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

  1. في مربع بحث مدخل Microsoft Azure، اكتب template، ثم حدد Deploy a custom template.

    لقطة شاشة تعرض توزيع قالب مخصص.

  2. انقر على إنشاء النموذج الخاص بك في المحرر.

    لقطة شاشة لبناء قالب في المحرر.

  3. الصق قالب Resource Manager أدناه في المحرر ثم انقر فوق حفظ. يعرف هذا القالب DCR ويحتوي على استعلام التحويل. لا تحتاج إلى تعديل هذا القالب نظرًا لأنك ستجمع قيمًا لمعلماته.

    لقطة شاشة لتحرير قالب Resource Manager.

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionRuleName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the Data Collection Rule to create."
                }
            },
            "location": {
                "type": "string",
                "defaultValue": "westus2",
                "allowedValues": [
                    "westus2",
                    "eastus2",
                    "eastus2euap"
                ],
                "metadata": {
                    "description": "Specifies the location in which to create the Data Collection Rule."
                }
            },
            "workspaceResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-09-01-preview",
                "kind": "WorkspaceTransforms",
                "properties": {
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "clv2ws1"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Microsoft-Table-LAQueryLogs"
                            ],
                            "destinations": [
                                "clv2ws1"
                            ],
                            "transformKql": "source |where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''"
                        }
                    ]
                }
            }
        ],
        "outputs": {
            "dataCollectionRuleId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
            }
        }
    }
    
  4. في شاشة النشر المخصص، حدد مجموعة الاشتراكوالموارد لتخزين قاعدة جمع البيانات ثم قم بتوفير القيم المعرفة في القالب. يتضمن ذلك اسمًا لقاعدة تجميع البيانات ومعرف مورد مساحة العمل الذي قمت بتجميعه في خطوة سابقة. يجب أن يكون الموقع هو نفس موقع مساحة العمل. سيتم بالفعل ملء المنطقة واستخدامها لموقع قاعدة تجميع البيانات.

    لقطة شاشة لتحرير قيم التوزيع المخصص.

  5. انقر فوق مراجعة + إنشاء ثم إنشاء عند مراجعة التفاصيل.

  6. عند اكتمال التوزيع، قم بتوسيع مربع تفاصيل التوزيع وانقر فوق قاعدة تجميع البيانات لعرض تفاصيلها. انقر فوق طريقة عرض JSON.

    لقطة شاشة تعرض تفاصيل قاعدة تجميع البيانات.

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

    لقطة شاشة لعرض قاعدة JSON لتجميع البيانات.

الخطوة الأخيرة لتمكين التحويل هي ربط DCR بمساحة العمل.

هام

يمكن توصيل مساحة العمل بـ DCR واحد فقط، ويجب أن يحتوي DCR المرتبط على مساحة العمل هذه كوجهة.

استخدم API مساحات العمل - تحديث لتكوين الجدول باستخدام التعليمات البرمجية PowerShell أدناه.

  1. انقر فوق الزر Cloud Shell لفتح Cloud Shell مرة أخرى. انسخ التعليمات البرمجية PowerShell التالية واستبدل المعلمات بالقيم لمساحة العمل وDCR الخاص بك.

    $defaultDcrParams = @'
    {
        "properties": {
            "defaultDataCollectionRuleResourceId": "/subscriptions/{subscription}/resourceGroups/{resourcegroup}/providers/Microsoft.Insights/dataCollectionRules/{DCR}"
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version=2021-12-01-preview" -Method PATCH -payload $defaultDcrParams
    
  2. الصق التعليمات البرمجية في مطالبة Cloud Shell لتشغيلها.

    لقطة شاشة لبرنامج نصي لربط مساحة العمل إلى DCR.

اختبار التحويل

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

بالنسبة لهذا البرنامج التعليمي، قم بتشغيل بعض نماذج الاستعلامات لإرسال البيانات إلى الجدول LAQueryLogs. بادر بتضمين بعض الاستعلامات مقابل LAQueryLogs حتى تتمكن من التحقق من أن التحويل يقوم بتصفية هذه السجلات. لاحظ أن الإخراج يحتوي على العمود Workspace_CF الجديد، ولا توجد سجلات لـ LAQueryLogs.

استكشاف الأخطاء وإصلاحها

يصف هذا القسم حالات الخطأ المختلفة التي قد تتلقاها وكيفية تصحيحها.

لا يتعرف IntelliSense في Log Analytics على الأعمدة الجديدة في الجدول

قد يستغرق تحديث ذاكرة التخزين المؤقت التي تقود IntelliSense ما يصل إلى 24 ساعة.

لا يعمل التحويل في عمود ديناميكي

توجد حاليًا مشكلة معروفة تؤثر على الأعمدة الديناميكية. الحل المؤقت هو التحليل الصريح لبيانات العمود الديناميكي باستخدام parse_json() قبل تنفيذ أي عمليات ضدها.

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