Nagios - Automatische Überwachung einer IT-Infrastruktur, Teil 2
Erweiterungen
SSH
Eine recht einfache und schnelle Möglichkeit, aktiv Linux-Server zu prüfen, ist das Plugin check_by_ssh.
Dabei wird von Nagios eine SSH-Verbindung zum Server aufgebaut und der Check dort ausgeführt. Leider kann dies bei vielen Tests recht schnell zu hoher Auslastung führen, da jedes Mal eine neue Verbindung erstellt werden muss. Das Plugin ist bei der Standardinstallation schon mit enthalten.
Zunächst führt man auf dem zweiten Server folgende Befehle aus:
/usr/sbin/useradd -m nagios /usr/sbin/groupadd nagios /usr/sbin/usermod -G nagios nagios mkdir /home/nagios/.ssh chown nagios.nagios -R /home/nagios/.ssh
Außerdem installiert man dort die Plugins. Nun erstellen wir auf dem Mainserver ein SSH-Schlüsselpaar als Nagios-User.
mkdir /usr/local/nagios/etc/.ssh cd /usr/local/nagios/etc/.ssh ssh-keygen -b 1024 -f id_dsa -t dsa -N '' scp /usr/local/nagios/etc/.ssh/id_dsa.pub \ nagios@<ip_des_zweiten_servers>:/home/nagios/.ssh/authorized_keys
Dabei wird ein Key erstellt, der es ermöglicht, dass bei einer SSH-Verbindung kein Passwort benötigt wird. Zum Testen versucht man kurz, eine SSH-Verbindung als Nagios-User, ohne Passworteingabe, zu erstellen:
ssh -i /usr/local/nagios/etc/.ssh/id_dsa <ip_des_zweiten_servers> w
Nun noch schnell ein Beispiel zur Nagios-Konfiguration. Zunächst der Befehl:
define command { command_name check_ssh_disk command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -i \ /etc/nagios/.ssh/id_dsa -C "$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$" }
In service.cfg sieht das schließlich so aus:
define service { host_name hostname ... check_command check_ssh_disk!10%!5%!/ ... }