جمع ونقل القياسات

ينطبق على:علامة اختيار IoT Edge 1.5 IoT Edge 1.5 علامة اختيار IoT Edge 1.4 IoT Edge 1.4

هام

IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.

يمكنك مراقبة أسطول IoT Edge الخاص بك عن بعد باستخدام Azure Monitor وتكامل المقاييس المضمنة. لتمكين هذه الإمكانية على جهازك، أضف وحدة جامع المقاييس إلى التوزيع الخاص بك وقم بتكوينها لجمع مقاييس الوحدة ونقلها إلى Azure Monitor.

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

تكامل IoT Edge مع Azure Monitor(4:06)

بناء الأنظمة

لقطة شاشة لبنية مراقبة المقاييس مع IoT Hub.

إشعار ‏‏الوصف
1 يجب أن تصدر جميع الوحدات النمطية مقاييس باستخدام نموذج بيانات Prometheus. في حين أن المقاييس المضمنة تمكن رؤية حمل العمل الواسعة بشكل افتراضي، يمكن أيضا استخدام الوحدات النمطية المخصصة لإصدار مقاييس خاصة بالسيناريوهات لتحسين حل المراقبة. تعرف على كيفية وضع علامة على الوحدات النمطية المخصصة باستخدام المكتبات مفتوحة المصدر في مقالة إضافة مقاييس مخصصة.
2️ الوحدة النمطية جامع المقاييس هي وحدة IoT Edge التي توفرها Microsoft تجمع مقاييس وحدة حمل العمل وتنقلها خارج الجهاز. تستخدم مجموعة المقاييس نموذج سحب . يمكن تكوين تكرار المجموعة ونقاط النهاية وعوامل التصفية للتحكم في البيانات الخارجة من الوحدة النمطية. لمزيد من المعلومات، راجع قسم تكوين مجمع المقاييس لاحقا في هذه المقالة.
3️ لديك خياران لإرسال المقاييس من وحدة جامع المقاييس إلى السحابة. يرسل الخيار 1 المقاييس إلى Log Analytics.1 يتم استيعاب المقاييس المجمعة في مساحة عمل Log Analytics المحددة باستخدام جدول أصلي ثابت يسمى InsightsMetrics. مخطط هذا الجدول متوافق مع نموذج بيانات مقاييس Prometheus.

يتطلب هذا الخيار الوصول إلى مساحة العمل على المنفذ الصادر 443. يجب تحديد معرف مساحة عمل Log Analytics والمفتاح كجزء من تكوين الوحدة النمطية. للتمكين في الشبكات المقيدة، راجع تمكين في سيناريوهات الوصول المقيد إلى الشبكة لاحقا في هذه المقالة.
4️ يحتوي كل إدخال قياس على ResourceId الذي تم تحديده كجزء من تكوين الوحدة النمطية. يربط هذا الاقتران المقياس تلقائيا بالمورد المحدد (على سبيل المثال، IoT Hub). ونتيجة لذلك، يمكن لقوالب مصنف IoT Edge المنسقة استرداد المقاييس عن طريق إصدار استعلامات مقابل المورد.

يسمح هذا الأسلوب أيضا لعدة مراكز IoT بمشاركة مساحة عمل Log Analytics واحدة بأمان كقاعدة بيانات مقاييس.
5️ يرسل الخيار 2 المقاييس إلى IoT Hub.1 يمكن تكوين وحدة المجمع لإرسال المقاييس المجمعة كرسائل JSON المرمزة من جهاز إلى سحابة UTF-8 عبر الوحدة النمطيةedgeHub. يفتح هذا الخيار مراقبة أجهزة IoT Edge المؤمنة التي يسمح لها بالوصول الخارجي إلى نقطة نهاية IoT Hub فقط. كما أنه يتيح مراقبة أجهزة IoT Edge التابعة في تكوين متداخل حيث يمكن للأجهزة التابعة الوصول إلى أجهزتها الأصلية فقط.
6️ عند توجيه المقاييس عبر IoT Hub، يجب إعداد سير عمل سحابي (لمرة واحدة). يعالج سير العمل الرسائل التي تصل من وحدة جامع المقاييس ويرسلها إلى مساحة عمل Log Analytics. يمكن سير العمل المرئيات المنسقة ووظائف التنبيهات حتى بالنسبة للمقاييس التي تصل عبر هذا المسار الاختياري. راجع قسم Route metrics through IoT Hub للحصول على تفاصيل حول كيفية إعداد سير عمل السحابة هذا.

