====== 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 =====