«

»

Mrz
10

Icinga: Abfragen von Routern und anderen Geräten über SNMP

In diesem Beitrag beschreibe ich die Abfrage von Routern (Cisco, Linksys, Enterasys, Netgear, Alcatel) über SNMP mit Hilfe von check_snmp. Da SNMP nach RFC 1157 und RFC 3410 standardisiert ist, kann man damit so ziemlich jedes Gerät zwischen Drucker, Windows/Linux Server und Routern/Switches über das Netzwerk abfragen. Dabei stehen dem einem so viele Werte zur Verfügung, dass man zuerst einmal auswählen muss welche man überhaupt überwachen will.

1.) Konfiguration des Routers für Zugriff über SNMP.

Der erste Schritt, ist die Einrichtung des Routers. SNMP V1 und V2c haben keine User/Password Authentifizierung, sondern bloß einen Community-String. Dieses Passwort wird benötigt um Werte über SNMP abzufragen oder zu verändern. Die Konfiguration geschieht entweder über Telnet oder ein Webinterface auf dem Router.

Achtung: Per Default ist auf den Meisten Geräten mit SNMP der String “public” als Read-Only und “private” als Read-Write eingestellt. Dies ist eine Sicherheitslücke, die Sofort geschlossen werden sollte!

2.) Installation von check_snmp

Wenn man Icinga nach dem Tutorial auf dieser Seite installiert hat, sollte das Plugin auf jeden Fall schon da sein, weil es in den Standard-Nagios-Plugins enthalten ist. Sollte das Plugin nicht installiert sein, ist das in den meisten Fällen auf das fehlen der snmp Devel Pakete zurückzuführen. Diese installiert man unter Debian/Ubuntu einfach mit hilfe von

1
aptitude install snmp libsnmp-dev

Hat man die Standard-Plugins zuvor schon einmal installiert muss man dies erneut durchführen und sollte nicht vergessen vorher “make clean” auszuführen.

3.) Beschaffung von Infos über das Gerät.

Obwohl nicht von jedem empfohlen, da es manche wirklich schwachbrüstige Router auf dem Zahnfleisch laufen lässt aber sehr praktisch um einmal alles herauszufinden ist ein snmpwalk über alle Einträge.

1
snmpwalk -v 2c 192.168.0.1 -c COMMUNITY-STRING > RouterInfos.txt

In diesem Beispiel hat des Router die IP 192.168.0.1 und die Ergebnisse werden in RouterInfos.txt gespeichert.

Jetzt kann man nach interessanten Einträgen suchen. Leider sieht dies bei unterschiedlichen Herstellern und sogar Modellen unterschiedlich aus. Aber interessant sind Einträge über den Zustand von Schnittstellen sowie ein Byte-Counter für die Schnittstelle um den Durchschnittlichen Traffic auszuwerten. Auch Informationen wie die Zeit seit letztem Reboot, Temperatur, CPU und Speicherauslastung sind hier zu finden.

4) Konfigurationsbeispiel

Die Beispielkonfiguration testen den Zustand der Schnittstelle eth0 auf einem CISCO Router. Zu beachten ist der Einsatz von $USER3$. In diesem Makro ist der Community-String für den Router gespeichert. Diesen kann man vom Icinga-Webinterface aus nicht auslesen.

1
2
3
4
5
6
7
8
9
10
11
define service{
 
use generic-service
 
host_name ROUTERNAME
 
service_description Check eth0
 
check_command check_snmp!-C $USER3$ -o ifOperStatus.0 -r 1 -m RFC1213-MIB
 
}
  • Delicious
  • Facebook
  • Digg
  • Reddit
  • StumbleUpon
  • Twitter

1 Kommentar

  1. wo kann ich sagt:

    “Sollte das Plugin nicht installiert sein, ist das in den meisten Fällen auf das fehlen der snmp Devel Pakete zurückzuführen” – danke! *g*

Hinterlasse eine Antwort

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

Sie können diese HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">