1 حاليا، استخدام الخيار 1 لنقل المقاييس مباشرة إلى Log Analytics من جهاز IoT Edge هو المسار الأبسط الذي يتطلب الحد الأدنى من الإعداد. يفضل الخيار الأول ما لم يتطلب السيناريو المحدد نهج الخيار 2 بحيث يتصل جهاز IoT Edge فقط مع IoT Hub.

وحدة مجمع المقاييس

يمكن إضافة وحدة جامع المقاييس التي توفرها Microsoft إلى نشر IoT Edge لتجميع مقاييس الوحدة وإرسالها إلى Azure Monitor. التعليمات البرمجية للوحدة مفتوحة المصدر ومتاحة في مستودع IoT Edge GitHub.

يتم توفير وحدة جامع المقاييس كصورة حاوية Docker متعددة الأقواس تدعم Linux X64 و ARM32 و ARM64 و Windows X64 (الإصدار 1809). وهي متاحة للجمهور في mcr.microsoft.com/azureiotedge-metrics-collector.

كما أنه متوفر في IoT Edge Module Marketplace.

تكوين مجمع المقاييس

يتم إجراء جميع التكوينات ل metrics-collector باستخدام متغيرات البيئة. الحد الأدنى، المتغيرات المذكورة في هذا الجدول التي تم وضع علامة عليها على أنها مطلوبة تحتاج إلى تحديد.

اسم متغير البيئة ‏‏الوصف
ResourceId معرف المورد لمركز IoT الذي يتصل به الجهاز. لمزيد من المعلومات، راجع قسم معرف المورد.

مطلوب

القيمة الافتراضية: بلا
UploadTarget يتحكم في ما إذا كانت المقاييس ترسل مباشرة إلى Azure Monitor عبر HTTPS أو إلى IoT Hub كرسائل D2C. لمزيد من المعلومات، راجع تحميل الهدف.

يمكن أن يكون إما AzureMonitor أو IoTMessage

غير مطلوب

القيمة الافتراضية: AzureMonitor
LogAnalyticsWorkspaceId معرف مساحة عمل Log Analytics.

مطلوب فقط إذا كان UploadTarget هو AzureMonitor

القيمة الافتراضية: بلا
LogAnalyticsSharedKey مفتاح مساحة عمل Log Analytics.

مطلوب فقط إذا كان UploadTarget هو AzureMonitor

القيمة الافتراضية: بلا
ScrapeFrequencyInSecs الفاصل الزمني المتكرر بالثوان التي يتم فيها جمع المقاييس ونقلها.

مثال: 600

غير مطلوب

القيمة الافتراضية: 300
MetricsEndpointsCSV قائمة نقاط النهاية المفصولة بفواصل لجمع مقاييس Prometheus منها. يجب أن تظهر جميع نقاط نهاية الوحدة النمطية لتجميع المقاييس منها في هذه القائمة.

مثال: http://edgeAgent:9600/metrics، ، http://edgeHub:9600/metricshttp://MetricsSpewer:9417/metrics

غير مطلوب

القيمة الافتراضية: http://edgeHub:9600/metrics، http://edgeAgent:9600/metrics
AllowedMetrics قائمة المقاييس التي يجب جمعها، يتم تجاهل جميع المقاييس الأخرى. تعيين إلى سلسلة فارغة لتعطيلها. لمزيد من المعلومات، راجع السماح بالقوائم وعدم السماح بها.

