Lancom Router per SNMP überwachen
Dieses Posting erklärt, wie man eine Management Information Base (MIB) eines Lancom Routers auf einem Linux Server für die Überwachung per SNMP installiert.
Problemstellung
Ein Router des Herstellers Lancom hat immer wieder Performance Probleme und soll deshalb automatisch überwacht werden. Der Router unterstützt das Simple Network Management Protocol SNMP [1], worüber alle relevanten Informationen des Routers ausgelesen werden können. Für die Überwachung soll nicht das vom Hersteller angebotene Tool SNMP Monitor verwendet werden, sondern der sowieso vorhandene Monitoring Server mit der Open Monitoring Distribution (OMD) [2].
Lancom verwendet in seinen Routern neben den Managed Objects der Internet Assigned Numbers Authority (IANA) und der Internet Engineering Task Force (IETF) auch eigene Managed Objects. Die dafür nötige Management Information Base (MIB) kann man direkt aus dem Router beziehen. In diesem Knowledge Base Eintrag [3] mit dem Titel "SNMP und MIB" wird beschrieben, wie man die MIB erhalten kann.
MIB installieren
Der Monitoring Server läuft unter Ubuntu precise (12.04.4 LTS) und die MIBs der IANA und IETF wurden bereits installiert. MIBs befinden sich bei Ubuntu im Verzeichnis "/usr/share/mibs". Für die neue MIB von Lancom wird das Verzeichnis "lcos" angelegt und anschließend die MIB vom Router dorthin kopiert:
sudo mkdir /usr/share/mibs/lcos
sudo cp LC-UNIFIED-LCOS-9-00-REL-OIDS.mib /var/lib/mibs/lcos/LC-UNIFIED-LCOS-9-00-REL-OIDS
Abschließend muss die SNMP Konfigurationsdatei bearbeitet werden:
sudo vi /etc/snmp/snmp.conf
In die Datei fügt man folgende Zeilen am Ende an:
mibdirs +/usr/share/mibs/lcos
mibs +LCOS-MIB
Nach einem Neustart des SNMP Dienstes stehen die neu importierten Managed Objects für Abfragen zur Verfügung.
sudo service snmpd restart
Beispiel
Um die neue MIB zu prüfen, bieten sich beispielsweise folgende Abfragen an:
Informationen und Details über die gesamte Menge an Arbeitsspeicher des Routers:
user@omd $ snmptranslate -Td -OS LCOS-MIB::lcsStatusHardwareInfoTotalMemoryKbytesLCOS-MIB::lcsStatusHardwareInfoTotalMemoryKbytes
LCOS-MIB::lcsStatusHardwareInfoTotalMemoryKbytes
lcsStatusHardwareInfoTotalMemoryKbytes OBJECT-TYPE
-- FROM LCOS-MIB
SYNTAX Integer32 (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION ""
::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1) lancom-systems(2356) lcos(11) lcsStatus(1) lcsStatusHardwareInfo(47) 4 }
Abfrage der gesamten Menge an Arbeitsspeicher
user@omd $ snmpwalk -t 2 -r 2 -v 1 -c public 192.168.0.1 LCOS-MIB::lcsStatusHardwareInfoTotalMemoryKbytes
LCOS-MIB::lcsStatusHardwareInfoTotalMemoryKbytes.0 = INTEGER: 262144
Nagios Plugin
Damit ist es also möglich, Lancoms Managed Objects des Routers per SNMP abzufragen. Um die Überwachung automatisiert von unserem Monitoring Server durchführen zu lassen, benötigt man passende Nagios Plugins. Für die Überwachung der CPU Nutzung [4], der Temperatur [5] und des verwendeten Arbeitsspeichers [6] des Routers habe ich passende Plugins erstellt und auf Nagios Exchange veröffentlicht. Die Plugins lassen sich, wie alle Plugins, in Nagios als neues Kommando einbinden. Die Command-Direktive für die CPU Nutzung sieht beispielsweise wie folgt aus:
define command {
command_name check_snmp_router_cpu
command_line $USER2$/check_snmp_router_cpu.sh -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$
}

Mit dem Webinterface Thruk lassen sich die Einstellungen angenehm am Browser durchführen.
Dazu passend sieht die Service-Direktive wie folgt aus:
define service {
service_description router_check_snmp_cpu
host_name router01
use check_mk_perf
check_command check_snmp_router_cpu!public!80!90
check_interval 1
check_period 24X7
contact_groups support
flap_detection_enabled 0
max_check_attempts 1
retry_interval 1
}
Im Webinterface Thruk ist das die Service-Direktive:
Mit diesen Einstellungen überwacht Nagios automatisch alle 60 Sekunden den Zustand des Routers. Die Nagios Plugins sind so angelegt, dass die Rückgabewerte von Nagios als PerfData interpretiert werden können. In Verbindung mit dem Template check_mk_perf erstellt Nagios ansehnliche Grafiken mit den Leistungsparametern des Routers.