إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يدعم Azure IoT Hub عدة طرق لمراقبة حالة أجهزتك. تقدم هذه المقالة أساليب المراقبة المختلفة وتوفر إرشادات لمساعدتك في اختيار الخيار الأفضل لحل IoT الخاص بك.
يقدم الجدول التالي ثلاث طرق لمراقبة حالة اتصال جهازك:
| الأسلوب | تكرار الحالة | التكلفة | الجهد المبذول للبناء |
|---|---|---|---|
| الخاصية Device twin connectionState | متقطعة | منخفض | منخفض |
| شبكة الأحداث | 60 ثانية | منخفض | منخفض |
| نمط رسالة كشف أخطاء اتصال الجهاز المخصص | مخصص | درجة عالية | درجة عالية |
نظرا لموثوقيتها وانخفاض تكلفتها وسهولة استخدامها، نوصي ب Event Grid كحل مراقبة مفضل لمعظم العملاء.
ومع ذلك، هناك بعض القيود المفروضة على المراقبة باستخدام Event Grid التي قد تؤدي إلى استبعادها لبعض حلول IoT. استخدم هذه المقالة لفهم فوائد وقيود كل خيار.
حالة اتصال الجهاز المزدوج
تحتوي كل هوية جهاز IoT Hub على خاصية تسمى connectionState التي تبلغ إما connected أو disconnected. تمثل هذه الخاصية فهم IoT Hub لحالة اتصال الجهاز.
الخاصية connectionState لها العديد من القيود:
- يتم تحديث هذه الخاصية فقط للأجهزة التي تستخدم MQTT أو AMQP.
- تعتمد تحديثات هذه الخاصية على pings على مستوى البروتوكول وقد يتم تأخيرها حتى خمس دقائق.
هام
نوصي باستخدام connectionState الحقل فقط أثناء التطوير وتصحيح الأخطاء، وليس في الإنتاج. لا يجب أن تستعلم حلول IoT عن الحقل في وقت التشغيل. على سبيل المثال، لا تستعلم عن connectionState الحقل للتحقق مما إذا كان الجهاز متصلا قبل إرسال رسالة من سحابة إلى جهاز أو رسالة نصية قصيرة.
Event Grid
نوصي ب Event Grid كحل مراقبة مفضل لمعظم العملاء. اشترك في الأحداث deviceConnected و deviceDisconnected على Event Grid للحصول على تنبيهات ومراقبة حالة اتصال الجهاز.
استخدم المقالات التالية لمعرفة كيفية دمج الأحداث المتصلة وغير المتصلة بالجهاز في حل IoT الخاص بك:
تتوفر أحداث حالة اتصال الجهاز للأجهزة المتصلة باستخدام إما بروتوكول MQTT أو AMQP، أو باستخدام أي من هذين البروتوكولين عبر WebSockets. الطلبات التي يتم إجراؤها باستخدام HTTPS فقط لن تؤدي إلى تشغيل إشعارات حالة اتصال الجهاز.
- بالنسبة للأجهزة التي تتصل باستخدام Azure IoT SDKs ل Java أو Node أو Python:
- MQTT: يتم إرسال أحداث حالة الاتصال تلقائيا.
- AMQP: يجب إنشاء ارتباط من سحابة إلى جهاز لتقليل التأخيرات في الإبلاغ عن حالات الاتصال.
- بالنسبة للأجهزة التي تتصل باستخدام Azure IoT SDKs ل .NET أو C، لن يتم الإبلاغ عن أحداث حالة الاتصال حتى يتم إرسال رسالة أولية من جهاز إلى سحابة أو تلقي رسالة من سحابة إلى جهاز.
خارج حزم Azure IoT SDK، في MQTT، تعادل هذه العمليات عمليات الاشتراك أو النشر على مواضيع المراسلة المناسبة. عبر AMQP، تعادل هذه العمليات إرفاق رسالة أو نقلها على مسارات الارتباط المناسبة.
قيود شبكة الأحداث
يأتي استخدام Event Grid لمراقبة حالة جهازك مع القيود التالية:
- لا تقوم Event Grid بالإبلاغ عن اتصال كل جهاز على حدة وفصل الحدث. بدلا من ذلك، فإنه يستقصي حالة الجهاز كل 60 ثانية وينشر حالة الاتصال الأحدث إذا كان هناك تغيير في الحالة. لهذا السبب، قد تتأخر تقارير تغيير الحالة لمدة تصل إلى دقيقة واحدة وقد لا يتم الإبلاغ عن تغييرات الحالة الفردية إذا حدثت أحداث متعددة ضمن نافذة 60 ثانية.
- تحتاج الأجهزة التي تستخدم AMQP إلى ارتباط من السحابة إلى الجهاز قبل أن تتمكن من الإبلاغ عن حالة الجهاز.
- تعرض Event Grid نقطة نهاية عامة لا يمكن إخفاؤها.
إذا كان أي من هذه القيود يؤثر على قدرتك على استخدام Event Grid لمراقبة حالة الجهاز، فيجب عليك التفكير في إنشاء نمط رسالة كشف أخطاء اتصال جهاز مخصص بدلا من ذلك.
نمط رسالة كشف أخطاء الاتصال للجهاز
إذا كنت بحاجة إلى معرفة حالة اتصال أجهزتك ولكن قيود شبكة الأحداث مقيدة جدا للحل الخاص بك، يمكنك تنفيذ نمط رسالة كشف أخطاء الاتصال. في نمط رسالة كشف أخطاء الاتصال، يرسل الجهاز رسائل من جهاز إلى سحابة مرة واحدة على الأقل كل فترة زمنية محددة (على سبيل المثال، مرة واحدة على الأقل كل ساعة). حتى إذا لم يكن لدى الجهاز أي بيانات لإرسالها، فإنه لا يزال يرسل رسالة فارغة من جهاز إلى سحابة، عادة مع خاصية تعرفه كرسالة كشف أخطاء الاتصال. ومن جانب الخدمة، سيحتفظ الحل لكل جهاز بمخطط مع رسالة كشف أخطاء الاتصال التي تم تلقيها. إذا لم يتلق الحل رسالة كشف أخطاء الاتصال خلال الوقت المتوقع من الجهاز، فإنه يفترض وجود مشكلة في الجهاز.
قيود رسالة كشف أخطاء الاتصال للجهاز
نظرا لأن رسائل رسالة كشف أخطاء الاتصال يتم تنفيذها كرسائل من جهاز إلى سحابة، فإنها تحسب مقابل الحصة النسبية لرسالة IoT Hub وحدود التقييد.
نمط وقت انتهاء الصلاحية القصير
إذا كان حل IoT يستخدم حالة الاتصال فقط لتحديد ما إذا كان سيتم إرسال رسائل من السحابة إلى الجهاز إلى جهاز، ولا يتم بث الرسائل إلى مجموعات كبيرة من الأجهزة، ففكر في استخدام نمط وقت انتهاء الصلاحية القصير كبديل أبسط لنمط رسالة كشف أخطاء الاتصال. نمط وقت انتهاء الصلاحية القصير هو طريقة لتحديد ما إذا كان سيتم إرسال رسائل من السحابة إلى الجهاز عن طريق إرسال رسائل ذات وقت انتهاء صلاحية قصير للرسالة وطلب إقرارات الرسائل من الأجهزة.
لمزيد من المعلومات، راجع انتهاء صلاحية الرسالة (وقت البقاء) .
خيارات المراقبة الأخرى
قد يتضمن تطبيق أكثر تعقيدًا معلومات من Azure Monitor وصحة موارد Azure لتحديد الأجهزة التي تحاول الاتصال أو الارتباط ولكنها تفشل. تعد لوحات معلومات Azure Monitor مفيدة لرؤية الصحة الإجمالية لأجهزتك، بينما تسهل أنماط شبكة الأحداث ورسالة كشف أخطاء الاتصال الاستجابة لحالات انقطاع الأجهزة الفردية.
لمعرفة المزيد حول استخدام هذه الخدمات مع مركز IoT، راجع Monitor IoT Hub وCheck IoT Hub resource health. لمزيد من المعلومات المحددة حول استخدام Azure Monitor أو Event Grid لمراقبة اتصال الجهاز، راجع مراقبة اتصال الجهاز وتشخيصه واستكشاف الأخطاء وإصلاحها.