Monitoraggio passivo di sistemi con Nagios: Difference between revisions
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] | ||
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.