Monitoraggio di sistemi con Nagios: Difference between revisions
mNo edit summary |
mNo edit summary |
||
| Line 3: | Line 3: | ||
== Installazione == | == Installazione == | ||
apt-get install nagios- | sudo apt-get install nagios3 nagios-plugins nagios-nrpe-plugin | ||
Scegliere tutti i default,e consentire la configurazione automatica del web server desiderato. | Scegliere tutti i default,e consentire la configurazione automatica del web server desiderato. | ||
| Line 10: | Line 11: | ||
Se la configurazione del web server è standard, sarà già possibile accedere via web tramite | Se la configurazione del web server è standard, sarà già possibile accedere via web tramite | ||
http[s]://hostname/ | http[s]://hostname/nagios3 | ||
Di default la configurazione monitorerà tramite ping il default gateway chiamandolo "gw". | Di default la configurazione monitorerà tramite ping il default gateway chiamandolo "gw". | ||
| Line 19: | Line 20: | ||
== Modifica valori di default == | == Modifica valori di default == | ||
* Impostare l'indirizzo email dell'amministratore di sistema per le notifiche di emergenza: | |||
Impostare l'indirizzo email | |||
<pre> | <pre> | ||
sudoedit /etc/ | sudoedit /etc/nagios3/nagios.cfg | ||
admin_email=nagios@ | admin_email=nagios@example.com | ||
</pre> | </pre> | ||
* Restart | |||
: | |||
== Definizione dei Contatti per le Notifiche == | == Definizione dei Contatti per le Notifiche == | ||
Latest revision as of 17:20, 2 March 2012
Nagios permette di monitorare lo stato di connessioni di rete, host e servizi.
Installazione
sudo apt-get install nagios3 nagios-plugins nagios-nrpe-plugin
Scegliere tutti i default,e consentire la configurazione automatica del web server desiderato.
Inserire la password per l'utente nagiosadmin
Se la configurazione del web server è standard, sarà già possibile accedere via web tramite
http[s]://hostname/nagios3
Di default la configurazione monitorerà tramite ping il default gateway chiamandolo "gw".
Attendere circa 5 minuti, oppure via web schedulare un check immediato, per verificare che riesca a monitorare l'ip del default gateway.
Modifica valori di default
- Impostare l'indirizzo email dell'amministratore di sistema per le notifiche di emergenza:
sudoedit /etc/nagios3/nagios.cfg admin_email=nagios@example.com
- Restart
:
Definizione dei Contatti per le Notifiche
Se ci sono problemi, nagios può avvertire (non solo via email, ma anche in altri modi) un elenco di contatti.
Definiamo i contatti email
sudoedit contacts.cfg
define contact{
contact_name gabriele.vivinetto
alias Gabriele Vivinetto
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email gabriele.vivinetto@rvmgroup.it
}
Nagios permette di notificare a dei gruppi, quindi inseriamo il contatto in un gruppo:
sudoedit contactgroups.cfg
define contactgroup{
contactgroup_name nagios-admins
alias Nagios Administrators
members gabriele.vivinetto
}
Se si vogliono aggiungere dei contatti, separarli da virgola.
Definizione degli oggetti da monitorare
Prima di tutto si definiscono gli oggetti da monitorare (macchine, router, switch, etc...).
Questi host vengono monitorati per sapere se sono raggiungibili tramite un comando (tipicamente può essere un ping, ma si può definire un qualsiasi metodo). Tale comando di monitoraggio informa solo se l'oggetto è UP o DOWN, cioè ritorna un solo un valore 0 o 1.
Cancelliamo la definizione del default gateway, e sostituiamola con quanto di seguito.
Per comodità definiamo un template con dei valori standard, che poi useremo per tutti gli host che vorremo monitorare in questo modo:
define host{
name generic-host ; The name of this host
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 0 ; Host event handler is disabled
flap_detection_enabled 0 ; Flap detection is disabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information acro
retain_nonstatus_information 1 ; Retain non-status information
check_command check-host-alive
max_check_attempts 20
notification_interval 60
notification_period 24x7
notification_options d,u,r
register 0 ; DONT REGISTER THIS DEFINITION
}
Ora definiamo il default gateway, dicendogli di usare questo template:
define host{
use generic-host ; Name of host template
host_name fireuf
alias Ufficio Limbiate - Lan
address 192.168.0.254
}
Ora dobbiamo assegnare questo host ad un gruppo. Possiamo aggregare per locazione, funzione, tipologia, quello che vogliamo:
define hostgroup{
hostgroup_name UF
alias Ufficio Limbiate
contact_groups nagios-admins
members fireuf
}
Anche qui, ulteriori membri devono essere separati da virgola.
Definizione dei servizi da monitorare
Una volta che un host è UP, si monitora anche lo stato di questo host, verificandone dei servizi.
NOTE: Nagios is service centric, so if you use host checks just remember that host checks are only performed after a service check fails for a given host. This means you must check at least one service on every host even if you really only want host checks for some hosts.
Il primo servizio da monitorare è la qualità della connessione, che viene fatto solitamente valutando i tempi di risposta di un ping.
Definiamo prima un template per i servizi standard:
sudoedit /etc/nagios/services.cgf
define service{
; The 'name' of this service template, referenced in other service definitions
name generic-service
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 0 ; Passive service checks are enabled/disabled
parallelize_check 1 ; Active service checks should be parallelized
; (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 0 ; Service event handler is disabled
flap_detection_enabled 0 ; Flap detection is disabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups nagios-admins
notification_interval 240
notification_period 24x7
notification_options w,c,r,u
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
Ora definiamo come monitorare la qualità del ping il nostro default gateway:
sudoedit /etc/nagios/services.cgf
define service{
use generic-service ; Name of service template to use
host_name fireuf
service_description PING
check_command check-host-alive!100.0,20%!500.0,60%
}
I parametri che seguono il comando dopo i "!" sono le soglie di warning e critical che fanno scattare la notifica.
ATTENZIONE: non usare mail il comando 'check-ping' che fa 4 ping perchè porta l'uso della CPU al 100%. Usare il check-host-alive che ne fa uno solo.
ATTENZIONE: se inizialmente non si era definito le notifiche attive per un servizio, anche se poi si abilitano nel file di config, rimarranno disabilitate.
Occorre abilitarle a mano via web
Verifica configurazione ed attivazione modifiche
Verificare la configurazione:
sudo nagios -v /etc/nagios/nagios.cfg | less ... Total Warnings: 0 Total Errors: 0 Things look okay - No serious problems were detected during the pre-flight check
Se non vengono dati errori o warning, riavviare nagios:
sudo /etc/init.d/nagios restart
Ora si dovrebbe vedere l'host corretto. VERIFICARE: la notifica dei servizi è disabilitata da web perchè viene attivata se un servizio fallisce, e l'host è attivo, viene abilitata. Oppure si deve abilitare via web ?
Creare una status map che mostri come gli host sono disposti
Se si vuole avere una mappa che mostri come gli host sono disposti, bisogna definire una relazione di parentela.
Se si ha una situazione del genere:
(Server_LanA)----->(router)-------->(Server_LanB)
Gli host possono essere definti come:
define host{
use generic-host ; Name of host template to use
host_name Server_LanA
}
define host{
use generic-host ; Name of host template to use
host_name router
parents Server_LanA
}
define host{
use generic-host ; Name of host template to use
host_name Server_LanB
parents router
}
In questo modo la status map via web, disegnerà gli host nella maniera in cui sono collegati.
Assegnazione di icone ed informazioni agli host nella statusmap
Se si vuole associare un'icona ad ogni host, bisogna prima scaricare le icone (preferibilmente in formato gd2) e metterle in /usr/share/nagios/htdocs/images/logos/. Vedi Nagios: FAQs : How do I beautify the CGIs with host and service icons?
Aggiungere in cgi.cfg :
sudoedit /etc/nagios/cgi.cfg ... # EXTENDED HOST INFORMATION xedtemplate_config_file=/etc/nagios/hostextinfo.cfg ...
Poi bisogna definire le Informazioni Host Estese, vedi Extended Host Information Definition:
sudoedit /etc/nagios/hostextinfo.cfg
define hostextinfo{
host_name netware1
notes This is the primary Netware file server
notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1
icon_image novell40.png
icon_image_alt IntranetWare 4.11
vrml_image novell40.png
statusmap_image novell40.gd2
2d_coords 100,250
3d_coords 100.0,50.0,75.0
}