Nagios: monitoraggio infrastruttura IT: differenze tra le versioni
(Prima pubblicazione - da completare) |
m (rimozione stub) |
||
(2 versioni intermedie di 2 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Guida da adottare}} | ||
{{Versioni compatibili|Squeeze | {{Versioni compatibili|Lenny|Squeeze}} | ||
== Introduzione == | == Introduzione == | ||
[http://www.nagios.org Nagios] è un sistema di monitoraggio che | [http://www.nagios.org Nagios] è un sistema di monitoraggio che | ||
consente di identificare e risolvere eventuali problematiche di | consente di identificare e risolvere eventuali problematiche di | ||
un'infrastruttura IT prima che possano avere conseguenze negative. | un'infrastruttura IT prima che possano avere conseguenze negative. | ||
Nagios è in grado di monitorare apparati di rete, sistemi e servizi | 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 | il sistema dei plugin lo rende versatile ed adattabile ad ogni esigenza di | ||
monitoraggio, infatti è possibile scrivere plugin personalizzati. | monitoraggio, infatti è possibile anche scrivere plugin personalizzati. | ||
Esistono una versione enterprise chiamata [http://www.nagios.com/products/nagiosxi Nagios XI] | |||
che offre un sistema di monitoraggio completo e già costruito ed una versione | che offre un sistema di monitoraggio completo e già costruito ed una versione | ||
[http://www.nagios.org/download/core Nagios Core] che costituisce la base su | [http://www.nagios.org/download/core Nagios Core] che costituisce la base su | ||
cui | cui fondare il proprio sistema di monitoring. In Debian 'squeeze' è disponibile la | ||
versione 'Core' nel pacchetto <code>nagios3</code>. | versione 'Core' nel pacchetto <code>nagios3</code>. | ||
== Installazione == | == Installazione == | ||
Come anticipato nell'[[#Introduzione]], installiamo Nagios in una Debian | Come anticipato nell'[[#Introduzione|Introduzione]], installiamo Nagios in una Debian | ||
'squeeze'. | 'squeeze'. | ||
Riga 54: | Riga 55: | ||
== Configurazione == | == Configurazione == | ||
Esistono due modi | Esistono due modi di configurare un'installazione Nagios: | ||
# editare i file di configurazione siti in <code>/etc/nagios3</code> | # editare i file di configurazione siti in <code>/etc/nagios3</code> | ||
# utilizzare uno strumento per la configurazione | # utilizzare uno strumento per la configurazione | ||
L'installazione appena effettuata non offre alcuno strumento di configurazione | L'installazione appena effettuata non offre alcuno strumento di configurazione | ||
e Debian | e tra i pacchetti Debian troviamo solo [http://www.djagios.org djagios] che | ||
non raccomanderei, almeno all'attuale stato di sviluppo. | non raccomanderei, almeno all'attuale stato di sviluppo. | ||
Riga 66: | Riga 67: | ||
* [http://www.nconf.org NConf] | * [http://www.nconf.org NConf] | ||
In questa guida ci si riferirà a ''NagiosQL'' | In questa guida ci si riferirà a ''NagiosQL'' ed alla modifica diretta dei file | ||
di configurazione. | di configurazione. | ||
= Editare i file di configurazione = | === Editare i file di configurazione === | ||
I file di configurazione si trovano in <code>/etc/nagios3</code>: | I file di configurazione si trovano in <code>/etc/nagios3</code>: | ||
Riga 95: | Riga 96: | ||
Oltre a questi file è presente la directory <code>conf.d</code> in cui è | Oltre a questi file è presente la directory <code>conf.d</code> in cui è | ||
contenuta la configurazione dell'host di esempio <code>localhost</code> | contenuta la configurazione dell'host di esempio <code>localhost</code> che si | ||
trova nel file: <code>localhost_nagios2.cfg</code>. | trova nel file: <code>localhost_nagios2.cfg</code>. | ||
Riga 115: | Riga 116: | ||
</pre> | </pre> | ||
Le definizioni sono autoesplicative, tuttavia si noti la direttiva <code>use</code> | Le definizioni sono autoesplicative, tuttavia si noti che la direttiva <code>use</code> | ||
indica i ''template'' a cui fare riferimento: <code>generic-host</code> per gli | indica i ''template'' a cui fare riferimento: <code>generic-host</code> per gli | ||
host e <code>generic-service</code> per i servizi. I ''template'' specificano | host e <code>generic-service</code> per i servizi. I ''template'' specificano | ||
Riga 125: | Riga 126: | ||
argomenti separati da <code>!</code> indicano rispettivamente la soglia di | argomenti separati da <code>!</code> indicano rispettivamente la soglia di | ||
''warning'' e di condizione ''critical''. Ci si aspeterebbe che il comando fosse | ''warning'' e di condizione ''critical''. Ci si aspeterebbe che il comando fosse | ||
definito nel file <code>/etc/nagios3/commands.cfg</code>, ma in Debian i comandi | |||
relativi ai plugin installati sono | relativi ai plugin installati sono specificati all'interno della directory | ||
<code>/etc/nagios-plugins/config</code>. | <code>/etc/nagios-plugins/config</code>. | ||
= Aggiungere un host = | ==== Aggiungere un host ==== | ||
Supponiamo di voler monitorare un router | Supponiamo di voler monitorare un router; per aggiungere il nuovo host è | ||
sufficiente creare un nuovo file all'interno della directory <code>conf.d</code> | sufficiente creare un nuovo file all'interno della directory <code>conf.d</code> | ||
ad esempio <code>myrouter.cfg</code>. | ad esempio <code>myrouter.cfg</code>. | ||
Riga 143: | Riga 144: | ||
</pre> | </pre> | ||
= Aggiungere un servizio = | ==== Aggiungere un servizio ==== | ||
Non ha senso controllare lo spazio disco di un router, invece monitoriamo il | Non ha senso controllare lo spazio disco di un router, invece monitoriamo il | ||
router tramite un servizio <code>PING<code>. Supponendo di non conoscere quale | router tramite un servizio <code>PING</code>. Supponendo anche di non conoscere | ||
comando utilizzare, controlliamo all'interno della directory | quale comando utilizzare, controlliamo all'interno della directory | ||
<code>/etc/nagios-plugins/config</code> per notare il file <code>ping.cfg</code>: | <code>/etc/nagios-plugins/config</code> per notare il file <code>ping.cfg</code>: | ||
Riga 210: | Riga 211: | ||
</pre> | </pre> | ||
per qualsiasi plugin che possa essere utile. Ritornando all'esempio, aggiungere | È utile farlo per qualsiasi plugin che possa essere utile. Ritornando | ||
al file /etc/nagios3/conf.d/myrouter.cfg: | all'esempio, aggiungere al file /etc/nagios3/conf.d/myrouter.cfg: | ||
<pre> | <pre> | ||
Riga 221: | Riga 222: | ||
} | } | ||
</pre> | </pre> | ||
==== Aggiungere gruppi ==== | |||
Definiamo un nuovo gruppo in cui inserire tutti gli apparati di rete modificando | Definiamo un nuovo gruppo in cui inserire tutti gli apparati di rete modificando | ||
il file <code>/etc/nagios3/conf.d/hostgroups_nagios2.cfg</code>: | il file <code>/etc/nagios3/conf.d/hostgroups_nagios2.cfg</code>: | ||
Riga 237: | Riga 238: | ||
web di Nagios. | 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 <code>/etc/nagios3/conf.d/contacts_nagios2.cfg</code> | |||
contiene la definizione dei contatti. | |||
<pre> | |||
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 | |||
} | |||
</pre> | |||
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 <code>WARNING</code>, <code>UNKNOWN</code>, <code>CRITICAL</code> e <code>RECOVERY</code> o quando un host si trova in stato di <code>DOWN</code> o <code>RECOVERY</code>. | |||
==== Applicazione della nuova configurazione ==== | |||
Ora è necessario ricaricare la configurazione, ma prima è opportuno controllare | Ora è necessario ricaricare la configurazione, ma prima è opportuno controllare | ||
di non avere introdotto errori di configurazione: | di non avere introdotto errori di configurazione: |
Versione attuale delle 12:04, 20 ott 2015
Guida da adottare! |
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 5 "lenny" Debian 6 "squeeze" |
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 |