البرنامج التعليمي: استيعاب الأحداث من Azure Event Hubs في سجلات Azure Monitor (معاينة عامة)

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

في هذا البرنامج التعليمي، تتعلم كيفية:

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

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

لإرسال الأحداث من Azure Event Hubs إلى سجلات Azure Monitor، تحتاج إلى هذه الموارد، كل ذلك في نفس المنطقة:

المناطق المدعومة

يدعم Azure Monitor حاليا الاستيعاب من مراكز الأحداث في هذه المناطق:

الأمريكتان ‏‏أوروبا الشرق الأوسط إفريقيا آسيا/المحيط الهادئ
جنوب البرازيل وسط فرنسا شمال الإمارات العربية المتحدة جنوب أفريقيا وسط أستراليا
جنوب شرق البرازيل أوروبا الشمالية شرق أستراليا
وسط كندا شرق النرويج جنوب شرق أستراليا
شرق كندا شمال سويسرا وسط الهند‬
شرق الولايات المتحدة غرب سويسرا شرق آسيا
East US 2 جنوب المملكة المتحدة شرق اليابان
South Central US غرب المملكة المتحدة جيو الهند الغربية
غرب الولايات المتحدة أوروبا الغربية وسط كوريا
غرب الولايات المتحدة الأمريكية 3 جنوب شرق آسيا

جمع المعلومات المطلوبة

تحتاج إلى معرف الاشتراك واسم مجموعة الموارد واسم مساحة العمل ومعرف مورد مساحة العمل ومعرف مورد مثيل مركز الأحداث في الخطوات اللاحقة:

  1. انتقل إلى مساحة العمل في قائمة مساحات عمل Log Analytics وحدد خصائص وانسخ معرف الاشتراك ومجموعة الموارد واسم مساحة العمل. ستحتاج إلى هذه التفاصيل لإنشاء موارد في هذا البرنامج التعليمي.

    Screenshot showing Log Analytics workspace overview screen with subscription ID, resource group name, and workspace name highlighted.

  2. حدد JSON لفتح شاشة Resource JSON وانسخ معرف المورد لمساحة العمل. ستحتاج إلى معرف مورد مساحة العمل لإنشاء قاعدة تجميع بيانات.

    Screenshot showing the Resource JSON screen with the workspace resource ID highlighted.

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

    Screenshot showing the Resource JSON screen with the event hub resource ID highlighted.

إنشاء جدول وجهة في مساحة عمل Log Analytics

قبل أن تتمكن من استيعاب البيانات، تحتاج إلى إعداد جدول وجهة. يمكنك استيعاب البيانات في جداول مخصصة وجداول Azure المدعومة.