مثال: metricToScrape{quantile=0.99}[endpoint=http://MetricsSpewer:9417/metrics]

غير مطلوب

القيمة الافتراضية: فارغة
BlockedMetrics قائمة المقاييس التي يجب تجاهلها. يتجاوز AllowedMetrics، لذلك لا يتم الإبلاغ عن مقياس إذا تم تضمينه في كلتا القائمتين. لمزيد من المعلومات، راجع السماح بالقوائم وعدم السماح بها.

مثال: metricToIgnore{quantile=0.5}[endpoint=http://VeryNoisyModule:9001/metrics]، docker_container_disk_write_bytes

غير مطلوب

القيمة الافتراضية: فارغة
CompressForUpload يتحكم في ما إذا كان يجب استخدام الضغط عند تحميل المقاييس. ينطبق على جميع أهداف التحميل.

مثال: صحيح

غير مطلوب

القيمة الافتراضية: true
AzureDomain يحدد مجال Azure ذو المستوى الأعلى لاستخدامه عند استيعاب المقاييس مباشرة إلى Log Analytics.

مثال: azure.us

غير مطلوب

القيمة الافتراضية: azure.com

معرف المورد

تتطلب الوحدة النمطية metrics-collector معرف Azure Resource Manager لمركز IoT الذي ينتمي إليه جهاز IoT Edge. قم بتوفير هذا المعرف كقيمة لمتغير بيئة ResourceID .

يأخذ معرف المورد التنسيق التالي:

/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.Devices/IoTHubs/<iot hub name>

يمكنك العثور على معرف المورد في صفحة خصائص مركز IoT في مدخل Microsoft Azure.

لقطة شاشة توضح كيفية استرداد معرف المورد الخاص بك من خصائص IoT Hub.

أو يمكنك استرداد المعرف باستخدام الأمر az resource show :

az resource show -g <resource group> -n <hub name> --resource-type "Microsoft.Devices/IoTHubs"

تحميل الهدف

يتحكم خيار تكوين UploadTarget في ما إذا كانت المقاييس يتم إرسالها مباشرة إلى Azure Monitor أو إلى IoT Hub.

إذا قمت بتعيين UploadTarget إلى IoTMessage، فسيتم نشر مقاييس الوحدة كرسائل IoT. يتم إصدار هذه الرسائل بتنسيق json المشفرة UTF8 من نقطة /messages/modules/<metrics collector module name>/outputs/metricOutputالنهاية . على سبيل المثال، إذا كانت وحدة IoT Edge Metrics Collector تسمى IoTEdgeMetricsCollector، فإن نقطة النهاية هي /messages/modules/IoTEdgeMetricsCollector/outputs/metricOutput. ويكون التنسيق كالتالي:

[{
    "TimeGeneratedUtc": "<time generated>",
    "Name": "<prometheus metric name>",
    "Value": <decimal value>,
    "Label": {
        "<label name>": "<label value>"
    }
}, {
    "TimeGeneratedUtc": "2020-07-28T20:00:43.2770247Z",
    "Name": "docker_container_disk_write_bytes",
    "Value": 0.0,
    "Label": {
        "name": "AzureMonitorForIotEdgeModule"
    }
}]

السماح بالقوائم وعدم السماح بها

AllowedMetrics تأخذ خيارات التكوين و BlockedMetrics قوائم مفصولة بمسافات أو بفواصل من محددات المقاييس. يطابق المقياس القائمة ويتم تضمينه أو استبعاده إذا كان يطابق مقياسا واحدا أو أكثر في أي من القائمةين.

تستخدم محددات المقاييس تنسيقا مشابها لمجموعة فرعية من لغة استعلام PromQL .

metricToSelect{quantile=0.5,otherLabel=~Re[ge]*|x}[http://VeryNoisyModule:9001/metrics]

تتكون محددات المقاييس من ثلاثة أجزاء:

اسم القياس (metricToSelect).

  • يمكن استخدام أحرف * البدل (أي أحرف) و ? (أي حرف واحد) في أسماء المقاييس. على سبيل المثال، *CPU قد يتطابق maxCPU ولكن minCPU ليس CPUMaximum. ???CPU سيتطابق maxCPU مع و minCPU ولكن ليس maximumCPU.
  • هذا المكون مطلوب في محدد المقاييس.

المحددات المستندة إلى التسمية ({quantile=0.5,otherLabel=~Re[ge]*|x}).

  • يمكن تضمين قيم قياس متعددة في الأقواس المتعرجة. يجب فصل القيم بفواصل.
  • يتم مطابقة المقياس إذا كانت جميع التسميات على الأقل في المحدد موجودة ومتطابقة أيضا.
  • مثل PromQL، يسمح بعوامل التشغيل المطابقة التالية.
    • = مطابقة التسميات تماما مساوية للسلسلة المتوفرة (حساسة لحالة الأحرف).
    • != مطابقة التسميات ليست مساوية تماما للسلسلة المتوفرة.
    • =~ مطابقة التسميات مع regex المقدمة. السابقين: label=~CPU|Mem|[0-9]*
    • !~ مطابقة التسميات التي لا تناسب regex المتوفرة.
    • Regex مرساة بالكامل (A ^ وتتم $ إضافتها تلقائيا إلى بداية ونهاية كل regex)
    • هذا المكون اختياري في محدد المقاييس.

محدد نقطة النهاية ([http://VeryNoisyModule:9001/metrics]).

  • يجب أن يتطابق عنوان URL تماما مع عنوان URL المدرج في MetricsEndpointsCSV.
  • هذا المكون اختياري في محدد المقاييس.

يجب أن يتطابق المقياس مع جميع أجزاء محدد معين ليتم تحديده. يجب أن يتطابق مع الاسم وأن يحتوي على جميع التسميات نفسها مع قيم مطابقة وأن يأتي من نقطة النهاية المحددة. على سبيل المثال، mem{quantile=0.5,otherLabel=foobar}[http://VeryNoisyModule:9001/metrics] لن يتطابق مع المحدد mem{quantile=0.5,otherLabel=~foo|bar}[http://VeryNoisyModule:9001/metrics]. يجب استخدام محددات متعددة لإنشاء سلوك أو مثله بدلا من السلوك الذي يشبهه.

على سبيل المثال، للسماح بالمقياس mem المخصص مع أي تسمية من وحدة نمطية module1 ولكن فقط السماح بنفس المقياس من module2 مع التسمية agg=p99، يمكن إضافة المحدد التالي إلى AllowedMetrics:

mem{}[http://module1:9001/metrics] mem{agg="p99"}[http://module2:9001/metrics]

أو للسماح بالمقاييس mem المخصصة وأي cpu تسميات أو نقطة نهاية، أضف ما يلي إلى AllowedMetrics:

mem cpu

التمكين في سيناريوهات الوصول المقيد إلى الشبكة

إذا كنت ترسل المقاييس مباشرة إلى مساحة عمل Log Analytics، فاسمح بالوصول الصادر إلى عناوين URL التالية:

  • https://<LOG_ANALYTICS_WORKSPACE_ID>.ods.opinsights.azure.com/*
  • https://<LOG_ANALYTICS_WORKSPACE_ID>.oms.opinsights.azure.com/*

اعتبارات الوكيل

تتم كتابة وحدة جامع المقاييس في .NET Core. لذا استخدم نفس الإرشادات الخاصة بوحدات النظام للسماح بالاتصال من خلال خادم وكيل.

تستخدم مجموعة المقاييس من الوحدات النمطية المحلية بروتوكول http. استبعاد الاتصال المحلي من الانتقال عبر الخادم الوكيل عن طريق تعيين NO_PROXY متغير البيئة.

تعيين NO_PROXY قيمة إلى قائمة مفصولة بفواصل من أسماء المضيفين التي يجب استبعادها. استخدم أسماء الوحدات النمطية لأسماء المضيفين. على سبيل المثال: edgeHub,edgeAgent,myCustomModule.

مقاييس المسار

في بعض الأحيان، من الضروري استيعاب المقاييس من خلال IoT Hub بدلا من إرسالها مباشرة إلى Log Analytics. على سبيل المثال، عند مراقبة أجهزة IoT Edge في تكوين متداخل حيث يكون للأجهزة التابعة حق الوصول فقط إلى مركز IoT Edge لجهازها الأصل. مثال آخر هو عند نشر جهاز IoT Edge مع وصول الشبكة الصادرة فقط إلى IoT Hub.

لتمكين المراقبة في هذا السيناريو، يمكن تكوين وحدة جامع المقاييس لإرسال المقاييس كرسائل من جهاز إلى سحابة (D2C) عبر وحدة edgeHub. يمكن تشغيل القدرة عن طريق تعيين UploadTarget متغير البيئة إلى IoTMessage في تكوين المجمع.

تلميح

تذكر إضافة مسار edgeHub لتسليم رسائل المقاييس من وحدة المجمع إلى IoT Hub. ستبدو مثلFROM /messages/modules/replace-with-collector-module-name/* INTO $upstream.

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

إشعار

كن على دراية بالتكاليف الإضافية باستخدام هذا الخيار. سيتم احتساب رسائل المقاييس مقابل الحصة النسبية لرسالة IoT Hub. سيتم أيضا تحصيل رسوم منك مقابل استيعاب Log Analytics وموارد سير العمل السحابي.

نموذج سير عمل السحابة

يتوفر سير عمل سحابي يسلم رسائل المقاييس من IoT Hub إلى Log Analytics كجزء من عينة تسجيل ومراقبة IoT Edge. يمكن نشر العينة على موارد السحابة الحالية أو بمثابة مرجع نشر إنتاج.

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

استكشف أنواع المرئيات المنسقة التي تمكنها Azure Monitor.