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:

check_external_commands=1
log_passive_checks=1

NSCA unter Debian installieren

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

apt-get install nsca

NSCA Konfiguration nsca.cfg bearbeiten

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

vi /etc/nsca.cfg 

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

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

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

nsca_user=nagios
nsca_group=nagios

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

password=deinpasswort

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

decryption_method=8

NSCA Daemon Testlauf

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

/etc/init.d/nsca start

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:

password=deinpasswort
encryption_method=8

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

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

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

[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!

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.

define command{
     command_name check_dummy
     command_line $USER1$/check_dummy $ARG1$
}

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:

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            24x7              ; 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
}

Zum Schluss wird das entsprechende Service Template erstellt:

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

Weiterführende Links:

Offizielle Icinga Dokumentation
Nagios3 Addons

HowTo: Icinga / Nagios – NSCA Server für passive checks unter Debian installieren
3.83 (76.67%) 12 Bewertungen

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 …