لإنشاء جدول مخصص لاستيعاب الأحداث فيه، في مدخل Microsoft Azure:

  1. حدد زر Cloud Shell وتأكد من تعيين البيئة إلى PowerShell.

    Screenshot showing how to open Cloud Shell.

  2. قم بتشغيل أمر PowerShell هذا لإنشاء الجدول، وتوفير اسم الجدول (<table_name>) في JSON (ذلك أيضا مع لاحقة _CL في حالة الجدول المخصص)، وتعيين <subscription_id><workspace_name><resource_group_name>القيم و <table_name> في Invoke-AzRestMethod -Path الأمر:

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "<table_name>",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was ingested."
                    },
                    {
                        "name": "RawData",
                        "type": "string",
                        "description": "Body of the event."
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic",
                        "description": "Additional message properties."
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/<subscription_id>/resourcegroups/<resource_group_name>/providers/microsoft.operationalinsights/workspaces/<workspace_name>/tables/<table_name>?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
    

هام

  • يجب أن تبدأ أسماء الأعمدة بحرف ويمكن أن تتكون من ما يصل إلى 45 حرفا أبجديا رقميا وتسطيرا أسفل السطر (_).
  • _ResourceIdidTypeTitle_ResourceId_SubscriptionIdTenantIdUniqueIdأسماء الأعمدة المحجوزة و و.
  • تأتي أسماء الأعمدة مميزة لحالة الأحرف. تأكد من استخدام الحالة الصحيحة في قاعدة جمع البيانات.

إنشاء نقطة نهاية لجمع البيانات

لتجميع البيانات باستخدام قاعدة تجميع البيانات، تحتاج إلى نقطة نهاية لجمع البيانات:

  1. إنشاء نقطة نهاية من أجل جمع البيانات.

    هام

    إنشاء نقطة نهاية تجميع البيانات في نفس المنطقة مثل مساحة عمل Log Analytics.

  2. من شاشة نظرة عامة على نقطة نهاية جمع البيانات، حدد طريقة عرض JSON.

    Screenshot that shows the data collection endpoint Overview screen.

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

    Screenshot that shows the data collection endpoint JSON view.

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

يستخدم Azure Monitor قواعد جمع البيانات لتحديد البيانات التي يجب جمعها، وكيفية تحويل تلك البيانات، ومكان إرسال البيانات.

لإنشاء قاعدة تجميع بيانات في مدخل Microsoft Azure:

  1. في مربع البحث الخاص بالمدخل، اكتب قالب ثم حدد نشر قالب مخصص.

    Screenshot to deploy custom template.

  2. حدد Build your own template in the editor.

    Screenshot to build template in the editor.

  3. الصق قالب Resource Manager أدناه في المحرر ثم حدد Save.

    Screenshot to edit Resource Manager template.

    لاحظ التفاصيل التالية في قاعدة جمع البيانات أدناه:

    • identity- يحدد نوع الهوية المدارة التي يجب استخدامها. في مثالنا، نستخدم الهوية المعينة من قبل النظام. يمكنك أيضا تكوين الهوية المدارة المعينة من قبل المستخدم.

    • dataCollectionEndpointId - معرف المورد لنقطة نهاية جمع البيانات.

    • streamDeclarations - يحدد البيانات التي يجب استيعابها من مركز الأحداث (البيانات الواردة). لا يمكن تعديل إعلان الدفق.

      • TimeGenerated - الوقت الذي تم فيه استيعاب البيانات من مركز الأحداث إلى سجلات Azure Monitor.
      • RawData - نص الحدث. لمزيد من المعلومات، راجع قراءة الأحداث.
      • Properties - خصائص المستخدم من الحدث. لمزيد من المعلومات، راجع قراءة الأحداث.
    • datasources - يحدد مجموعة مستهلكي مركز الحدث والدفق الذي تقوم ب استيعاب البيانات إليه.

    • destinations - يحدد جميع الوجهات التي سيتم إرسال البيانات إليها. يمكنك استيعاب البيانات إلى مساحة عمل واحدة أو أكثر من مساحات عمل Log Analytics.

    • dataFlows - يطابق الدفق مع مساحة العمل الوجهة ويحدد استعلام التحويل وجدول الوجهة. في مثالنا، ن استيعاب البيانات إلى الجدول المخصص الذي أنشأناه سابقا. يمكنك أيضا استيعاب في جدول Azure معتمد.

    • transformKql - تحديد تحويل لتطبيقه على البيانات الواردة (إعلان الدفق) قبل إرسالها إلى مساحة العمل. في مثالنا، قمنا بتعيين transformKql إلى source، الذي لا يعدل البيانات من المصدر بأي شكل من الأشكال، لأننا نقوم بتعيين البيانات الواردة إلى جدول مخصص أنشأناه خصيصا مع المخطط المقابل. إذا كنت تقوم ب استيعاب البيانات في جدول بمخطط مختلف أو لتصفية البيانات قبل الاستيعاب، فحدد تحويل تجميع البيانات.

    {
        "$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."
                }
            },
            "workspaceResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
                }
            },
            "endpointResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the data collection endpoint to use."
                }
            },
            "tableName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the table in the workspace."
                }
            },
            "consumerGroup": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the consumer group of event hub."
                },
                "defaultValue": "$Default"
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[resourceGroup().location]", 
                "apiVersion": "2022-06-01",
                "identity": {
                                 "type": "systemAssigned"
                  },
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyEventHubStream": {
                            "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime"
                    },
                    {
                        "name": "RawData",
                        "type": "string"
                    },
                    {
                        "name": "Properties",
                        "type": "dynamic"
                    }
                ]
                        }
                    },
                    "dataSources": {
                        "dataImports": {
                             "eventHub": {
                                        "consumerGroup": "[parameters('consumerGroup')]",
                                        "stream": "Custom-MyEventHubStream",
                                        "name": "myEventHubDataSource1"
                                                              }
                                               }
                   },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "MyDestination"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyEventHubStream"
                            ],
                            "destinations": [
                                "MyDestination"
                            ],
                            "transformKql": "source",
                            "outputStream": "[concat('Custom-', parameters('tableName'))]"
                        }
                    ]
                }
            }
        ]
    }
    
  4. في شاشة النشر المخصص، حدد مجموعةالاشتراك والموارد لتخزين قاعدة جمع البيانات ثم قم بتوفير قيم للمعلمات المعرفة في القالب، بما في ذلك:

    • المنطقة - المنطقة لقاعدة جمع البيانات. يتم ملؤها تلقائيا استنادا إلى مجموعة الموارد التي تحددها.
    • اسم قاعدة تجميع البيانات - امنح القاعدة اسما.
    • معرف مورد مساحة العمل - راجع جمع المعلومات المطلوبة.
    • معرف مورد نقطة النهاية - يتم إنشاؤه عند إنشاء نقطة نهاية تجميع البيانات.
    • اسم الجدول - اسم الجدول الوجهة. في مثالنا، وكلما استخدمت جدولا مخصصا، يجب أن ينتهي اسم الجدول باللاحقة _CL. إذا كنت تقوم ب استيعاب البيانات في جدول Azure، أدخل اسم الجدول - على سبيل المثال، Syslog - بدون اللاحقة.
    • مجموعة المستهلكين - بشكل افتراضي، يتم تعيين مجموعة المستهلكين إلى $Default. إذا لزم الأمر، قم بتغيير القيمة إلى مجموعة مستهلكين مركز أحداث مختلفة.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule set up in this tutorial.

  5. حدد Review + create ثم Create عند مراجعة التفاصيل.

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

    Screenshot that shows the Data Collection Rule Overview screen.

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

    Screenshot that shows the data collection rule JSON view.

