Du möchtest in regelmäßigen Abständen automatisch den Netzwerkdurchsatz zu einem System ermitteln und dokumentieren? Nachfolgend beschreibe ich eine Möglichkeit dies mit Centreon, dem Tool iperf und dem Monitoring-Plugin check_iperf zu realisieren.
Die Basis für dieses Beispiel bildet Centreon Web in Version 2.7.4 auf Ubuntu Server 14.04 mit Centreon Engine und Centreon Broker. Das Plugin wurde von mir ein wenig modifiziert, da mir die Statusinformation und die fehlenden Performancedaten nicht so recht gefallen haben. Das Original-Plugin gibt es auf Nagios Exchange.
Download Monitoring-Plugin „check_iperf.pl“
Wie funktioniert das Plugin?
Das in Perl geschriebene Plugin führt im Prinzip eine einfache iperf Messung durch. Für eine Bandbreitenmessung benötigt man immer einen iperf-Server (Ziel-Host) und einen iperf-Client (Centreon-Server). In der Default-Einstellung werden die Messdaten vom Client zum Server gesendet, d.h. gemessen wird der Durchsatz vom Centreon-Server zum Ziel-Host. Die Messung dauert 10 Sekunden, je nach Zeitplan wird diese z.B. alle 5 Minuten ausgeführt.
So wird das Plugin angewendet:
check_iperf.pl <Ziel-Host> <critical> <warning>
Test des Plugins unter dem User „Centreon-Engine“:
/usr/lib/nagios/plugins/check_iperf.pl 8.8.8.8 10 20 OK: iperf returns 101 Mbits/sec (wsize 0.02 M) | speed=101
Im Hintergrund wurde folgender Befehl auf dem Centreon-Server ausgeführt:
iperf -c 8.8.8.8 -m -f m
Ziel-System vorbereiten
Auf dem zu überwachenden Ziel-System muss iperf Version 2 als Server ausgeführt werden.
Debian Linux
Auf einem Debian-System wird iperf auf dem gleichen Weg wie auf dem Monitoring-Server installiert.
apt install iperf
Ausgeführt wird der iperf-Server als Deamon mit diesem Befehl. Dies lässt sich auch als Cronjob definieren.
iperf -s -D
Hinweis: Unter Ubuntu 14.04 kann der Parameter „-D“ durch einen Bug zu hoher CPU-Last führen. Hier einfach nur „iperf -s“ ausführen.
RedHat Linux
Installation
yum install iperf
Start
iperf -s -D
Windows
Iperf 2 für Windows kannst du hier downloaden. Einfach in ein Verzeichnis deiner Wahl entpacken und wie folgt ausführen. Auch hier ist ein automatischer Start über die Ausgabenplanung möglich.
C:\tools\iperf.exe -s -D
OpenWRT
Eine Anleitung um iperf auf einem OpenWRT Router zu installieren findest du hier.
Plugin in Centreon einbinden
Als Nächstes wird das Plugin heruntergeladen, ausführbar gemacht und in den Monitoring Plugin Ordner verschoben.
apt-get install git-core git clone https://github.com/hagen3000/check_iperf.git cd check_iperf/ chmod +x check_iperf.pl cp * /usr/lib/nagios/plugins
Auch auf dem Centreon-Server muss das Tool iperf installiert werden.
apt install iperf
Nach erfolgreicher Installation ist iperf unter „/usr/bin/iperf“ zu finden. Falls dieser Pfad bei dir abweichen sollte musst du das Plugin dementsprechend in Zeile 13 anpassen.
vi /usr/lib/nagios/plugins/check_iperf.pl
my $iperf = „/usr/bin/iperf“;
Wenn der korrekte Pfad im Plugin hinterlegt ist kann es im Centreon Webinterface in einen Check eingebunden werden.
„Configuration“ >> „Commands“ >> „Checks“ >> „Add“
Command Line | $USER1$/check_iperf.pl $HOSTADDRESS$ $ARG2$ $ARG1$ |
Argument Example | !50!10 |
Der angelegte Check kann nun in einem Service verwendet werden.
Durch das Übergeben der Konfigurationsdateien an die Centreon Engine wird die Überwachung aktiv geschaltet.
Hier noch ein Blick auf das Überwachungsergebnis.
16. Juni 2016 um 9:13
nett, gleich mal testweise eingebunden
16. Juni 2016 um 9:20
Anscheinend kann iperf -s -d aufgrund eines bugs eine ziemlich hohe Last erzeugen. Jedenfalls ist es bei mir unter ubuntu 14.04 so. iperf -s läuft hingegen normal.
16. Juni 2016 um 20:26
Hallo Thomas,
vielen Dank für den Hinweis. Ich konnte den Fehler unter Ubuntu 14.04 nachstellen.