Discovery LibreNMS di Nokia 7705 mati dengan Column 'channels' cannot be null dan tidak mengumpulkan DOM
Kami poll beberapa router agregasi Nokia 7705 di LibreNMS dan saya mau DOM optik dari mereka untuk alasan biasa - menangkap span yang mulai lemah sebelum customer melapor. Discovery tidak pernah selesai di device-device itu.
- Nokia 7705 menjalankan TiMOS
- LibreNMS 26.3.1
- SFP 1G single-lane biasa di port-portnya, vendor campuran, sebagian sudah lama
- SNMP-nya sehat di sisi lain: interface, CPU, memory, dan traffic semuanya poll dengan baik
Discovery-nya berhenti di sini setiap kali:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'channels' cannot be null
dan hasilnya tidak ada entry transceiver dan tidak ada sensor optik untuk seluruh router - bukan satu port jelek dengan sisanya jalan, seluruh device-nya kembali kosong.
Yang sudah saya coba:
- jalankan ulang discovery untuk device itu sendirian, error yang sama di titik yang sama
- hapus dan tambahkan lagi device-nya: berhasil dibuat, lalu discovery mati di tempat yang sama
- vendor lain di instalasi yang sama melakukan discovery transceiver dan DOM dengan normal, jadi tidak kelihatan seperti database yang rusak di sisi saya
Apakah ini masalah discovery TiMOS yang sudah diketahui, dan apakah ada yang bisa dilakukan selain mematikan transceiver discovery untuk router-router ini?
Comments 3
Sudah dikenal, dan ini bukan database kamu.
Kode discovery TiMOS menarik lane count dari TIMETRA-PORT-MIB::tmnxPortSFPNumLanes dan menjatuhkan apa pun yang didapatnya langsung ke kolom
channels, yang tidak menerima NULL. Optik single-lane yang lebih tua biasanya jadi biang keladinya: agent-nya tidak pernah mengisi object itu untuk mereka, jadi port-nya menyerahkan null ke insert-nya, insert-nya meledak, dan kegagalannya menjatuhkan seluruh transceiver discovery device itu bersamanya. Itu kenapa kamu kehilangan semua port, bukan cuma yang modulnya aneh.Dua jalan keluar. Yang paling bersih adalah memajukan LibreNMS-nya - perubahan yang diterima upstream menjaga nilainya di LibreNMS/OS/Timos.php, sehingga lane count yang absen atau kosong dibaca sebagai satu channel dan apa pun selain itu dipaksa jadi integer. Kalau kamu terjebak di rilis kamu sekarang, masukkan guard yang sama ke file itu secara manual; cuma beberapa baris, meskipun itu akan hilang di update berikutnya kalau kamu lupa itu ada di situ.
Sebelum kamu patch apa pun, susuri TIMETRA-PORT-MIB::tmnxPortSFPNumLanes di router-nya. Port mana pun yang menjawab dengan kosong itu yang membunuh insert-nya, dan layak tahu optik apa yang duduk di situ.
Dikonfirmasi di dua-duanya, makasih.
Menyusuri OID itu: port dengan optik 1G paling lama tidak mengembalikan apa pun untuk lane count-nya, semua yang lebih baru menjawab dengan 1. Jadi null-nya datang dari modul yang saya warisi, persis seperti dijelaskan.
Setelah pindah ke build yang punya pengecekan itu, discovery-nya jalan sampai selesai di semua 7705, transceiver-nya muncul dengan satu channel masing-masing, dan sensor optiknya sedang digrafikkan. Tidak ada perubahan di sisi router, tidak ada port yang dikecualikan.
Dua hal yang perlu diantisipasi sekarang setelah discovery-nya selesai.
DDM di perangkat Nokia digerbangi oleh capability flag di EEPROM modulnya. Itu pendekatan standar di semua keluarga produknya, dan dijelaskan paling gamblang di 7210 SAS interface guide: platform-nya akan dengan senang hati mencetak diagnostik untuk modul yang tidak pernah menyetel flag itu, sambil mengatakan di paragraf yang sama bahwa dia belum memvalidasi atau memverifikasi angka-angka itu. Kotak yang berbeda dari punya kamu, logika yang sama - angka RX/TX yang masuk akal dari optik pihak ketiga bukan bukti kalibrasinya benar.
Setengah lainnya adalah modulnya sendiri. GLC-SX-MM tidak punya halaman A2h, jadi tidak ada apa pun untuk dibaca poller mana pun; GLC-SX-MMD punya, D-nya itu untuk diagnostics. Satu grafik yang permanen datar dan kosong, cek itu sebelum poller-nya.