استكشاف أخطاء توجيه الرسائل وإصلاحها
توفر هذه المقالة إرشادات المراقبة واستكشاف الأخطاء وإصلاحها للمشكلات الشائعة وحل توجيه رسائل IoT Hub.
مراقبة توجيه الرسائل
نوصيك بمراقبة مقاييس IoT Hub المتعلقة بتوجيه الرسائل ونقاط النهاية لإعطائك نظرة عامة على الرسائل المرسلة. يمكنك أيضا إنشاء إعداد تشخيصي لإرسال عمليات المسارات في سجلات موارد IoT Hub إلى سجلات Azure Monitor أو Event Hubs أو Azure Storage للمعالجة المخصصة. لمعرفة المزيد حول استخدام المقاييس وسجلات الموارد وإعدادات التشخيص، راجع مراقبة مركز إنترنت الأشياء. للحصول على برنامج تعليمي، راجع إعداد المقاييس وسجلات الموارد واستخدامها باستخدام مركز إنترنت الأشياء.
نوصي أيضا بتمكين المسار الاحتياطي إذا كنت تريد الاحتفاظ برسائل لا تتطابق مع طلب البحث على أي من المسارات. يمكن الاحتفاظ بها في نقطة النهاية المضمنة لمقدار أيام الاحتفاظ التي تم تكوينها.
أهم القضايا
فيما يلي المشكلات الأكثر شيوعا التي تمت ملاحظتها مع توجيه الرسالة. لبدء استكشاف الأخطاء وإصلاحها ، انقر فوق المشكلة للحصول على خطوات مفصلة.
- لا يتم توجيه الرسائل الواردة من أجهزتي كما هو متوقع
- توقفت فجأة عن تلقي الرسائل في نقطة نهاية Event Hubs المضمنة
لا يتم توجيه الرسائل الواردة من أجهزتي كما هو متوقع
لاستكشاف هذه المشكلة وإصلاحها، قم بتحليل ما يلي.
مقاييس التوجيه لنقطة النهاية هذه
جميع مقاييس IoT Hub المتعلقة بالتوجيه مسبوقة ب Routing. يمكنك دمج المعلومات من مقاييس متعددة لتحديد السبب الجذري للمشكلات. على سبيل المثال، استخدم محاولات تسليم التوجيه المتري لتحديد عدد الرسائل التي تم تسليمها إلى نقطة نهاية أو تم إسقاطها عندما لم تتطابق مع الاستعلامات على أي من المسارات وتم تعطيل المسار الاحتياطي. تحقق من مقياس زمن انتقال التوجيه لمراقبة ما إذا كان زمن الوصول لتسليم الرسائل ثابتا أم متزايدا. يمكن أن يشير زمن الوصول المتزايد إلى وجود مشكلة في نقطة نهاية معينة ونوصي بالتحقق من صحة نقطة النهاية. تحتوي مقاييس التوجيه هذه أيضا على أبعاد توفر تفاصيل حول المقياس مثل نوع نقطة النهاية واسم نقطة النهاية المحدد وسبب عدم تسليم الرسالة.
سجلات الموارد لأي مشكلات تشغيلية
راقب سجلات موارد Routes للحصول على مزيد من المعلومات حول عمليات التوجيه ونقطة النهاية أو تحديد الأخطاء ورمز الخطأ ذي الصلة لفهم المشكلة بشكل أكبر. على سبيل المثال، يشير اسم العملية RouteAssessmentError في السجل إلى تعذر تقييم المسار بسبب وجود مشكلة في تنسيق الرسالة. استخدم النصائح المقدمة لأسماء العمليات المحددة للتخفيف من حدة المشكلة. عند تسجيل حدث كخطأ، سيوفر السجل أيضا مزيدا من المعلومات حول سبب فشل التقييم. على سبيل المثال، إذا كان اسم العملية هو EndpointUnhealthy، يشير رمز الخطأ 403004 إلى نفاد مساحة نقطة النهاية.
صحة نقطة النهاية
استخدم واجهة برمجة تطبيقات REST Get Endpoint Health للحصول على الحالة الصحية لنقاط النهاية. توفر واجهة برمجة تطبيقات Get Endpoint Health أيضا معلومات حول آخر مرة تم فيها إرسال رسالة بنجاح إلى نقطة النهاية وآخر خطأ معروف وآخر وقت خطأ معروف وآخر مرة تم فيها إجراء محاولة إرسال لنقطة النهاية هذه. استخدم التخفيف المحتمل المتوفر لآخر خطأ معروف محدد.
توقفت فجأة عن تلقي الرسائل عند نقطة النهاية المضمنة
لاستكشاف هذه المشكلة وإصلاحها، قم بتحليل ما يلي.
هل تم إنشاء مسار جديد؟
بمجرد إنشاء توجيه، تتوقف البيانات عن التدفق إلى نقطة النهاية المضمنة، ما لم يتم إنشاء توجيه إلى نقطة النهاية هذه. لضمان استمرار تدفق الرسائل إلى نقطة النهاية المضمنة في حالة إضافة مسار جديد، قم بتكوين مسار إلى نقطة نهاية الأحداث .
هل تم تعطيل المسار الاحتياطي؟
يرسل المسار الاحتياطي كافة الرسائل التي لا تفي بشروط الاستعلام على أي من المسارات الموجودة إلى مراكز الأحداث المضمنة (الرسائل/الأحداث)، المتوافقة مع مراكز الأحداث. إذا تم تشغيل توجيه الرسائل، يمكنك تمكين قدرة التوجيه البديل. إذا لم تكن هناك توجيهات إلى نقطة النهاية المضمنة وتم تمكين توجيه بديل، سيتم إرسال الرسائل التي لا تتطابق مع أي شروط استعلام على التوجيهات إلى نقطة النهاية المضمنة فقط. أيضًا، إذا تم حذف كافة التوجيهات الموجودة، يجب تمكين التوجيه البديل لتلقي كافة البيانات عند نقطة النهاية المضمنة.
يرسل المسار الاحتياطي كافة الرسائل التي لا تستوفي أيا من شروط الاستعلام على أي من المسارات الموجودة إلى مراكز الأحداث المضمنة (الرسائل /الأحداث)، المتوافقة مع مراكز الأحداث. إذا تم تشغيل توجيه الرسائل، يمكنك تمكين قدرة التوجيه البديل. إذا لم تكن هناك مسارات إلى نقطة النهاية المضمنة وتم تمكين مسار احتياطي، إرسال الرسائل التي لا تتطابق مع أي شروط استعلام على المسارات فقط إلى نقطة النهاية المضمنة. أيضا، إذا تم حذف جميع المسارات الموجودة، يجب تمكين المسار الاحتياطي لتلقي جميع البيانات في نقطة النهاية المضمنة.
يمكنك تمكين المسار الاحتياطي أو تعطيله في مدخل Azure باستخدام الشفرة النصلية لتوجيه الرسائل لمركز إنترنت الأشياء. يمكنك أيضا استخدام Azure Resource Manager ل FallbackRouteProperties لاستخدام نقطة نهاية مخصصة لمسار احتياطي.
آخر الأخطاء المعروفة لنقاط نهاية توجيه IoT Hub
يوفر الحصول على صحة نقطة النهاية في واجهة برمجة تطبيقات REST الحالة الصحية لنقاط النهاية، بالإضافة إلى آخر خطأ معروف، لتحديد سبب عدم صحة نقطة النهاية. يسرد الجدول أدناه الأخطاء الأكثر شيوعا.
| آخر خطأ معروف | الوصف / عند حدوثه | التخفيف المحتمل |
|---|---|---|
| مؤقت | حدث خطأ عابر وسيقوم IoT Hub بإعادة محاولة العملية. | مراقبة سجلات موارد المسارات. |
| InternalError | حدث خطأ أثناء تسليم رسالة إلى نقطة نهاية. | هذا استثناء داخلي ولكن أيضا مراقبة سجلات موارد المسارات. |
| غير مصرح به | IoT Hub غير مصرح له بإرسال رسائل إلى نقطة النهاية المحددة. | تحقق من أن سلسلة الاتصال محدثة لنقطة النهاية. إذا تم تغييره، ففكر في تحديث على IoT Hub. إذا كانت نقطة النهاية تستخدم هوية مدارة، فتحقق من أن مدير IoT Hub لديه الأذونات المطلوبة على الهدف. |
| مخنوق | يتم خنق IoT Hub أثناء كتابة الرسائل في نقطة النهاية. | راجع حدود الخانق لنقطة النهاية المتأثرة. قم بتعديل تكوينات نقطة النهاية لتوسيع نطاقها إذا لزم الأمر. |
| Timeout | مهلة التشغيل. | يُرجى إعادة المحاولة لتنفيذ العملية. |
| غير موجود | المورد المستهدف غير موجود. | تأكد من وجود المورد المستهدف. |
| لم يتم العثور على حاوية | حاوية التخزين غير موجودة. | تأكد من وجود حاوية التخزين. |
| تم تعطيل الحاوية | تم تعطيل حاوية التخزين. | تأكد من تمكين حاوية التخزين. |
| MaxMessageSizeExceeded | يحتوي توجيه الرسائل على حد لحجم الرسالة يبلغ 256 كيلوبايت.تجاوز حجم الرسالة التي يتم توجيهها هذا الحد. | تحقق مما إذا كان يمكن تقليل حجم الرسالة باستخدام خصائص تطبيق أقل أو إثراءات أقل للرسائل. |
| التقسيمو DuplicateDetectionNotSupported | قد لا يكون ناقل الخدمة ممكنا للكشف عن التكرارات. | تعطيل الكشف عن التكرارات من ناقل الخدمة أو النظر في استخدام كيان دون الكشف عن تكرار. |
| SessionfulEntityNot Supported | قد لا يتم تمكين جلسات حافلة الخدمة. | تعطيل جلسة العمل من ناقل الخدمة أو النظر في استخدام كيان بدون جلسات. |
| NoMatchingالاشتراكاتForMessage | لا يوجد اشتراك لكتابة رسالة حول موضوع ناقل الخدمة. | أنشئ اشتراكا لرسائل IoT Hub ليتم توجيهها إليها. |
| نقطة النهايةخارجيامعطل | نقطة النهاية ليست في حالة نشطة حتى يتمكن IoT Hub من إرسال رسائل إليها. | قم بتمكين نقطة النهاية لإعادتها إلى حالتها النشطة. |
| الجهازالحد الأقصىقائمة الانتظارالعمقتجاوزت | تم الوصول إلى الحد الأقصى لحجم حافلة الخدمة. | ضع في اعتبارك إزالة الرسائل من مراكز الأحداث المستهدفة للسماح باستيعاب رسائل جديدة في مراكز الأحداث. |
مسارات سجلات الموارد
فيما يلي أسماء العمليات ورموز الخطأ المسجلة في سجلات موارد المسارات.
أسماء العمليات
| اسم العملية | المستوى | الوصف |
|---|---|---|
| UndefinedRouteEvaluation | المعلومات | لا يمكن تقييم الرسالة بشرط العطاء. على سبيل المثال، إذا كانت الخاصية في شرط استعلام المسار غائبة في الرسالة. تعرف على المزيد حول توجيه بناء جملة الاستعلام. |
| المسارالتقييمخطأالخطأ | خطأ | حدث خطأ في تقييم الرسالة بسبب مشكلة في تنسيق الرسالة. على سبيل المثال، سيتم تسجيل هذا الخطأ إذا لم يتم تحديد ترميز المحتوى أو نوع المحتوى غير صالح في الرسالة. يجب تعيين هذه في خصائص النظام. |
| الرسالة المسقطة | خطأ | تم إسقاط الرسالة ولم يتم توجيهها. قد يكون هذا لأسباب مثل الرسالة التي لم تتطابق مع أي استعلام توجيه أو كانت نقطة النهاية ميتة ولا يمكن تسليم الرسالة بعد عدة عمليات إعادة صياغة. نوصي بالحصول على مزيد من التفاصيل حول نقطة النهاية باستخدام واجهة برمجة تطبيقات REST للحصول على صحة نقطة النهاية. |
| نقطة النهايةغير صحية | خطأ | لم تقبل Endpoint الرسائل من IoT Hub ويحاول IoT Hub إعادة إرسال الرسائل. نوصي بمراقبة آخر خطأ معروف عبر واجهة برمجة تطبيقات REST للحصول على صحة نقطة النهاية. |
| EndpointDead | خطأ | لم تقبل Endpoint الرسائل من IoT Hub لأكثر من ساعة. نوصي بمراقبة آخر خطأ معروف عبر واجهة برمجة تطبيقات REST للحصول على صحة نقطة النهاية. |
| نقطة النهايةصحية | المعلومات | نقطة النهاية صحية وتتلقى رسائل من IoT Hub. لا يتم تسجيل هذه الرسالة بشكل مستمر، ولكن يتم تسجيلها فقط عندما تصبح نقطة النهاية صحية مرة أخرى. تعني هذه الرسالة أن IoT Hub لم يتمكن من إرسال رسائل إلى نقطة النهاية ، ولكن نقطة النهاية أصبحت الآن صحية. |
| رسالة يتيمة | المعلومات | الرسالة غير متطابقة مع أي مسار. |
| رسالة غير صالحة | خطأ | الرسالة غير صالحة بسبب عدم التوافق مع نقطة النهاية. نوصي بالتحقق من تكوينات نقطة النهاية. |
يتم خنق العمليات UndefinedRouteAssessment و RouteAssessmentError و OrphanedMessage وتسجيلها مرة واحدة في الدقيقة لكل مركز إنترنت الأشياء.
رموز الخطأ الشائعة
| التعليمات البرمجية للأخطاء | الوصف |
|---|---|
| 401002 | Iot Hub الوصول غير المصرح به |
| 413001 | رسالة كبيرة جدا |
| 403004 | تجاوز الحد الأقصى لعمق قائمة انتظار الجهاز |
| 503008 | تلقي رابط مخنوق |
| 500000 | خطأ عام في الخادم |
| 401 | غير مصرح به |
| 503 | الخدمة غير متوفرة |
| 500001 | خطأ في الخادم |
| 400103 | ترميز المحتوى غير الصالح أو نوع المحتوى |
| 404001 | لم يتم العثور على الجهاز |
الخطوات التالية
إذا كنت بحاجة إلى مزيد من المساعدة، فيمكنك الاتصال بخبراء Azure في منتديات Microsoft QA& وStack Overflow. بدلا من ذلك، يمكنك تسجيل حادث دعم Azure. انتقل إلى موقع دعم Azure، وحدد Get Support.