Inhaltsverzeichnis

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.

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