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

ينطبق على:yes icon IoT Edge 1.1 yes icon IoT Edge 1.2

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

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

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

التصميم

Metrics monitoring architecture with IoT Hub

ملاحظة الوصف
1 يجب أن تصدر جميع الوحدات النمطية مقاييس باستخدام نموذج بيانات Prometheus. في حين أن المقاييس المضمنة تمكن رؤية حمل العمل الواسعة بشكل افتراضي، يمكن أيضا استخدام الوحدات النمطية المخصصة لإصدار مقاييس خاصة بالسيناريوهات لتحسين حل المراقبة. تعرف على كيفية أداة الوحدات النمطية المخصصة باستخدام المكتبات مفتوحة المصدر في مقالة إضافة مقاييس مخصصة .
2️ الوحدة النمطية metrics-collector هي وحدة 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 يمكن تكوين وحدة المجمع لإرسال المقاييس المجمعة كرسائل UTF-8 المرمزة من جهاز إلى سحابة JSON عبر الوحدة النمطية 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. التعليمات البرمجية للوحدة النمطية مفتوحة المصدر ومتاحة في مستودع GitHub IoT Edge.

يتم توفير وحدة جامع المقاييس كصورة حاوية 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://MetricsSpewer:9417/metricshttp://edgeHub:9600/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.

Retrieve resource ID from the IoT Hub properties.

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

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

هدف Upload

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

إذا قمت بتعيين UploadTarget إلى IoTMessage، فسيتم نشر مقاييس الوحدة النمطية كرسائل IoT. يتم إرسال هذه الرسائل ك json مرمز ب UTF8 من نقطة /messages/modules/<module name>/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.