SNMP-Monitoring mit Zabbix

SNMP-Monitoring mit Zabbix, also SNMP-Geräte mit Zabbix zu überwachen, geht “eigentlich” ganz einfach:

  • Host in Zabbix anlegen.
  • SNMP-Read-Community in den Macros eintragen.
  • “SNMP interfaces” IP-Nummer und/oder DNS-Name eintragen.
  • Template “Template SNMP OS Linux” (oder eine passendes anderes SNMP-Template) zuordnen.

Fertig. Das Template enthalt Low-Level-Discoveries, um z.B. interfaces zu überwachen (Traffic und “operational state”).

Theoretisch war’s das. Praktisch klappt das mit der Namensauflösung (SNMP-Mib-Mapping) nicht auf Anhieb. Hier ist beschrieben, wie es funktionieren könnte. Im Wesentlichen soll man das Package snmp-mibs-downloader installieren. Das hat aber bei mir auch nicht geholfen. Ich bekam immer massig dieser Fehler:

Unlinked OID in IPATM-IPMC-MIB: marsMIB ::= { mib-2 57 }
Undefined identifier: mib-2 near line 18 of /usr/share/mibs/ietf/IPATM-IPMC-MIB
Bad operator (INTEGER): At line 73 in /usr/share/mibs/ietf/SNMPv2-PDU
Expected "::=" (RFC5644): At line 493 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Expected "{" (EOF): At line 651 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Bad object identifier: At line 651 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
Bad parse of OBJECT-IDENTITY: At line 651 in /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
SNMPv2-MIB::sysDescr.0 = STRING: Linux EAP110-Outdoor 2.6.31 #1 PREEMPT Wed Nov 9 16:01:56 CST 2016 mips
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.11863.3.2.10
DISMAN-EXPRESSION-MIB::sysUpTimeInstance = Timeticks: (1215754) 3:22:37.54
SNMPv2-MIB::sysContact.0 = STRING: dirk@wor.net
SNMPv2-MIB::sysName.0 = STRING: eap1
SNMPv2-MIB::sysLocation.0 = STRING: m
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (10) 0:00:00.10
SNMPv2-MIB::sysORID.1 = OID: TCP-MIB::tcpMIB
...

Folgendes musste ich (in meinem Dockerfile) machen, damit alles klappt:

  • Packages snmp und snmp-mibs-downloader installieren.
  • Lookup-Path für MIBs setzen:
    ENV MIBDIRS=/usr/share/snmp/mibs:/var/lib/zabbix/mibs:/usr/share/mibs/ietf:/usr/share/mibs/iana
    
  • MIB-Lookup aktivieren (so wie im genannten Link beschrieben, aber hier in Docker-Syntax:
    RUN sed -i 's/^\( *mibs *:.*\)$/# \1/g' /etc/snmp/snmp.conf
    
  • Fehlerhafte MIBs löschen:
    RUN rm /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB && \
        rm /usr/share/mibs/ietf/SNMPv2-PDU && \
        rm /usr/share/mibs/ietf/IPATM-IPMC-MIB 
    
  • MIB-Lookup “Testlauf”. Dieser scheint zu bewirken, dass Caches (o.ä.) eingerichtet werden:
    RUN snmptranslate .iso.3.6.1.6.3.1.1.5.3
    

Alles zusammen findet sich in meinem Dockerfile auf github bzw. im Dockerhub dsteinkopf/zabbix-server-mysql-no-fping6. Damit klappt es dann tatsächlich so einfach wie oben beschrieben.

Als Ergebnis kann man dann z.B. so einen Graph erstellen:

Mit Hilfe von Zabbxi SNMP-Monitoring entstander Graph der WLAN-Nutzung

Links

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.