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 scrivere plugin personalizzati.
Di Nagios esiste 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 fondar 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 per 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 Debian offre poco in tal senso: 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 e 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
e 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 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
definit nel file /etc/nagios3/commands.cfg
, ma in Debian i comandi
relativi ai plugin installati sono definiti 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 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/
[...]
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%
}
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.
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