تكوين الهوية المدارة المعينة من قبل المستخدم (اختياري)

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

    "identity": {
                        "type": "systemAssigned"
        },

مع:

    "identity": {
            "type": "userAssigned",
            "userAssignedIdentities": {
                "<identity_resource_Id>": {
                }
            }
        },

للعثور على <identity_resource_Id> القيمة، انتقل إلى مورد الهوية المدارة المعين من قبل المستخدم في مدخل Microsoft Azure، وحدد JSON لفتح شاشة Resource JSON ونسخ معرف المورد للهوية المدارة.

Screenshot showing Resource JSON screen with the managed identity resource ID highlighted.

استيعاب بيانات السجل في جدول Azure (اختياري)

لاستيعاب البيانات في جدول Azure مدعوم:

  1. في قاعدة جمع البيانات، قم بتغيير outputStream:

    من: "outputStream": "[concat('Custom-', parameters('tableName'))]"

    ل: "outputStream": "outputStream": "[concat(Microsoft-', parameters('tableName'))]"

  2. في transformKql، حدد تحويلا يرسل البيانات التي تم استيعابها إلى الأعمدة الهدف في جدول Azure الوجهة.

منح إذن مركز الحدث إلى قاعدة جمع البيانات

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

  1. من مركز الأحداث أو مساحة اسم مراكز الأحداث في مدخل Microsoft Azure، حدد Access Control (IAM)>Add role assignment.

    Screenshot that shows the Access control screen for the data collection rule.

  2. حدد Azure Event Hubs Data Receiver وحدد Next.

    Screenshot that shows the Add Role Assignment screen for the event hub with the Azure Event Hubs Data Receiver role highlighted.

  3. حدد الهوية المدارة لتعيين الوصول إلى وانقر فوق تحديد الأعضاء. حدد قاعدة تجميع البيانات، وابحث عن قاعدة تجميع البيانات بالاسم، وانقر فوق تحديد.

    Screenshot that shows how to assign access to managed identity.

  4. حدد Review + assign وتحقق من التفاصيل قبل حفظ تعيين الدور.

    Screenshot that shows the Review and Assign tab of the Add Role Assignment screen.

إقران قاعدة جمع البيانات بمركز الحدث

الخطوة الأخيرة هي إقران قاعدة جمع البيانات بمركز الأحداث الذي تريد جمع الأحداث منه.

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

هام

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

لإنشاء اقتران قاعدة تجميع البيانات في مدخل Microsoft Azure:

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

  2. حدد Build your own template in the editor.

  3. الصق قالب Resource Manager أدناه في المحرر ثم حدد Save.

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "eventHubResourceID": {
          "type": "string",
          "metadata": {
            "description": "Specifies the Azure resource ID of the event hub to use."
          }
        },
        "associationName": {
          "type": "string",
          "metadata": {
            "description": "The name of the association."
          }
        },
        "dataCollectionRuleID": {
          "type": "string",
          "metadata": {
            "description": "The resource ID of the data collection rule."
          }
        }
      },
      "resources": [
        {
          "type": "Microsoft.Insights/dataCollectionRuleAssociations",
          "apiVersion": "2021-09-01-preview",
          "scope": "[parameters('eventHubResourceId')]",
          "name": "[parameters('associationName')]",
          "properties": {
            "description": "Association of data collection rule. Deleting this association will break the data collection for this event hub.",
            "dataCollectionRuleId": "[parameters('dataCollectionRuleId')]"
          }
        }
      ]
    }
    
  4. في شاشة النشر المخصص، حدد مجموعةالاشتراك والموارد لتخزين اقتران قاعدة تجميع البيانات ثم قم بتوفير قيم للمعلمات المحددة في القالب، بما في ذلك:

    • المنطقة - يتم ملؤها تلقائيا استنادا إلى مجموعة الموارد التي تحددها.
    • معرف مورد مثيل Event Hub - راجع تجميع المعلومات المطلوبة.
    • اسم الاقتران - امنح الاقتران اسما.
    • معرف قاعدة تجميع البيانات - يتم إنشاؤه عند إنشاء قاعدة تجميع البيانات.

    Screenshot showing the Custom Template Deployment screen with the deployment values for the data collection rule association set up in this tutorial.

  5. حدد Review + create ثم Create عند مراجعة التفاصيل.

التحقق من الجدول الوجهة بحثا عن الأحداث التي تم استيعابها

الآن بعد أن قمت بربط قاعدة جمع البيانات بمركز الأحداث الخاص بك، ستدخل سجلات Azure Monitor جميع الأحداث الموجودة التي لم تنته مدة استبقائها وجميع الأحداث الجديدة.

للتحقق من الجدول الوجهة بحثا عن الأحداث التي تم استيعابها:

  1. انتقل إلى مساحة العمل الخاصة بك وحدد Logs.

  2. اكتب استعلاما بسيطا في محرر الاستعلام وحدد تشغيل:

    <table_name>
    

    يجب أن تشاهد الأحداث من مركز الأحداث الخاص بك.

Screenshot showing the results of a simple query on a custom table. The results consist of events ingested from an event hub.

تنظيف الموارد

في هذا البرنامج التعليمي، قمت بإنشاء الموارد التالية:

  • جدول مخصص
  • نقطة نهاية تجميع البيانات
  • قاعدة جمع البيانات
  • اقتران قاعدة جمع البيانات

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

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

المشكلات المعروفة والقيود

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

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

تعرف على المزيد حول: