Nagios: monitoraggio infrastruttura IT: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Prima pubblicazione - da completare)
 
m (rimozione stub)
 
(2 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
{{stub}}
{{Guida da adottare}}
{{Versioni compatibili|Squeeze|Lenny}}
{{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, inoltre
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.


Di Nagios esiste una versione enterprise chiamata [http://www.nagios.com/products/nagiosxi Nagios XI]
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 fondar il proprio sistema di monitoring. In Debian 'squeeze' è disponibile la
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 per configurare un'installazione Nagios:
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 offre poco in tal senso: solo [http://www.djagios.org djagios] che
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'' e alla modifica diretta dei file
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> e si
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
definit nel file <code>/etc/nagios3/commands.cfg</code>, ma in Debian i comandi
definito nel file <code>/etc/nagios3/commands.cfg</code>, ma in Debian i comandi
relativi ai plugin installati sono definiti all'interno della directory
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, per aggiungere il nuovo host è
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! Bannermv.png


Edit-clear-history.png 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.


Debian-swirl.png 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:

  1. editare i file di configurazione siti in /etc/nagios3
  2. 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 Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized