Architecture NSCA

Récupération des états hôtes et services via NSCA

Protocole NSCA

Format des messages NSCA

send_nsca est utilisé pour envoyer des états NAGIOS à un daemon NSCA (autre(s) NAGIOS distant(s)). Les résultats doivent être dans le format suivant compréhensible par NAGIOS :

Service Checks :
----------------
<host_name> [tab] <svc_description> [tab] <return_code> [tab] <plugin_output> [newline]
 
Host Checks :
-------------
<host_name> [tab] <return_code> [tab] <plugin_output> [newline]

Sécurité des messages NSCA

Le fichier de configuration nagios/etc/send_nsca.cfg du serveur NAGIOS émetteur permet :

  • Utilisation d'un mot de passe de chiffrement
  • Chiffrement des messages NSCA avec une vingtaine d’algorithmes au choix

password=superPWD
encryption_method=8

Envoie des résultats via NSCA

Cette rubrique concerne le serveur qui envoie les résultats des checks via NSCA.

Commande OCSP (déclenchée après la vérification d'un service)

1 - La commande ocsp définie dans le fichier nagios.cfg est exécutée après l'exécution de chaque Service Check.

obsess_over_services=1
ocsp_timeout=10
ocsp_command=submit_check_result

2 - La commande submit_check_result est définie dans le fichier checkcommands.cfg :

# 'submit_check_result'
define command{
        command_name    submit_check_result
        command_line    $USER1$/submit_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ $SERVICESTATETYPE$ '$SERVICEOUTPUT$'
}

3 - La commande send_nsca est exécutée par le script /nagios/libexec/submit_check_result :
(Ce script est fourni de base par NAGIOS)

Extrait :

[...]
HOST3=192.168.2.254
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$5" | /nagios/bin/send_nsca -H $HOST3 -to 2 -c /nagios/etc/send_nsca.cfg
[...]

4 - Le service à surveiller doit comporter la configuration suivante dans le fichier services.cfg
Attention aux paramètres active_checks_enabled et passive_checks_enabled

define service{
        host_name                       sw_site_a
        check_command                   my_check
        active_checks_enabled           1
        passive_checks_enabled          0
}

Commande OCHP (déclenchée après la vérification d'un hôte)

1 - La commande ochp définie dans le fichier de configuration nagios.conf est exécutée après l'exécution d'un Host Check.

obsess_over_hosts=1
ochp_command=submit_check_result_host
ochp_timeout=10

2 - La commande submit_check_result_host est définie dans le fichier checkcommands.cfg :

# 'submit_check_result_host'
define command{
        command_name    submit_check_result_host
        command_line    $USER1$/submit_check_result_host $HOSTNAME$ $HOSTSTATEID$ "$HOSTOUTPUT$"
}

3 - La commande send_nsca est exécutée par le script /nagios/libexec/submit_check_result_host :
(Ce script est fourni de base par NAGIOS)

Extrait :

[...]
HOST3=192.168.2.254
/usr/bin/printf "%s\t%s\t%s\n" "$1" "$2" "$3" | /nagios/bin/send_nsca -H $HOST3 -to 2 -c /nagios/etc/send_nsca.cfg &
[...]

4 - Le host à surveiller doit comporter la configuration suivante dans le fichier hosts.cfg
Attention aux paramètres active_checks_enabled et passive_checks_enabled

define host{
        host_name                       sw_site_a
        check_command                   check-host-alive
        active_checks_enabled           1
        passive_checks_enabled          0
}

Réception des résultats via NSCA

Cette rubrique concerne le serveur qui reçoit les résultats des checks via NSCA.

Configuration de NSCA avec xinetd

Le demon NSCA est lancé par xinetd sur le serveur NAGIOS qui reçoit les résultats des Checks.

Fichier /etc/xinetd.d/nsca

service nsca
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = nagios
        group           = nagios
        server          = /nagios/bin/nsca
        server_args     = -c /nagios/etc/nsca.cfg --inetd
        log_on_failure  += USERID
        disable         = nocd /var/
        cps             = 1000 30
        only_from       = 127.0.0.1 192.168.1.254 192.168.1.253
}

Le paramètre cps = 1000 30 permet d'augmenter le nombre de message NSCA entrant à 1000 par seconde avec une désactivation temporaire de 30 secondes du service NSCA si ce seuil de 1000 est dépassé.

Extraits des fichiers de configuration NAGIOS

Attention aux paramètres active_checks_enabled et passive_checks_enabled. Le Paramètre check_command get_nsca permet de préciser une remontée d'alarme par la réception de messages NSCA.

Extrait du fichier hosts.cfg :

define host{
        host_name                       sw_site_a
        check_command                   get_nsca
        active_checks_enabled           0
        passive_checks_enabled          1
}

Extrait du fichier services.cfg :

define service{
        host_name                       sw_site_a
        check_command                   get_nsca
        active_checks_enabled           0
        passive_checks_enabled          1
}

Tester l'envoi et la réception des messages NSCA

Il est possible d'envoyer manuellement un send_nsca.

Syntaxe de la commande send_nsca

/usr/sbin/send_nsca -H <host_address> [-p port] [-to to_sec] [-d delim] [-c config_file]

NAGIOS émetteur

Envoi d'un send_nsca depuis le serveur NAGIOS émetteur :

printf "%s\t%s\t%s\t%s\n" "TEST1" "TEST1" "0" "This is a test" | /usr/sbin/send_nsca 192.168.2.254 -c /etc/nagios/send_nsca.cfg

NAGIOS récepteur

Vérification du log sur le NAGIOS récepteur :

tail /var/log/nagios/nagios.log
[...]
[1331653408] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;TEST11;TEST11;0;Ceci est un TEST
[1331653408] Warning:  Passive check result was received for service 'TEST11' on host 'TEST11', but the host could not be found!
[...]

 
asr/sys/nagios/architecture_nsca.txt · Dernière modification: 2016/03/29 23:37 (édition externe)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki