====== check_by_ssh ====== check_by_ssh kann verwendet werden um lokale Plugins wie check_proc und check_disk via SSH auf einem entferneten Server aufzurufen. SSH bietet sich an, da der SSH Daemon in den meisten Fällen bereits auf den zu überwachenden Servern läuft. Um check_by_ssh verwenden zu können müssen einige grundlegende Vorraussetzungen geschaffen werden. * Der User nagios muss in der lage sein, sich ohne Passwort mit dem zu überwachenden Rechner verbinden zu können. Dazu muss das Public Key Verfahren zur Authentifizierung eingerichtet werden. * Die Plugins die auf dem zu überwachenden Rechner verwendet werden sollen, müssen dort lokal vorhanden sein. ===== Vorbereitung ===== Bei den nachfolgenden Aktionen gehe ich davon aus, dass es auf beiden Seiten bereits den User Nagios mit einem gültigen Homeverzeichnis gibt. Alle Tests werden als user nagios durchgeführt. ===== SSH Login ohne Passwort ===== DSA-Key erstellen: ssh-keygen -t dsa -N "" RSA-Key erstellen: ssh-keygen -t rsa -N "" RSA1-Key erstellen: ssh-keygen -t rsa1 -N "" \\ ACHTUNG: ''-N ""'' sorgt dafür, dass kein Passphrase fuer den SSH-Key vergeben wird!!! (das ist so gewollt)\\ \\ Die erstellten Keys befinden sich dann im Home-Verzeichnis des Users, der die Keys erstellt hat!\\ User = Nagios cd ~/.ssh/ -rw------- 1 nagios nagios 668 Feb 1 06:57 id_dsa -rw-r--r-- 1 nagios nagios 601 Feb 1 06:57 id_dsa.pub -rw------- 1 nagios nagios 883 Feb 1 06:57 id_rsa -rw-r--r-- 1 nagios nagios 221 Feb 1 06:57 id_rsa.pub -rw------- 1 nagios nagios 526 Feb 1 06:57 identity -rw-r--r-- 1 nagios nagios 330 Feb 1 06:57 identity.pub Die Key's "*.pub" auf das Zielsystem, natuerlich per ssh, kopieren: scp *.pub remoteuser@px1:~/. Per SSH auf Zielsystem einloggen: ssh -l remoteuser zielsystem Key auf Zielsystem/User aktivieren: cat /pfadangabe/key/id*.pub >> ~/.ssh/authorized_keys cat /pfadangabe/key/*sa.pub >> ~/.ssh/authorized_keys2 Vom Zielsystem wieder ausloggen!\\ Ab sofort wird der "remoteuser" per KEY authentifiziert und muss somit kein Passwort mehr eingeben! \\ --snip--\\ remoteuser@zielsystem:~$ ssh remoteuser@zielsystem Linux px1 2.4.22-bf2.4 #1 Sat Nov 8 21:13:39 CET 2003 i686 GNU/Linux You have mail. Last login: Wed Feb 15 17:41:32 2006 from remoteuser@zielsystem:~$ --snap--\\ \\ ACHTUNG:\\ Da der Nagios-Daemon mit der UID "nagios" läuft, muss für den User auch der Key erstellt werden! ===== Test der Plugins ===== nagios@nagios:~/libexec$ ./check_by_ssh -H px1 -C "~nagios/libexec/check_swap -w 50% -c 50%" SWAP OK - 61% free (591 MB out of 973 MB) |swap=590MB;486;486;0;972 nagios@nagios:~/libexec$ ===== Einbinden in Nagios ===== Beispiel checkcommands.cfg: \\ # 'check_by_ssh_swap' command definition define command{ command_name check_by_ssh_swap command_line $USER1$/check_by_ssh -l remoteuser -H $HOSTADDRESS$ -C "$USER1$/check_swap -w $ARG1$ -c $ARG2$" } # 'check_by_ssh_local_disk' command definition define command{ command_name check_by_ssh_local_disk command_line $USER1$/check_by_ssh -l remoteuser -H $HOSTADDRESS$ -C "$USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$" } Beispiel hostcheck.cfg: \\ define service{ use generic-service host_name remotesystem service_description CHECK_DISK ROOT-Mountpoint is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups admins notification_options w,u,c,r notification_interval 960 notification_period 24x7 check_command check_by_ssh_local_disk!85%!80%!/ } ===== Bekannte Probleme =====