Monitoraggio passivo di sistemi con Nagios: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
{{Stub}}
{{Stub}}
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:
<pre>
sudoedit /etc/nagios/nagios.cfg
...
obsess_over_services=1
...
ocsp_command=submit_custom_check_result
...
</pre>
===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)
<pre>
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
</pre>
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:
<pre>
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
        }
</pre>
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
<pre>
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
}
</pre>
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:
<pre>
define host{
        use                    generic-host
        host_name              lemserver
        alias                  LEMServer
        parents                fire.leman.it
        }
</pre>
Occorre solo ridefinire gli stessi servizi definiti sul Server_B, avendo cura di sostituire/aggiungere:
<pre>
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
        }
</pre>
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 ==
{{Todo}}


==Riferimenti==
==Riferimenti==
*[http://www.nagios-forum.co.uk/forum/viewtopic.php?t=604 Nagios-Forum.co.uk - Distributed nagios install, or passive host check HOW-TO]
*[http://www.nagios.org/faqs/viewfaq.php?faq_id=271 Nagios: FAQs : Passive only checks with NSCA]


*[http://hepuser.ucsd.edu/twiki/bin/view/UCSDTier2/NagiosPassiveCheckGuide NagiosPassiveCheckGuide < UCSDTier2]
*[http://hepuser.ucsd.edu/twiki/bin/view/UCSDTier2/NagiosPassiveCheckGuide NagiosPassiveCheckGuide < UCSDTier2]
*[http://www.nagios-forum.co.uk/forum/viewtopic.php?t=604 Nagios-Forum.co.uk - Distributed nagios install, or passive host check HOW-TO]

Revision as of 01:58, 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:Todo

Riferimenti