Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
title/usr/local/nagios/etc/objects/bpi.cfg
define host{
        use                     linux-server            ; Es wird das Template "linux-Server" verwendet, hierdurch werden einige vordefinierte Werte verwendet.
        host_name               bpi
        alias                   bpi
        address                 192.168.101.28
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             PING
        ; Warnstufe wenn 20% der Pakete verloren gehen oder die mittlere Antwortzeit über 100ms beträgt.
        ; Kritische Alarmstufe wenn 60% der Pakete verloren gehen oder die mittlere Antwortzeit über 500ms beträgt.
        check_command                   check_ping!100.0,20%!500.0,60%	
        }
 
define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             SSH
        check_command                   check_ssh
        notifications_enabled           0
        }
 

Monitoring Remoteserver

Überwachung von Ports auf entfernten Servern

Es gehört zu den grundlegenden Aufgaben des Servermonitorings zu prüfen, ob bestimmte Netzwerkports erreichbar sind und ob sie einen bestimmten Service anbieten.

...

Code Block
title/usr/local/nagios/etc/objects/bpi.cfg
define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             IMAP-SSL
        check_command                   check_imap!-p 993 -S -D 60,20
        notifications_enabled           0
        }

define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             Apache-SSL
        ; Erster Parameter ist der zu überwachende Port
        ; Zweiter Parameter -S für die Anwendung der SSL-Verschlüsselung, 
        ; -D für die Prüfung der Gültigkeit des Zertifikats (Warnung 60 Tage vor Ablauf, 20 Tage für kritischen Alarm)
        check_command                   check_tcp!443!-S -D 60,20
        notifications_enabled           0
        }

Prüfung von Prozessen auf entfernten Servern

Ebenfalls eine wichtige Funktion ist die Prüfung ob auf einem entfernten Server ein bestimmter Prozess läuft bzw. ein bestimmter Service gestartet ist.

...

Code Block
root@myserver:/root# su - nagios
nagios@myserver:~$ ssh-keygen -t rsa -b 1024
Generating public/private rsa key pair.
Enter file in which to save the key (/home/nagios/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/nagios/.ssh/id_rsa.
Your public key has been saved in /home/nagios/.ssh/id_rsa.pub.
The key fingerprint is:
4a:02:d5:40:....:b9:26:46 nagios@myserver
The key's randomart image is:
+--[ RSA 1024]----+
|ooo++o           |
...
|=+.              |
+-----------------+

nagios@myserver:~$ Den Inhalt der Datei .ssh/id_rsa.pub --- kopieren -----> Zielserver, Zielaccount --> $HOME/.ssh/authorized_keys
!!!!!!!!!!!!!!!!!!!
Mindestens 1x manuell anmelden um den Fingerabdruck zu bestätigen.
!!!!!!!!!!!!!!!!!!!
nagios@myserver:~$ ssh Zielaccount@Zielserver

The authenticity of host '[Zielserver]:22 ([IP-Adresse]:22)' can't be established.
ECDSA key fingerprint is 80:70:62:14:1a:.....:63:54:1a:27:97.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[Zielserver]:22,[IP-Adresse]:22' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 12.04.5 LTS (GNU/Linux 2.6.32-042stab120.6 i686)

 * Documentation:  https://help.ubuntu.com/

Last login: Sun Jan  1 14:03:57 2017 from MYSERVER

Zielaccount@Zielserver:~# logout

Connection to Zielserver closed.

nagios@myserver:~$ logout

Nun noch den Service konfigurieren

Code Block
title/usr/local/nagios/etc/objects/commands.cfg
# 'check_by_ssh' command definition
define command{
        command_name    check_by_ssh
        command_line    $USER1$/check_by_ssh -H $HOSTADDRESS$ -p $ARG1$ -l $ARG2$ $ARG3$
        } 

und für den Server

Code Block
title/usr/local/nagios/etc/objects/bpi.cfg
 define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             Confluence-Service
        check_command                   check_by_ssh!22!Zielaccount!/etc/init.d/wiki status
        notifications_enabled           0
        }

Filesystembenutzung auf entfernten Servern

Das Thema ist im Internet immer wieder Anlass für größere Diskussionen.
Wenn  man aber bereits die vorstehende Lösung realisiert hat und kann Kommandos auf dem fernen Server ausführen - dann ist die Sache nicht mehr so schwierig (smile)

Auf dem Zielserver das folgende Script speichern und Ausführungsrechte für den User vergeben der für die Ausführung vorgesehen ist (siehe vorherigen Abschnitt)

Note

Das nachstehende Script funktioniert nur, wenn das gewünschte Filesystem gemountet ist.
Es kann also nicht auf einzelne Verzeichnisse innerhalb eines gemounteten Filesystems angewendet werden. 

Code Block
title/path/to/sript/check_diskfree.sh
#!/bin/bash

USED=`df|awk ' $6=="'$1'" { print $5 } '|sed -e 's/%//'`
[ -z "$USED" ] && echo "Das angegebene Verzeichnis ist nicht gemountet" && exit 0
[ "$USED" -ge $2 ] && [ "$USED" -lt $3 ] && echo "WARNUNG: Filesystem $USED: Es sind $USED % belegt" && exit 1
[ "$USED" -ge $3 ] && echo "KRITISCH: Filesystem $USED: Es sind $USED % belegt" && exit 2

echo "OK Filesystem $USED % belegt"
exit 0

Und den passenden Service dazu:

Code Block
define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             Filesystem_root
        check_command                   check_by_ssh!22!Zielaccount!/path/to/script/check_diskfree.sh / 70 89
        notifications_enabled           0
        }

define service{
        use                             local-service         ; Name of service template to use
        host_name                       bpi
        service_description             Filesystem_var
        check_command                   check_by_ssh!22!Zielaccount!/path/to/script/check_diskfree.sh /var 80 90
        notifications_enabled           0
        }