Monitoring mit SNMP und MRTG Teil 1/2
(Zurück zum Inhaltsverzeichnis)
Beginnen wir mit der Einrichtung von SNMP
Das Monitoring besteht aus 2 Teilen, die Software, die die Daten liefert (hier SNMP)
und die Software, diese Werte grafisch aufbereitet (MRTG).
Bei den zu überwachenden Rechnern (Client) reicht SNMP,
bei dem auswertenden Rechner(Server) muss beides installiert werden.
Abrufbar sind die Diagramme dann über eine Webseite.
Allgemeines:
Betriebssystem: Debian Jessie
Alle Namen und Adressen sind frei erfunden, belästigt also meinen Honeypot nicht so viel.
SNMP installieren und einrichten
Hier geht es darum, Werte von anderen SNMP-fähigen Rechnern abzufragen.
Das können Zahlen sein, aber auch Textstrings mit Angaben über den angefragten Rechner.
Eine gute Anleitung und Beispiele findet man hier bei: http://www.satsignal.eu
Hintergrundwissen
MRTG wertet hier nur Integerzahlen aus. Wenn man also eine Temperatur von 23.54° übermitteln will,
muss man auf den Client den Zahlenwert mit 100 multiplizieren, so das der Wert 2354 übermittelt wird.
In MRTG kann man diesen Wert mittels Factor und YTicsFactor (in diesem Beispiel mit 0.01) wieder auf realistische Werte reduzieren.
Allerdings zeigt Legend(I,O,1,2,3,4) nur eine Nachkommastelle an.
Außerdem speichert MRTG den Integerwert in seiner Historie.
Installation
Dazu muss man erstmal SNMP auf allen Raspberrys nachinstallieren:
danach mit:
diese Zeile:
in:
ändern. Weiter geht es nach der Zeile mit dem Inhalt:
darunter wird folgende Zeile eingefügt:
Hier noch eine Warnung zum dem Standard-Wert: "public". Ihn sollte man jetzt ändern,
er ist standardmäßig vorhanden und sollte grundsätzlich immer geändert werden.
Denn jeder (bösartige) Hacker kennt diesen Wert und kann damit das System ausforschen.
Außerdem ist es jetzt noch einfach, denn wenn erst mehrere Rechner überwacht werden ist das nachträgliche Ändern ziemlich mühsam.
Nur ein Beispiel:
Spezielles zu I2C
Das war die Grundausstattung, jetzt kommt ein Tip, der mich eine Menge Zeit gekostet hat
(Dank an David Taylor von Satsignal), denn wenn man I2C-Werte abfragen will,
muss man SNMP noch einer Spezialbehandlung unterziehen:
sonst kann snmp nicht auf den i2c zugreifen. Zusätzlich muß man in /etc/snmp/snmpd.conf nach der Zeile:
die Zeile:
einfügen. Und nicht vergessen, SNMP neustarten:
Erster Test mit Load 1min
ergibt eine mögliche Antwort(Eigene IP verwenden):
Eigene Scripte einbinden Hier die CPU-Temperatur
Dazu muss man in der
(gegen Ende) eine weitere Zeile hinzufügen:
Und folgendes Bash-Script
erstellen
#!/bin/bash
echo .1.3.6.1.2.1.25.1.8
echo gauge
cat /sys/class/thermal/thermal_zone0/temp
exit 0
Mit chmod 0755 ausführbar machen und snmp neu starten. Dann ein erster Test:
sollte etwa so etwas ergeben:
Übersetzt: Die CPU-Temperatur beträgt 51.54 Grad
Das war erstmal die Grundausstattung für SNMP, alles weitere baut darauf auf.
Tip(s)
Geschwätzigkeit von snmp abstellen
Leider hat snmp die Eigenschaft, das syslog-File massiv zu vergrößern.
Für das gelegentliche debuggen ist das okay, auf die Dauer leidet die SD-Karte auf dem Raspberry.
Am Ende des Files folgende Zeile eintragen:
Abspeichern und snmp neu starten
Edit: Fiptehler zusätzliche Links