SNMP
Fehlende Vorlage
Das gewünschte Template „Wiki/Vorlagen/InArbeit“ existiert nicht.
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Das SNMP (Simple Network Management Protocol) ist ein Netzwerkprotokoll, mit welchen Elemente eines Netzwerks (z.B Router, Server, Switches, Drucker, Computer, etc.) von einer zentralen Station aus überwacht und gesteuert werden können. Das Protokoll regelt hierbei die Kommunikation zwischen den überwachten Geräten und der Überwachungsstation. SNMP wurde so ausgelegt, dass jedes netzwerkfähige Gerät mit in die Überwachung und Steuerung einbezogen werden kann.
SNMP ermöglicht
Überwachung von Netzwerkkomponenten,
Fernsteuerung und Fernkonfiguration von Netzwerkkomponenten,
Fehlererkennung und Fehlerbenachrichtigung.
Da SNMP recht einfach gehalten ist, wird dieses Protokoll von den meisten Managementprogrammen, sowohl als auch von den meisten Endgeräten benutzt.
Installation¶
Um unter Ubuntu mit einem Rechner einzelne Netzwerkelemente über SNMP anzusprechen, muss das Paket
snmp
installiert sein.
grundlegende Konfiguration¶
Die Konfiguration findet sich in der Datei /etc/snmp/snmpd.conf. Hier trägt man zunächst folgende Zeilen ein:
rocommunity public 127.0.0.1 rocommunity mycomm <IP bzw. Name des überwachenden Servers> syscontact Sysadmin (root@localhost) syslocation Server Room 1
Die Community muss man später bei einem snmpwalk bzw. snmpget mit angeben, damit der Zugriff erlaubt wird. trägt man statt rocommunity ein rwcommunity hier ein, so kann man dier Werte nicht nur auslesen, sondern auch setzen (sofern die Werte überhaupt veränderbar sind).
Eine Liste der zur Verfügung stehenden Daten erhält man nun auf dem überwachenden Server mit
snmpwalk -v1 -c mycomm <IP bzw. Name des zu überwachenden Clients>
Will man die Liste auf dem Rechner selbst erhalten, so muss man einfach das mycomm durch public ersetzen.
weitere Konfigurationsmöglichkeiten in der snmpd.conf¶
Je nachdem, was man überwachen möchte, kann man in der /etc/snmp/snmpd.conf nun weitere Einstellungen vornehmen, um z.B. Partitionsfüllstände, Dateigrössen, Logdateien und anderes zu überwachen. Dafür muss man lediglich eine entsprechende Zeile eintragen
disk / disk /home includeAllDisks 10% file /var/log/apache2/apache2.log 10000 file /var/log/ PROC sshd
Hierbei steht jeweils der erste Eintrag für die jeweilige Direktive, der zweite für das zu überwachende und der (nicht unbedingt notwendige) dritte Wert, für den Grenzwert zum setzen eines entsprechnden Fehler-Markers (dazu dann bei snmpget mehr).
snmpget und snmpwalk¶
Mit snmpwalk kann man ganze Listen von Werten anzeigen, mit snmpget erhält man im Gegensatz dazu nur einzelne Werte, also z.B.
snmpwalk -v1 -c mycomm <IP> memory snmpget -v1 -c mycomm <IP> memAvailReal.0
Viele Werte findet man in den Tabllen prTable, memory, extTable, dskTable, loadTable, systemStats, ucdDemoMIB, fileTable, logMatch, version, snmperrs, mibRegistryTable. Hierfür müssen dann teilweise erstmal entsprechende Einträge in der /etc/snmp/snmpd.conf gemacht sein, z.B. für fileTable. Werden die in der snmpd.conf angegebenen Schwellwerte Überschritten, so wird ein entsprechndes Fehlerflag gesetzt, z.B. das dskErrorFlag, falls der angegebene prozentuale freie Platz unterschritten wurde. Die entsprechende Fehlermeldung steht dann in dskErrorMsg.
MIBs und OIDs¶
Die MIB-Dateien (MIB = Management Information Base) liegen unter /usr/share/snmp/mibs. Diese enthalten die Informationen, die man per SNMP abfragen und ändern kann. Ähnlich wie bei einen LDAP-Schame sind alle Objekte in einer Baumstruktur angeordnet, wobei die Knoten keine eigenen Werte, sondern nur Listen der darunterliegenden Objekte enthalten. Jedes Objekt hat eine eindeutige OID (Objext Identifier) zugeordnet, wobei die einzelnen Knoten des Baumes durch Punkte getrennt aufgeführt werden. Dabei gibt es für die einzelnen Knoten sowohl eine darstellende Zahl als auch eine etwas aussagekrätigerere Kette von Worten (z.B. entspricht .1.3.6.1.4.1.2021.9 dem Wort .iso.org.dod.internet.private.enterprises.ucdavis.dskTable).
Die wichtigsten MIB-Dateien unter Ubuntu sind die UCD-SNMP-MIB.txt und die UCD-SNMP-MIB.txt.
Den Inhalt einer MIB-Datei übersichtlich darstellen und browsen kann man mit verschiedenen Programmen, z.B. dem
tkmib
# get, set, walk, translate # mib & oid