CodingBox Q&A Ask question

اكتشاف (discovery) LibreNMS على جهاز Nokia 7705 يتعطل برسالة Column 'channels' cannot be null ولا يجمع بيانات DOM

Asked Active Viewed 60 AI translation from English
3

نستطلع (poll) عدداً قليلاً من راوترات التجميع Nokia 7705 عبر LibreNMS، وأردت الحصول على بيانات DOM البصرية منها للسبب المعتاد - التقاط تدهور خط قبل أن يلاحظه العميل. عملية الاكتشاف (discovery) لا تكتمل أبداً على تلك الأجهزة.

  • Nokia 7705 يعمل بنظام TiMOS
  • LibreNMS 26.3.1
  • موديولات SFP عادية أحادية المسار (single-lane) بسرعة 1G في المنافذ، من عدة موردين، بعضها قديم
  • SNMP سليم فيما عدا ذلك: الواجهات، المعالج، الذاكرة، وحركة البيانات كلها تُستطلع بشكل جيد

يتوقف الاكتشاف هنا في كل مرة:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'channels' cannot be null

والنتيجة هي عدم وجود أي مدخلات موديولات (transceiver) ولا أي حساسات بصرية للراوتر بأكمله - ليس منفذاً واحداً معطوباً مع بقية المنافذ تعمل، بل الجهاز بأكمله يعود فارغاً.

ما جرّبته:

  • أعدت تشغيل الاكتشاف لهذا الجهاز بمفرده، نفس الخطأ في نفس النقطة
  • حذفت الجهاز وأعدت إضافته: يُنشأ، ثم يتعطل الاكتشاف في نفس المكان
  • أجهزة موردين آخرين في نفس التركيب تكتشف الموديولات وDOM بشكل طبيعي، لذا لا يبدو الأمر وكأنه قاعدة بيانات معطوبة لدي

هل هذه مشكلة معروفة في اكتشاف TiMOS، وهل هناك أي شيء يمكن فعله حيالها غير إيقاف اكتشاف الموديولات لهذه الراوترات؟

Comments 3

Accepted answer

مشكلة معروفة، وهي ليست قاعدة بياناتك.

شيفرة اكتشاف TiMOS تسحب عدد المسارات (lanes) من TIMETRA-PORT-MIB::tmnxPortSFPNumLanes وتضع أياً كان ما تحصل عليه مباشرة في عمود channels، الذي لا يقبل NULL. الموديولات القديمة أحادية المسار هي المتسبب المعتاد: الوكيل (agent) لا يملأ هذا الكائن لها أبداً، فيمرّر المنفذ قيمة null إلى عملية الإدراج، فتنفجر عملية الإدراج، ويسحب الفشل معه اكتشاف الموديولات لكامل الجهاز. لهذا تفقد كل منفذ بدلاً من فقدان المنفذ ذي الموديول الغريب فقط.

طريقتان للخروج من هذا. الأنظف هي ترقية LibreNMS إلى إصدار أحدث - التعديل المقبول في المصدر الأساسي (upstream) يحمي القيمة في ملف LibreNMS/OS/Timos.php، بحيث تُقرأ قيمة عدد المسارات الغائبة أو الفارغة كقناة واحدة ويُفرض على أي قيمة أخرى أن تكون عدداً صحيحاً. إذا كنت عالقاً على إصدارك الحالي، ضع نفس الحماية في ذلك الملف يدوياً؛ إنها بضعة أسطر فقط، رغم أنها ستختفي عند التحديث التالي إذا نسيت وجودها.

قبل أن تُصلح أي شيء، تصفّح TIMETRA-PORT-MIB::tmnxPortSFPNumLanes على الراوتر. أياً كانت المنافذ التي لا تجيب بشيء هي التي تقتل عملية الإدراج، ويستحق الأمر معرفة أي موديولات بصرية موجودة فيها.

7 CanadalinkadminCA Show original (English) AI translation

تأكدت من الأمرين، شكراً.

عند تصفّح ذلك المعرّف (OID): المنافذ ذات الموديولات البصرية الأقدم بسرعة 1G لا تعيد شيئاً إطلاقاً لعدد المسارات، وكل ما هو أحدث يجيب بـ 1. إذن قيمة null تأتي من الموديولات التي ورثتها، تماماً كما وُصف.

بعد الانتقال إلى إصدار يحتوي على هذا التحقق، يعمل الاكتشاف حتى النهاية على جميع أجهزة 7705، وتظهر الموديولات بقناة واحدة لكل منها، ويجري رسم الحساسات البصرية بيانياً. لا تغييرات على جانب الراوتر، ولا استبعاد لأي منافذ.

0 Indiawaverunner21IN Show original (English) AI translation

شيئان يجب توقعهما الآن بعد اكتمال الاكتشاف.

ميزة DDM على أجهزة Nokia مقيّدة بعلامة قدرة (capability flag) في EEPROM الموديول. هذا هو النهج المعتمد عبر جميع العائلات، ويُشرح بوضوح أكبر في دليل واجهات 7210 SAS: المنصّة ستطبع بكل سرور تشخيصات لموديول لم يضبط تلك العلامة أبداً، بينما تقول في نفس الفقرة إنها لم تتحقق من صحة تلك الأرقام أو تتأكد منها. جهاز مختلف عن جهازك، لكن نفس المنطق - أرقام RX/TX معقولة من موديول بصري خارجي ليست دليلاً على صحة المعايرة.

النصف الآخر هو الموديول نفسه. GLC-SX-MM ليس له صفحة A2h، لذا لا يوجد شيء يقرأه أي مستطلع (poller)؛ أما GLC-SX-MMD فلديه ذلك، والحرف D يعني التشخيصات (diagnostics). رسم بياني واحد ثابت وفارغ بشكل دائم، تحقق من ذلك قبل المستطلع.

2 Netherlandsoptichub40NL Show original (English) AI translation
Log in to comment. Log in