Home / Monitoring / HowTo: Icinga / Nagios – NSCA Server für passive checks unter Debian installieren
Icinga Logo

HowTo: Icinga / Nagios – NSCA Server für passive checks unter Debian installieren

NSCA (Nagios Service Check Acceptor) ist ein Icinga / Nagios Addon, mit dem es möglich ist passive Service- und Hostchecks von entfernten Servern an den Monitoring Daemon zu senden.

Es ist so möglich Systeme zu überwachen welche durch den Icinga / Nagios Server nicht direkt erreicht werden können. NSCA besteht aus einem Sender (send_nsca) und einem Empfänger  (NSCA) welche verschlüsselt miteinander sprechen. Folgende Grafik veranschaulicht das Prinzip von NSCA:

Abhängigkeiten

Folgende Voraussetzung sollte für die Installation von NSCA gegeben sein:

*) Installierter Nagios oder Icinga Server
*) Optionen in der icinga.cfg/nagios.cfg

folgende Optionen sollten in der /usr/local/icinga/etc/icinga.cfg gesetzt sein:

[xml]check_external_commands=1
log_passive_checks=1[/xml]

NSCA unter Debian installieren

Wer Debian als Betriebssystem verwendet kann das NSCA Paket bequem via apt-get installieren:

[bash]apt-get install nsca[/bash]

NSCA Konfiguration nsca.cfg bearbeiten

Folgende Einstellungen sind in der Datei /etc/nsca.cfg zu treffen:

[bash]vi /etc/nsca.cfg [/bash]

command_file: hier ist die gleiche Einstellung zu treffen wie in der /etc/icinga/icinga.cfg bzw. /etc/nagios3/nagios.cfg:

[xml]command_file=/var/lib/icinga/rw/icinga.cmd
oder
command_file=/var/lib/nagios3/rw/nagios.cmd[/xml]

nsca_user, nsca_group: Hier werden icinga / Nagios User und Gruppe ausgewählt, als welche der NSCA Dienst läuft:

[xml]nsca_user=nagios
nsca_group=nagios[/xml]

password: Hier sollte ein starkes Passwort verwendet werden wodurch die Kommunikation zwischen send_NSCA und NSCA Daemon verschlüsselt wird:

[xml]password=deinpasswort[/xml]

decryption_method: Hier wird das Verschlüsselungsverfahren ausgewählt. Ich empfehle hier eine andere Methode als 0 und 1 auszuwählen:

[xml]decryption_method=8[/xml]

NSCA Daemon Testlauf

Für den Ersten Testlauf wird nun der NSCA Daemon manuell gestartet

[bash]/etc/init.d/nsca start[/bash]

Damit send_nsca nun zum Senden verwendet werden kann muss in der /etc/send_nsca.cfg noch das gleiche Passwort und Verschlüsselungsverfahren eingestellt werden als am NSCA Daemon zuvor:

[xml]password=deinpasswort
encryption_method=8[/xml]

Nun senden wir via send_nsca einen ersten Dummy Befehl an den NSCA Daemon:

[bash]echo -e "hostname\tsvc_description\t1\tplugin_output\n" | /usr/sbin/send_nsca -H localhost -c /etc/send_nsca.cfg[/bash]

Wenn wir nun in der /var/log/icinga.log Datei die letzte Zeile ansehen sollte ein ähnliches Ergebnis dargestellt werden:

[xml][1337608636] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;hostname;svc_description;1;plugin_output
[1337608636] Warning: Passive check result was received for service ’svc_description‘ on host ‚hostname‘, but the host could not be found![/xml]

Sieht auf den ersten Blick nicht erfolgreich aus, jedoch ist das Gegenteil der Fall. Die Warnung kommt nur weil wir noch keine Service Zuordnung definiert haben. Aber der Check kommt schon korrekt in unserem Monitoring System an.

 NSCA Passive Check Konfiguration in Icinga / Nagios

Damit unser Monitoring System die übergebenen Parameter auch verarbeiten kann müssen wir noch die entsprechenden Checks und Services definieren

Zuerst legen wir einen dummy_check in der command.cfg an (Der check_dummy Befehl ist wie der Name schon sagt ein dummer Checkbefehl, der nur den übergebenen Wert 0 (OK); 1 (Warning); 2 (Critical); zurück liefert.

[xml]define command{
command_name check_dummy
command_line $USER1$/check_dummy $ARG1$
}[/xml]

Nun definieren wir das service template in der templates.cfg. Die Option check_freshness mit freshness_threshold kann verwendet werden, muss aber nicht. Es ist aber sinnvoll wenn man zB.: alle 2 Stunden überprüfen möchte ob ein passiver Check auch im System eingegangen ist:

[xml]define service{
use generic-service ; Template Einstellungen übernehmen von
name passive-service ; Template Name
active_checks_enabled 0 ; deaktiviere aktive checks
passive_checks_enabled 1 ; aktivere passive checks
check_command check_dummy!2!Err ; verwende "check_dummy", RC=2 (CRIT)
check_period 24×7 ; Check zu jeder Zeit
check_freshness 1 ; Check ob das Resultat aktuell ist
freshness_threshold 7200 ; Check Wert in Sekunden für Aktualität
register 0 ; Nur ein Template, kein Service
}[/xml]

Zum Schluss wird das entsprechende Service Template erstellt:

[xml]define service {
# Name of service template to use
use passive-service
host_name server1
service_description passive service check 1
contact_groups group1
}[/xml]

Weiterführende Links:

Offizielle Icinga Dokumentation
Nagios3 Addons

4/5 - (18 votes)

Auch cool

Fahrzeugdiagnose selber durchführen können mit dem iPhone

Wieder einmal blinkt eine Kontrolleleuchte im Fahrzeug auf. Doch was bedeutet diese? Sollte man am …