Nagios: monitoraggio infrastruttura IT
Attenzione: questo articolo è ancora incompleto e in fase di scrittura da parte del suo autore.
Sentitevi liberi di contribuire, proponendo modifiche alla guida tramite l'apposita pagina di discussione, in modo da non interferire con il lavoro portato avanti sulla voce. Per altre informazioni si rimanda al template. |
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" Debian 5 "lenny" |
Introduzione
Nagios è un sistema di monitoraggio che consente di identificare e risolvere eventuali problematiche di un'infrastruttura IT prima che possano avere conseguenze negative. Nagios è in grado di monitorare apparati di rete, sistemi e servizi; inoltre il sistema dei plugin lo rende versatile ed adattabile ad ogni esigenza di monitoraggio, infatti è possibile anche scrivere plugin personalizzati.
Esistono una versione enterprise chiamata Nagios XI
che offre un sistema di monitoraggio completo e già costruito ed una versione
Nagios Core che costituisce la base su
cui fondare il proprio sistema di monitoring. In Debian 'squeeze' è disponibile la
versione 'Core' nel pacchetto nagios3
.
Installazione
Come anticipato nell'Introduzione, installiamo Nagios in una Debian 'squeeze'.
~# apt-get install nagios3
Al termine dell'installazione debconf chiede di impostare la password dell' utente nagiosadmin per l'accesso all'interfaccia web http://192.0.2.1/nagios3 oppure http:/mioserver/nagios3 e ovviamente è necessario sostituire opportunamente gli indirizzi a seconda del proprio caso.
Se si ha intenzione di eseguire il monitoraggio di apparati di rete è necessario il seguente pachetto:
~# apt-get install nagios-snmp-plugins
E questo per la documentazione:
~# apt-get install nagios3-doc
Panoramica
L'interfaccia web presenta un menu suddiviso in quattro blocchi:
- General
- link alla documentazione.
- Current Status
- accesso allo stato degli host, dei servizi alle problematiche in atto e alla Mappa# mappa.
- Reports
- report sulla disponibilità di host e servizi, lo storico degli alert e delle notifiche inviate.
- System
- informazioni sul funzionamento del sistema Nagios.
Inizialmente viene monitorato il solo server su cui è installato Nagios,
identificato come localhost
, ma per iniziare a monitorare
un'infrastruttura IT è necessaria una configurazione.
Configurazione
Esistono due modi di configurare un'installazione Nagios:
- editare i file di configurazione siti in
/etc/nagios3
- utilizzare uno strumento per la configurazione
L'installazione appena effettuata non offre alcuno strumento di configurazione e tra i pacchetti Debian troviamo solo djagios che non raccomanderei, almeno all'attuale stato di sviluppo.
Alcuni tra gli strumenti disponibili al di fuori di Debian sono:
In questa guida ci si riferirà a NagiosQL ed alla modifica diretta dei file di configurazione.
Editare i file di configurazione
I file di configurazione si trovano in /etc/nagios3
:
- apache2.conf
- configurazione relativa al web server
apache2
. - cgi.cfg
- configurazione dell'interfaccia web di Nagios e dei permessi concessi agli utenti.
- commands.cfg
- file di definizione dei comandi tramite cui eseguire il monitoraggio.
- htpasswd.users
- username e password degli utenti che possono accedere all'interfaccia web.
- nagios.cfg
- file di configurazione principale.
- resource.cfg
- file di definizione delle risorse come ad esempio SNMP community o password da usare nei comandi.
Se è stato installato il pacchetto nagios3-docs
, controllare che
nel file /etc/nagios3/apache2.conf
sia presente index.html
dopo index.php
[...] #Alias /nagios /usr/share/nagios3/htdocs <DirectoryMatch (/usr/share/nagios3/htdocs|/usr/lib/cgi-bin/nagios3|/etc/nagios3/stylesheets)> Options FollowSymLinks DirectoryIndex index.php index.html [...]
Oltre a questi file è presente la directory conf.d
in cui è
contenuta la configurazione dell'host di esempio localhost
che si
trova nel file: localhost_nagios2.cfg
.
define host{ use generic-host ; Name of host template to use host_name localhost alias localhost address 127.0.0.1 } define service{ use generic-service ; Name of service template to use host_name localhost service_description Disk Space check_command check_all_disks!20%!10% } [...]
Le definizioni sono autoesplicative, tuttavia si noti che la direttiva use
indica i template a cui fare riferimento: generic-host
per gli
host e generic-service
per i servizi. I template specificano
direttive comuni ad una categoria di host in modo da non doverle ripetere
in tutte le definizioni.
La direttiva check_all_disks
indica il comando da eseguire per
controllare lo spazio disco libero del server localhost
e gli
argomenti separati da !
indicano rispettivamente la soglia di
warning e di condizione critical. Ci si aspeterebbe che il comando fosse
definito nel file /etc/nagios3/commands.cfg
, ma in Debian i comandi
relativi ai plugin installati sono specificati all'interno della directory
/etc/nagios-plugins/config
.
Aggiungere un host
Supponiamo di voler monitorare un router; per aggiungere il nuovo host è
sufficiente creare un nuovo file all'interno della directory conf.d
ad esempio myrouter.cfg
.
define host{ use generic-host host_name myrouter alias Il mio router address 127.0.0.1 }
Aggiungere un servizio
Non ha senso controllare lo spazio disco di un router, invece monitoriamo il
router tramite un servizio PING
. Supponendo anche di non conoscere
quale comando utilizzare, controlliamo all'interno della directory
/etc/nagios-plugins/config
per notare il file ping.cfg
:
# 'check_ping' command definition define command{ command_name check_ping command_line /usr/lib/nagios/plugins/check_ping -H '$HOSTADDRESS$' -w '$ARG1$' -c '$ARG2$' }
$HOSTADDRESS$
è una macro che sostituisce a tempo di esecuzione
l'indirizzo dell'host specificato nella sua definizione, $ARG1$
e
$ARG2$
sono macro che sostituiscono gli argomenti specificati nella
definizione del servizio.
A questo punto per capire cosa significhino gli argomenti si esegue il comando:
~# /usr/lib/nagios/plugins/check_ping --help check_ping v1.4.15 (nagios-plugins 1.4.15) Copyright (c) 1999 Ethan Galstad <nagios@nagios.org> Copyright (c) 2000-2007 Nagios Plugin Development Team <nagiosplug-devel@lists.sourceforge.net> Use ping to check connection statistics for a remote host. Usage: check_ping -H <host_address> -w <wrta>,<wpl>% -c <crta>,<cpl>% [-p packets] [-t timeout] [-4|-6] Options: -h, --help Print detailed help screen -V, --version Print version information -4, --use-ipv4 Use IPv4 connection -6, --use-ipv6 Use IPv6 connection -H, --hostname=HOST host to ping -w, --warning=THRESHOLD warning threshold pair -c, --critical=THRESHOLD critical threshold pair -p, --packets=INTEGER number of ICMP ECHO packets to send (Default: 5) -L, --link show HTML in the plugin output (obsoleted by urlize) -t, --timeout=INTEGER Seconds before connection times out (default: 10) THRESHOLD is <rta>,<pl>% where <rta> is the round trip average travel time (ms) which triggers a WARNING or CRITICAL state, and <pl> is the percentage of packet loss to trigger an alarm state. This plugin uses the ping command to probe the specified host for packet loss (percentage) and round trip average (milliseconds). It can produce HTML output linking to a traceroute CGI contributed by Ian Cass. The CGI can be found in the contrib area of the downloads section at http://www.nagios.org/ [...]
È utile farlo per qualsiasi plugin che possa essere utile. Ritornando all'esempio, aggiungere al file /etc/nagios3/conf.d/myrouter.cfg:
define service{ use generic-service host_name myrouter service_description PING check_command check_ping!200,10%!350,20% }
Aggiungere gruppi
Definiamo un nuovo gruppo in cui inserire tutti gli apparati di rete modificando
il file /etc/nagios3/conf.d/hostgroups_nagios2.cfg
:
define hostgroup { hostgroup_name network-devices alias Network Devices members myrouter }
I gruppi servono per separare logicamente gli apparati che compongono l'infrastruttura IT, in modo da visualizzarli più facilmente nell'interfaccia web di Nagios.
Modificare i contatti
I contatti definiscono le risorse a cui inviare gli avvisi, in modo che le eventuali
problematiche siano prese in gestione e risolte. Il file /etc/nagios3/conf.d/contacts_nagios2.cfg
contiene la definizione dei contatti.
define contact{ contact_name root alias Root service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email root@localhost }
In questo caso gli alert relativi ai servizi e agli host sono inviati via email 24x7 a root@localhost. Gli avvisi sono inviati quando un servizio si trova in stato di WARNING
, UNKNOWN
, CRITICAL
e RECOVERY
o quando un host si trova in stato di DOWN
o RECOVERY
.
Applicazione della nuova configurazione
Ora è necessario ricaricare la configurazione, ma prima è opportuno controllare di non avere introdotto errori di configurazione:
# nagios3 -v /etc/nagios3/nagios.conf [...] Total Warnings: 0 Total Errors: 0
e quindi procedere eseguendo:
/etc/init.d/nagios3 reload Reloading nagios3 monitoring daemon configuration files: nagios3.
Guida scritta da: Nicsar | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |