Login
Newsletter
Werbung

So, 22. Februar 2009, 00:00

Nagios - Automatische Überwachung einer IT-Infrastruktur, Teil 2

Erweiterungen

Einstellung beim Remote-Host

Optional ist zunächst das Abschalten der Benachrichtigung in der Hauptkonfigurationsdatei, da die Nachricht vom Hauptserver ausreicht.

enable_notifications=0

Außerdem ändert man

obsess_over_services=0

auf 1 und gibt bei oscp_command den Befehl submit_check_result ein.

Dieses Kommando sieht so aus:

define command {
 command_name submit_check_result
 command_line /usr/local/nagios/libexec/eventhandlers/submit_check_result \
$HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ '$SERVICEOUTPUT$'
}

Falls man die Performancedaten mitschicken möchte, ändert man dies so ab:

 command_line /usr/local/nagios/libexec/eventhandlers/submit_check_result \
$HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ '$SERVICEOUTPUT$ | \
$SERVICEPERFDATA$ [$SERVICECHECKCOMMAND$]'

Das Skript submit_check_result, das durch den obigen Befehl ausgeführt wird, kann man so aufbauen:

#!/bin/sh
return_code=-1
case "$3" in
 OK)
 return_code=0
 ;;
 WARNING)
 return_code=1
 ;;
 CRITICAL)
 return_code=2
 ;;
 UNKNOWN)
 return_code=-1
 ;;
esac
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | \
/usr/local/nagios/bin/send_nsca <Zentraler Server> -c \
/usr/local/nagios/etc/send_nsca.cfg

Wichtig ist noch, dass der Nagios-User das Skript ausführen darf:

chmod 777 submit_check_result

Einstellung am Mainserver

Wir haben uns für Xinetd entschieden, um die empfangenen Daten an NSCA weiterzuleiten. Dafür wird in /etc/services ein Eintrag benötigt:

 nsca 5667/tcp # NSCA

Ferner benötigen wir eine Datei in /etc/xinetd.d namens nsca:

# default: on
# description: NSCA (Nagios Service Check Acceptor)
service nsca
{
 flags = REUSE
 socket_type = stream
 wait = no
 user = nagios
 group = nagios
 server = /usr/local/nagios/bin/nsca
 server_args = -c /usr/local/nagios/etc/nsca.cfg --inetd
 log_on_failure += USERID
 disable = no
}

Xinetd muss jetzt noch neu gestartet werden.

/etc/init.d/xinetd restart

In den Konfigurationsdateien von Nagios müssen jetzt noch exakt dieselben Hosts und Services eingetragen werden. Einziger Unterschied ist der folgende Zusatz bei den Templates bzw. Services auf dem Mainserver:

active_checks_enabled 0
passive_checks_enabled 1

Damit werden die aktiven Checks aus- und die passiven eingeschaltet. In nagios.cfg muss ebenfalls

check_external_commands=1

gesetzt sein. Wichtig ist, dass sowohl nsca bzw. send_nsca als auch nsca.cfg bzw. send_nsca.cfg dem User nagios gehören, da sonst Xinetd bzw. Nagios diese nicht ausführen können.

Freshness-Checking

Ein Problem der passiven Checks wird deutlich, wenn ein Distributed-Server ausfällt. Nagios behält immer die letzten empfangenen Daten bei, auch wenn schon seit langem sich etwas anderes eingestellt hat, aber keine Daten mehr verschickt werden. Dafür gibt es die Möglichkeit, in der Hauptkonfigurationsdatei nach dem Alter der Checks zu schauen.

check_service_freshness=1
service_freshness_check_interval=120 ;(Zeit in Sekunden)

Dadurch versucht Nagios nach zwei Minuten, die Checks selbst durchzuführen und nicht mehr länger auf Daten vom verteilten Server zu warten. Dafür verwendet es den Befehl, der in den Services definiert ist.

Um zu verhinden, dass das Hauptnagios nicht alle richtigen Checks ausführt, schreibt man sich ein kleines Skript, das nur Critical zurückliefert, und definiert es auf dem Hauptserver als check_command in der Konfiguration des Services.

#!/bin/sh
/bin/echo "CRITICAL: Service results are stale!"
exit 2

NRPE

Mit NRPE (Nagios Remote Plugin Executor) ist es möglich, aktiv Plugins auf entfernten Rechnern auszuführen. Über NRPE kann man sowohl Windows- als auch Linux-Rechner aktiv überwachen.

NRPE

cjt Systemsoftware AG

NRPE

Dabei wird auf dem entfernten Rechner der NRPE-Daemon installiert, der für den Client, der auf dem Monitoring Host installiert wird, alle notwendigen Checks ausführt und diesem dann die Ergebnisse übergibt.

Linux-Rechner überwachen

Vorgehen auf dem Remote-Host

Zunächst müssen die Nagios-Plugins und das NRPE-Addon von der Seite www.nagios.org/download heruntergeladen werden. Es müssen eine Gruppe und ein User nagios angelegt werden:

groupadd nagios
useradd -c "Nagios Check" nagios

Nach dem Extrahieren

tar xzf nagios-plugins-<version>.tar.gz
tar xzf nrpe-<version>.tar.gz

und anschließendem Installieren

cd nagios-plugins-<version>
./configure
make
make install
cd nrpe-<version>
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd

müssen die Rechte vergeben werden:

chown -R nagios.nagios /usr/local/nagios

Schließlich editiert man die Datei /etc/services und fügt dort den NRPE-Port hinzu:

nrpe 5666/tcp # NRPE

In der Datei /etc/xinetd.d/nrpe muss zu der lokalen IP auch die IP des Nagios-Hosts hinzugefügt werden:

only_from = 127.0.0.1 <Nagios-IP-Adresse>

Da man bei der Installation den NRPE-Daemon als Service unter xinetd installiert hat, muss man diesen nun neu starten:

service xinetd restart

Um zu testen, ob der NRPE-Daemon richtig läuft und die Plugins richtig ausführt, gibt es folgende Befehle (die zu erwartende Ausgabe ist gleich dahinter fett dargestellt):

netstat -at | grep nrpe
<strong>tcp 0 0 *:nrpe *:* LISTEN</strong>
/usr/local/nagios/libexec/check_nrpe -H localhost
<strong>NRPE v<version></strong>

Schließlich muss man nur noch die Datei nrpe.cfg konfigurieren, die sich üblicherweise im Verzeichnis /usr/local/nagios/etc befindet. Zum Beispiel kann man folgende Kommandodefinition einfügen:

command&#91;check_users&#93; = /usr/local/nagios/libexec/check_users -w 5 -c 10
Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Traut euch!
Neue Nachrichten
Werbung