Nagios: Testen verschiedener Netzwerk-Interface am selben Rechner
Wir haben eine recht große Webserver-Infrastruktur aufgebaut, wo jeder Rechner mehrere Interface hat - eines für administrative Zwecke, eines für Webserver und so weiter. Mit Nagios kann man so etwas schlecht abbilden; es kennt "nur" eine IP-Adresse pro Rechner. Da ich aber nicht mehrere Rechner definieren wollte um zum Beispiel HTTP und SSH checken zu können bin ich auf einen Trick verfallen.
Bei unseren Rechnern sind der erste, zweite und der vierte Teil des Quadrupels immer gleich - nur das dritte Teil ändert sich, je nachdem in welchem Netz das Interface hängt.
Also hat zum Beispiel ein Webserver die IP 10.10.5.20 im Admin-Netz und 10.10.10.20 im Webserver-Netz. Nagios wurde definiert mit der IP-Adresse des Webserver-Bereiches (da sind einfach mehrere Checks nötig :), so dass ein check_ssh auch auf 10.10.10.20 gehen würde - wo aber gar kein sshd lauscht.
Also habe ich einen Wrapper geschrieben, der die IP-Adresse bekommt, umschreibt und dann den Check selbst ausführt. Das geht recht einfach:
Nun geht der ssh-Check auf das administrative Interface und es wird sauber dargestellt.
Bei unseren Rechnern sind der erste, zweite und der vierte Teil des Quadrupels immer gleich - nur das dritte Teil ändert sich, je nachdem in welchem Netz das Interface hängt.
Also hat zum Beispiel ein Webserver die IP 10.10.5.20 im Admin-Netz und 10.10.10.20 im Webserver-Netz. Nagios wurde definiert mit der IP-Adresse des Webserver-Bereiches (da sind einfach mehrere Checks nötig :), so dass ein check_ssh auch auf 10.10.10.20 gehen würde - wo aber gar kein sshd lauscht.
Also habe ich einen Wrapper geschrieben, der die IP-Adresse bekommt, umschreibt und dann den Check selbst ausführt. Das geht recht einfach:
#!/bin/bash
HOST=$1
NEWHOST=`echo $HOST | /bin/awk -F"." '{print $1 "." $2 ".10." $4 }'`
/usr/local/nagios/libexec/check_ssh -H $NEWHOST
Nun geht der ssh-Check auf das administrative Interface und es wird sauber dargestellt.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt