Monitoraggio passivo di sistemi con Nagios: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 154: Line 154:
== Monitoraggio tramite il solo client nsca ==
== Monitoraggio tramite il solo client nsca ==


{{Todo}}
{{SecStub}}


==Riferimenti==
==Riferimenti==

Revision as of 02:01, 9 December 2006

Attenzione questo articolo è ancora incompleto.
Sentiti libero di contribuire cliccando sul tasto edit.

Si vuole monitorare una macchina che non è direttamente raggiungibile da nagios, che è solo in grado di inviare risultati.

Monitoraggio tramite un'istanza locale di nagios

Il "Server_A" è la console centrale di nagios.

Il "Server_B" è la macchina da monitorare, o quella che farà i veri controlli.

Installazione pacchetti

Installare nagios sul Server_B:

sudo apt-get install nagios-text nsca

Configurazione di nagios

Dire al Server_B che deve comunicare i suoi risultati ad un server esterno, tramite un comando che definiamo noi:

sudoedit /etc/nagios/nagios.cfg
...
obsess_over_services=1
...
ocsp_command=submit_custom_check_result
...

Creazione del file di invio dei check results

Creare il file submit_custom_check_result.

Tale file è richiamato ogni volta che si ha un risultato di un check, ed il check viene inviato al Server_A (support.rvmgroup.it)

cat >> /usr/lib/nagios/plugins/eventhandlers/submit_custom_check_result <<'EOFile''
#!/bin/sh

# Arguments:
# $1 = <host_name>
# $2 = <svc_description>
# $3 = <return_code>
# $4 = <plugin_output>
#
# pipe the service check info into the send_nsca program, which
# in turn transmits the data to the nsca daemon on the central  monitoring server

/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$3" "$4" | /usr/sbin/send_nsca -H support.rvmgroup.it -c /etc/send_nsca.cfg
#echo $@ > /tmp/send_debug
#<host_name>[tab]<svc_description>[tab]<return_code>[tab]<plugin_output>[newline]
#lemserver PING OK 'Stato Servizio DOK'
EOFile

Renderlo eseguibile e sistemare le permission:

sudo chmod +x /usr/lib/nagios/plugins/eventhandlers/submit_custom_check_result
sudo chown root: /usr/lib/nagios/plugins/eventhandlers/submit_custom_check_result

Definizione dei servizi Attivi

Definire l'host:

define host{
        use                     generic-host            ; Name of host template to use

        host_name               lemserver
        alias                   LEM Server
        address                 127.0.0.1
        max_check_attempts      20
        notification_interval   60
        notification_period     24x7
        notification_options    d,u,r
        }

Sul Server_B definire normalmente i servizi da monitorare e verificarne il corretto funzionamento, avendo cura di aggiungere per i servizi che devono essere mandati al Server_A:

passive_checks_enabled         1
obsess_over_service	        1
define service{
        use                             generic-service         ; Name of service template to use

        host_name                       lemserver
        service_description             PING
        is_volatile                     0
        check_period                    24x7
        max_check_attempts              3
        normal_check_interval           5
        retry_check_interval            1
        contact_groups                  router-admins
        notification_interval           240
        notification_period             24x7
        notification_options            c,r
        check_command                   check_ping!100.0,20%!500.0,60%
        active_checks_enabled           1
        passive_checks_enabled          1
        obsess_over_service             1
}

Se un servizio non deve essere mandato al Server_A, metterci la direttiva:

  • non è vero, li manda sempre tutti
passive_checks_enabled         0
obsess_over_service	        0

Definizione dei servizi passivi

Sul Server_A definire l'host senza indirizzo:

define host{
        use                     generic-host
        host_name               lemserver
        alias                   LEMServer
        parents                 fire.leman.it
        }

Occorre solo ridefinire gli stessi servizi definiti sul Server_B, avendo cura di sostituire/aggiungere:

define service{
        use                             generic-service
        host_name                       lemserver
        service_description             PING
        passive_checks_enabled          1
        active_checks_enabled           1
        check_freshness                 1
        check_command                   check_dummy!1
        check_period                    none
        }

In questo modo verificando la freshenss del risultato, se non lo è, si esegue il check attivo dummy, con parametro 1 che dà un errore critico. L'intervallo di freshness può essere impostato a poco più del check interval sul Server_B, usando sul Server_A l'opzione:

  • verificare
freshness_theresold

(se non si mette active_checks enabled, nella tactical overview, si ha il servizio come disabilitato.)

Riavviare nagios, e verificare nagios.log.

Per i servizi non replicati sul Server_A, si avrà un warning:

[1165628960] Warning:  Message queue contained results for service 'PING' on host 'lemgateway'.  The service could not be found!

Pazienza.

Monitoraggio tramite il solo client nsca

Template:SecStub

Riferimenti