Old:Nagios: monitorare server e servizi: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
(inserita categoria da adottare)
Nessun oggetto della modifica
Riga 1: Riga 1:
{{Versioni compatibili|Debian Etch 4.0|}}
{{Versioni compatibili|Debian Etch 4.0|}}
=Introduzione=
== Introduzione ==
Nagios ([http://www.nagios.org Home Page]) è uno strumento molto usato ed utilissimo per il monitoraggio di server e servizi. All'inizio, per molti utenti, è un po' complicato da configurare, ma dopo aver capito il funzionamento risulterà semplice, potente e versatile, attributi necessari per questo genere di strumenti.
Nagios ([http://www.nagios.org Home Page]) è uno strumento molto usato ed utilissimo per il monitoraggio di server e servizi. All'inizio, per molti utenti, è un po' complicato da configurare, ma dopo aver capito il funzionamento risulterà semplice, potente e versatile, attributi necessari per questo genere di strumenti.
{{ Warningbox | Da Debian Lenny 5.0 in poi il pacchetto <code>nagios2</code> non è più presente nei repository. Al suo posto è stato inserito il più aggiornato <code>nagios3</code>.<br/>
{{ Warningbox | Da Debian Lenny 5.0 in poi il pacchetto <code>nagios2</code> non è più presente nei repository. Al suo posto è stato inserito il più aggiornato <code>nagios3</code>.<br/>
Per queste versioni si consiglia pertanto di far riferimento alla guida aggiornata. }}
Per queste versioni si consiglia pertanto di far riferimento alla guida aggiornata. }}


= Installazione =
== Installazione ==
La macchina su cui verrà installato Nagios è una Debian Etch. Installeremo la versione 2 di Nagios, con i relativi pacchetti per avere un maggior numero di plugin e immagini (vedremo dopo come usarle).
La macchina su cui verrà installato Nagios è una Debian Etch. Installeremo la versione 2 di Nagios, con i relativi pacchetti per avere un maggior numero di plugin e immagini (vedremo dopo come usarle).


Riga 13: Riga 13:
</pre>
</pre>


Dopo aver scaricato (sono circa 3.5Mb) ed installato nagios provvediamo all'installazione di un web server (necessario per consultare la comoda [[web-interface]]); la mia scelta è ricaduta su apache2, anche perchè il server in questione ospiterà applicazioni scritte in php. Procediamo ad installare apache2 con:
Dopo aver scaricato (sono circa 3.5Mb) ed installato nagios provvediamo all'installazione di un web server (necessario per consultare la comoda [[web-interface]]); la mia scelta è ricaduta su apache2, anche perché il server in questione ospiterà applicazioni scritte in PHP. Procediamo ad installare apache2 con:
<pre>
<pre>
# apt-get install apache2 libapache2-mod-php5
# apt-get install apache2 libapache2-mod-php5
Riga 19: Riga 19:




= Configurazione =
== Configurazione ==
== Apache ==
=== Apache ===
Al momento dell'installazione viene creato in modo automatico il file <tt>/etc/apache2/conf.d/nagios2.conf</tt> (il file è, a tutti gli effetti, un link simbolico al file <tt>/etc/nagios2/apache2.conf</tt>) con il seguente contenuto:
Al momento dell'installazione viene creato in modo automatico il file <code>/etc/apache2/conf.d/nagios2.conf</code> (il file è, a tutti gli effetti, un link simbolico al file <code>/etc/nagios2/apache2.conf</code>) con il seguente contenuto:
<pre>
<pre>
# apache configuration for nagios 2.x
# apache configuration for nagios 2.x
Riga 123: Riga 123:
# touch /var/www/nagios/index.html
# touch /var/www/nagios/index.html
</pre>
</pre>
la directory conterrà un file <tt>index.html</tt> vuoto, in questo file potremmo mettere o una pagina di benvenuto oppure un redirect alla directory contenente l'applicativo, a piacere.
la directory conterrà un file <code>index.html</code> vuoto, in questo file potremmo mettere o una pagina di benvenuto oppure un redirect alla directory contenente l'applicativo, a piacere.


Ora manca solo una cosa da fare: aggiungere l'utente per l'accesso a nagios (operazione obbligatoria, pena un errore di tipo 500 quando si tenta di accedere all'applicazione).
Ora manca solo una cosa da fare: aggiungere l'utente per l'accesso a nagios (operazione obbligatoria, pena un errore di tipo 500 quando si tenta di accedere all'applicazione).


Per aggiungere l'utente usiamo il comando <tt>htpasswd</tt>:
Per aggiungere l'utente usiamo il comando <code>htpasswd</code>:
<pre>
<pre>
# htpasswd  -c  /etc/nagios2/htpasswd.users nagiosadmin
# htpasswd  -c  /etc/nagios2/htpasswd.users nagiosadmin
Riga 133: Riga 133:
alla richiesta di password, inseriamo una password a nostro piacimento.
alla richiesta di password, inseriamo una password a nostro piacimento.


Ora possiamo testare la configurazione, ma prima è necessario riavviare apache per rendere effettive le modifiche che abbiamo effettuato:
Ora possiamo testare la configurazione, ma prima è necessario riavviare Apache per rendere effettive le modifiche che abbiamo effettuato:
<pre>
<pre>
# /etc/init.d/apache2 restart
# /etc/init.d/apache2 restart
</pre>
</pre>


Collegandosi alla pagina <nowiki>http://nagios.knio.it/nagios2/</nowiki> ci verrà chiesto username/password per accedere a nagios, dopodichè ci verrà mostrata la schermata di default.
Collegandosi alla pagina <nowiki>http://nagios.knio.it/nagios2/</nowiki> ci verrà chiesto username/password per accedere a nagios, dopodiché ci verrà mostrata la schermata di default.


== Nagios ==
=== Nagios ===
=== Introduzione alla configurazione ===
==== Introduzione alla configurazione ====
La configurazione di nagios è situato, come da [[FHS]] in <tt>/etc/nagios2/</tt>. All'interno di questa directory sono presenti i seguenti file (e directory):
La configurazione di nagios è situata, come da [[FHS]] in <code>/etc/nagios2/</code>. All'interno di questa directory sono presenti i seguenti file (e directory):
; cgi.cfg : il file contiene la configurazione dell'interfaccia web di nagios (quindi i percorsi dove trovare i file di configurazione ed alcuni comportamenti base; la configurazione dei permessi degli utenti e perfino i suoni da riprodurre in caso di problemi)
; cgi.cfg : il file contiene la configurazione dell'interfaccia web di nagios (quindi i percorsi dove trovare i file di configurazione ed alcuni comportamenti base; la configurazione dei permessi degli utenti e perfino i suoni da riprodurre in caso di problemi)
; commands.cfg : contiene la configurazione dei comandi eseguibili da nagios: check, notifiche ed altri
; commands.cfg : contiene la configurazione dei comandi eseguibili da nagios: check, notifiche ed altri
; conf.d : una directory che ha lo scopo di raccogliere i file di configurazione di tutti i vari host monitorati da nagios
; conf.d : una directory che ha lo scopo di raccogliere i file di configurazione di tutti i vari host monitorati da nagios
; htpasswd.users : contiene (come abbiamo visto prima) le chiavi di accesso di tutti gli utenti che possono accedere all'interfaccia web di nagios (i permessi, per questi utenti, sono definiti in <tt>cgi.cfg</tt>)
; htpasswd.users : contiene (come abbiamo visto prima) le chiavi di accesso di tutti gli utenti che possono accedere all'interfaccia web di nagios (i permessi, per questi utenti, sono definiti in <code>cgi.cfg</code>)
; nagios.cfg : contiene la configurazione vera e propria del demone di nagios, la configurazione di default è corretta nella maggior parte dei casi
; nagios.cfg : contiene la configurazione vera e propria del demone di nagios, la configurazione di default è corretta nella maggior parte dei casi
; resource.cfg : in questa guida non lo modificheremo
; resource.cfg : in questa guida non lo modificheremo
; stylesheets : directory per inserire i fogli di stile personalizzati (in questa guida non li useremo)
; stylesheets : directory per inserire i fogli di stile personalizzati (in questa guida non li useremo)


=== Come gestire al meglio i file di configurazione ===
==== Come gestire al meglio i file di configurazione ====
Anche se la struttura dei file di configurazione è semplice, ci vuole molto poco a renderla una vera e propria accozzaglia di file. Ci sono varie scuole di pensiero su come gestire i file.  
Anche se la struttura dei file di configurazione è semplice, ci vuole molto poco a renderla una vera e propria accozzaglia di file. Ci sono varie scuole di pensiero su come gestire i file.  


La prima è quella di inserire, all'interno della directory <tt>conf.d/</tt> un file per ogni host, raggruppando, poi, gli host tramite gli hostgroup. La tecnica è valida e funzionale, a meno che non ci si trovi a gestire un numero eccessivo di host.
La prima è quella di inserire, all'interno della directory <code>conf.d/</code> un file per ogni host, raggruppando, poi, gli host tramite gli hostgroup. La tecnica è valida e funzionale, a meno che non ci si trovi a gestire un numero eccessivo di host.


La seconda tecnica, è quella di creare tante directory quante sono i segmenti della rete, così da racchiudere i file di configurazione in directory meno popolate, così da rendere più facilmente individuabile un file.  
La seconda tecnica, è quella di creare tante directory quanti sono i segmenti della rete, così da racchiudere i file di configurazione in directory meno popolate, così da rendere più facilmente individuabile un file.  


Personalmente trovo più comodo gestire la prima, con la seguente convenzione:
Personalmente trovo più comodo gestire la prima, con la seguente convenzione:
* ogni file ha la forma <tt>'''type'''-'''name'''.cfg</tt> dove '''type''' rappresenta la tipologia del file di configurazione (''host'' per un server, ''switch'' per uno switch di rete, ''router'' per un router, e così via...) e dove '''name''' è il nome univoco associato alla macchina (e usato anche all'interno di Nagios).
* ogni file ha la forma <code>'''type'''-'''name'''.cfg</code> dove '''type''' rappresenta la tipologia del file di configurazione (''host'' per un server, ''switch'' per uno switch di rete, ''router'' per un router, e così via...) e dove '''name''' è il nome univoco associato alla macchina (e usato anche all'interno di Nagios).
* i file contenenti i gruppi, le definizioni dei periodi e simili hanno una struttura <tt>'''type'''.cfg</tt> dove ''type'' può essere:
* i file contenenti i gruppi, le definizioni dei periodi e simili hanno una struttura <code>'''type'''.cfg</code> dove ''type'' può essere:
** '''contacts''': per le definizioni dei contatti
** '''contacts''': per le definizioni dei contatti
** '''timeperiods''': per le definizioni dei periodi
** '''timeperiods''': per le definizioni dei periodi
Riga 169: Riga 169:
Un'accortezza da adottare, inoltre, quando si modifica un file di configurazione è quella di effettuare un check di correttezza tramite il comando:
Un'accortezza da adottare, inoltre, quando si modifica un file di configurazione è quella di effettuare un check di correttezza tramite il comando:
<pre>
<pre>
nagios -v /etc/nagios2/nagios.conf
# nagios -v /etc/nagios2/nagios.conf
</pre>
</pre>
In questo modo si eviteranno [[downtime]] e si sarà sicuri che nagios ripartirà senza problemi (almeno legati alla sintassi dei file di configurazione...).
In questo modo si eviteranno [[downtime]] e si sarà sicuri che nagios ripartirà senza problemi (almeno legati alla sintassi dei file di configurazione...).


=== Gli Host ===
==== Gli Host ====
Tramite gli '''[[host]]''' è possibile definire i pc, server, switch e tutte le altre apparecchiature presenti nella rete da monitorare. Saranno poi i '''servizi''' a determinare cosa monitorare effettivamente.
Tramite gli '''[[host]]''' è possibile definire i PC, server, switch e tutte le altre apparecchiature presenti nella rete da monitorare. Saranno poi i '''servizi''' a determinare cosa monitorare effettivamente.


La definizione classica e minimale di un host è la seguente
La definizione classica e minimale di un host è la seguente:
<pre>
<pre>
define host{
define host{
Riga 188: Riga 188:
I parametri della definizione sono i seguenti:
I parametri della definizione sono i seguenti:
; use : permette di specificare un [[template]] da utilizzare all'interno del nostro host. L'utilizzo di un template permette di minimizzare i parametri necessari da passare ad un host. Il template che usiamo, per ora, è ''generic-host'' che è quello fornito di default in Debian. In seguito provvederemo a creare dei template che permetteranno uan suddivisione degli host in modo semplice ed immediato.
; use : permette di specificare un [[template]] da utilizzare all'interno del nostro host. L'utilizzo di un template permette di minimizzare i parametri necessari da passare ad un host. Il template che usiamo, per ora, è ''generic-host'' che è quello fornito di default in Debian. In seguito provvederemo a creare dei template che permetteranno uan suddivisione degli host in modo semplice ed immediato.
; host_name : l'[[hostname]] dell'host. Deve essere univoco, in quanto viene utilizzato all'interno di Nagios come nome univoco di un host. è buona pratica utilizzare l'hostname della macchina, in quanto permetterà, in seguito, di identificarla più facilmente. In caso di switch od altri componenti conviene identificarli nel seguente modo: '''switch-dmz''', '''firewall-dmz''', etc...
; host_name : l'[[hostname]] dell'host. Deve essere univoco, in quanto viene utilizzato all'interno di Nagios come nome univoco di un host. è buona pratica utilizzare l'hostname della macchina, in quanto permetterà, in seguito, di identificarla più facilmente. In caso di switch od altri componenti conviene identificarli nel seguente modo: '''switch-dmz''', '''firewall-dmz''', etc.
; alias : rappresenta il nome comune dell'host.
; alias : rappresenta il nome comune dell'host.
; address : l'indirizzo IP dell'host. Deve essere inserito solo l'indirizzo Primario, e non una lista di indirizzi! Se si vogliono monitorare più indirizzi IP o più servizi legati a più indirizzi IP, sarà opportuno o definire un altro host (non molto corretto) oppure aggiungere servizi in cui viene indicato, come parametro, l'indirizzo IP secondario.
; address : l'indirizzo IP dell'host. Deve essere inserito solo l'indirizzo Primario, e non una lista di indirizzi! Se si vogliono monitorare più indirizzi IP o più servizi legati a più indirizzi IP, sarà opportuno o definire un altro host (non molto corretto) oppure aggiungere servizi in cui viene indicato, come parametro, l'indirizzo IP secondario.
Riga 198: Riga 198:
Come convenzione per la creazione di un host creeremo un file col formato '''/etc/nagios2/conf.d/hosts/hostname.cfg''' dove ''hostname'' va sostituito con l'hostname dell'host definito.
Come convenzione per la creazione di un host creeremo un file col formato '''/etc/nagios2/conf.d/hosts/hostname.cfg''' dove ''hostname'' va sostituito con l'hostname dell'host definito.


=== I Servizi ===
==== I Servizi ====
I servizi vengono utilizzati per definire un controllo su un servizio presente su un determinato host. Possono essere associati ad un determinato host (utile per controlli specifici) oppure ad un hostgroup (utile per controlli generici o comunque monitoraggio di servizi standard).
I servizi vengono utilizzati per definire un controllo su un servizio presente su un determinato host. Possono essere associati ad un determinato host (utile per controlli specifici) oppure ad un hostgroup (utile per controlli generici o comunque monitoraggio di servizi standard).


Riga 217: Riga 217:
; check_command <command> : il [[#I_Comandi | comando]] da utilizzare per eseguire il controllo del servizio.
; check_command <command> : il [[#I_Comandi | comando]] da utilizzare per eseguire il controllo del servizio.


L'esempio sopra riportato associa il servizio ad un determinato host, ma è possibile associarlo ad un hostgroup, sostituendo la voce <tt>host_name</tt> con <tt>hostgroup_name</tt>.
L'esempio sopra riportato associa il servizio ad un determinato host, ma è possibile associarlo ad un hostgroup, sostituendo la voce <code>host_name</code> con <code>hostgroup_name</code>.


Per i servizi verrà adottata la seguente convenzione:
Per i servizi verrà adottata la seguente convenzione:
Riga 223: Riga 223:
* se il servizio è dedicato ad un hostgroup, invece, verrà inserito all'interno del file di definizione dell'[[#hostgroup | hostgroup]].
* se il servizio è dedicato ad un hostgroup, invece, verrà inserito all'interno del file di definizione dell'[[#hostgroup | hostgroup]].


=== I Comandi ===
==== I Comandi ====
I comandi rappresentano i mattoni su cui costruire i check dei sistemi. Essi possono essere specifici (ad esempio il check di funzionamento di un server [[IMAP]]) o generici (come il test dell'apertura di una porta [[TCP]]).
I comandi rappresentano i mattoni su cui costruire i check dei sistemi. Essi possono essere specifici (ad esempio il check di funzionamento di un server [[IMAP]]) o generici (come il test dell'apertura di una porta [[TCP]]).


I comandi base sono definiti in <tt>/etc/nagios2/commands.cfg</tt>, mentre quelli installati tramite i plugin (i pacchetti ''nagios-plugins*'') sono contenuti in <tt>/etc/nagios-plugins/config/</tt>.
I comandi base sono definiti in <code>/etc/nagios2/commands.cfg</code>, mentre quelli installati tramite i plugin (i pacchetti ''nagios-plugins*'') sono contenuti in <code>/etc/nagios-plugins/config/</code>.


La sintassi per la definizione di un comando è la seguente:
La sintassi per la definizione di un comando è la seguente:
Riga 236: Riga 236:
}</pre>
}</pre>


Dove
Dove:
; template <templatename> : permette di caricare un template (cioè un altra definizone di comando da cui attingere i valori opzionali)
; template <templatename> : permette di caricare un template (cioè un'altra definizione di comando da cui attingere i valori opzionali)
; command_name  <commandname> : il nome (univoco) del comando. Per convenzione, non potendo inserire spazi all'interno del nome, sostituiremo quest'ultimi con dei '''-'''.
; command_name  <commandname> : il nome (univoco) del comando. Per convenzione, non potendo inserire spazi all'interno del nome, sostituiremo quest'ultimi con dei '''-'''.
; command_line  <commandline> : il percorso completo del comando (script o eseguibile) da lanciare, con gli eventuali parametri specificati.
; command_line  <commandline> : il percorso completo del comando (script o eseguibile) da lanciare, con gli eventuali parametri specificati.


==== Utilizzare quelli esistenti ====
===== Utilizzare quelli esistenti =====
Carpire il corretto utilizzo dei comandi può essere, a volte, un po' complesso. Per capire come utilizzare quelli definiti, possiamo adottare la seguente strategia:
Carpire il corretto utilizzo dei comandi può essere, a volte, un po' complesso. Per capire come utilizzare quelli definiti, possiamo adottare la seguente strategia:
* identifichiamo il percorso completo del comando da eseguire. In questo esempio ci riferiremo ai comandi contenuti in <tt>/etc/nagios-plugins/config/http.cfg</tt>. Il path del comando che viene richiamato è <tt>/usr/lib/nagios/plugins/check_http</tt>.
* identifichiamo il percorso completo del comando da eseguire. In questo esempio ci riferiremo ai comandi contenuti in <code>/etc/nagios-plugins/config/http.cfg</code>. Il path del comando che viene richiamato è <code>/usr/lib/nagios/plugins/check_http</code>.
* visualizziamo l'output dell'help del comando:
* visualizziamo l'output dell'help del comando:
<pre>
<pre>
Riga 260: Riga 260:
Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
Usage: check_http -H <vhost> | -I <IP-address> [-u <uri>] [-p <port>]
       [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]
       [-w <warn time>] [-c <critical time>] [-t <timeout>] [-L]
       [-a auth] [-f <ok | warn | critcal | follow>] [-e <expect>]
       [-a auth] [-f <ok | warn | critical | follow>] [-e <expect>]
       [-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string]
       [-s string] [-l] [-r <regex> | -R <case-insensitive regex>] [-P string]
       [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string] [-k string]
       [-m <min_pg_size>:<max_pg_size>] [-4|-6] [-N] [-M <age>] [-A string] [-k string]
Riga 369: Riga 369:
   command_line    /usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$
   command_line    /usr/lib/nagios/plugins/check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$
}</pre>
}</pre>
in questo caso, si occuperà di controllare che ci sia un [[webserver]] funzionante sulla porta 80 dell'host di cui stiamo eseguendo il check (<tt>$HOSTADDRESS$</tt> e <tt>$HOSTADDRESS$</tt> sono delle Macro. Per approfondimenti consultare il paragrafo [[#Le Macro |Le Macro]]).
in questo caso, si occuperà di controllare che ci sia un [[webserver]] funzionante sulla porta 80 dell'host di cui stiamo eseguendo il check (<code>$HOSTADDRESS$</code> e <code>$HOSTADDRESS$</code> sono delle Macro. Per approfondimenti consultare il paragrafo [[#Le Macro |Le Macro]]).


Un altro esempio potrebbe essere il comando <tt>check_disk</tt>, che ha la seguente definizione:
Un altro esempio potrebbe essere il comando <code>check_disk</code>, che ha la seguente definizione:
<pre>define command{
<pre>define command{
         command_name    check_disk
         command_name    check_disk
Riga 377: Riga 377:
p $ARG3$
p $ARG3$
}</pre>
}</pre>
In questo caso si tratta di un controllo locale (quindi viene effettuato sulla macchina su è installato Nagios), infatti non sono presenti le macro viste prima, ma al loro posto sono presenti <tt>$ARG1$</tt> <tt>$ARG2$</tt> e <tt>$ARG3$</tt>, che rappresentano i parametri passati, all'interno della configurazione dei servizi. In questo caso, la prima opzione (<tt>-w</tt>) imposta il livello di warning, la seconda (<tt>-c</tt>) imposta la soglia critica e il terzo (<tt>-p</tt>) indica la partizione su cui effettuare il controllo.
In questo caso si tratta di un controllo locale (quindi viene effettuato sulla macchina su è installato Nagios), infatti non sono presenti le macro viste prima, ma al loro posto sono presenti <code>$ARG1$</code> <code>$ARG2$</code> e <code>$ARG3$</code>, che rappresentano i parametri passati, all'interno della configurazione dei servizi. In questo caso, la prima opzione (<code>-w</code>) imposta il livello di warning, la seconda (<code>-c</code>) imposta la soglia critica e il terzo (<code>-p</code>) indica la partizione su cui effettuare il controllo.


Quando andremo a richiamare il comando all'interno della definizione del servizio, lo faremo in questo modo:
Quando andremo a richiamare il comando all'interno della definizione del servizio, lo faremo in questo modo:
Riga 389: Riga 389:
Com'è facilmente intuibile, il servizio controllerà la partizione ''/dev/hda1'' ed andrà in stato di warning quando ci sarà meno del 20% di spazio disponibile, ed in stato di errore critico quando ce ne sarà meno del 10%.  
Com'è facilmente intuibile, il servizio controllerà la partizione ''/dev/hda1'' ed andrà in stato di warning quando ci sarà meno del 20% di spazio disponibile, ed in stato di errore critico quando ce ne sarà meno del 10%.  


I parametri sono separati da un '''!''' e vanno indicati nell'ordine corretto (<tt>$ARG1$</tt> indica il primo parametri, e così via...)!
I parametri sono separati da un '''!''' e vanno indicati nell'ordine corretto (<code>$ARG1$</code> indica il primo parametri, e così via...)!


==== Creare nuovi comandi ====
===== Creare nuovi comandi =====
Per semplicità (e convenzione di questa guida) i comandi ''personalizzati'' verranno salvati in <tt>/etc/nagios2/conf.d/commands.cfg</tt> in modo da non modificare il file di configurazione di default di Nagios (cosa che tornerà utile in caso di aggiornamenti e/o migrazioni).
Per semplicità (e convenzione di questa guida) i comandi ''personalizzati'' verranno salvati in <code>/etc/nagios2/conf.d/commands.cfg</code> in modo da non modificare il file di configurazione di default di Nagios (cosa che tornerà utile in caso di aggiornamenti e/o migrazioni).


=== I Gruppi di Host (hostgroup) ===
==== I Gruppi di Host (hostgroup) ====
Un '''hostgroup''' è semplicemente un sistema per raggruppare più host in base a delle caratteristiche comuni (che spaziano dall'appartenenza ad una stessa sottorete all'erogazione di uno stesso tipo di servizio, ...).
Un '''hostgroup''' è semplicemente un sistema per raggruppare più host in base a delle caratteristiche comuni (che spaziano dall'appartenenza ad una stessa sottorete all'erogazione di uno stesso tipo di servizio, ...).


Riga 409: Riga 409:
; hostgroup_name <hostgroupname> : il nome (univoco e senza spazi) dell'hostgroup. Verrà utilizzato all'interno dei file di configurazione di nagios per fare riferimento a questo gruppo di host
; hostgroup_name <hostgroupname> : il nome (univoco e senza spazi) dell'hostgroup. Verrà utilizzato all'interno dei file di configurazione di nagios per fare riferimento a questo gruppo di host
; alias <alias> : un nome comprensibile (una breve descrizione) del gruppo
; alias <alias> : un nome comprensibile (una breve descrizione) del gruppo
; members <hostname1, hostname2> : i membri (<tt>members</tt>) appartenenti al gruppo. <tt>members</tt> e <tt>hostgroups</tt> (visto in precedenza all'interno della sezione [[#Gli_Host |Gli Host]] hanno la stessa funzione, ma in più permettono di deficede come gestire l'assegnazione: tramite <tt>members</tt> viene inserita la lista degli host che fanno parte del gruppo, quindi l'associazione avviene all'interno del file che definisce l'hostgroup; tramite <tt>hostgroups</tt> l'associazione avviene all'interno del file di configurazione dell'host, in cui vengono indicati tutti i gruppi a cui appartiene. Personalmente ritengo più comodo il secondo metodo in quanto, in caso di rimozione di un host, col primo metodo bisognerebbe modificare tutti i file dei gruppi di cui l'host era membro, pena l'impossibilità di far ripartire nagios; inoltre, specificando tutti i gruppi a cui appartiene un host all'interno del proprio file di configurazione permette di avere sotto controllo l'appartenenza di uno specifico host ad un gruppo.
; members <hostname1, hostname2> : i membri (<code>members</code>) appartenenti al gruppo. <code>members</code> e <code>hostgroups</code> (visto in precedenza all'interno della sezione [[#Gli_Host |Gli Host]] hanno la stessa funzione, ma in più permettono di decidere come gestire l'assegnazione: tramite <code>members</code> viene inserita la lista degli host che fanno parte del gruppo, quindi l'associazione avviene all'interno del file che definisce l'hostgroup; tramite <code>hostgroups</code> l'associazione avviene all'interno del file di configurazione dell'host, in cui vengono indicati tutti i gruppi a cui appartiene. Personalmente ritengo più comodo il secondo metodo in quanto, in caso di rimozione di un host, col primo metodo bisognerebbe modificare tutti i file dei gruppi di cui l'host era membro, pena l'impossibilità di far ripartire nagios; inoltre, specificando tutti i gruppi a cui appartiene un host all'interno del proprio file di configurazione permette di avere sotto controllo l'appartenenza di uno specifico host ad un gruppo.


Per gli hostgroup si adotta la convenzione di inserirli nella directory <tt>/etc/nagios2/conf.d/hostgroups/</tt>, specificando per ogni gruppo un file con la sintassi <tt>hostgroupname.cfg</tt>.
Per gli hostgroup si adotta la convenzione di inserirli nella directory <code>/etc/nagios2/conf.d/hostgroups/</code>, specificando per ogni gruppo un file con la sintassi <code>hostgroupname.cfg</code>.
I servizi dedicati a quell'hostgroup andranno, a loro volta, inseriti nel file di configurazione del gruppo di host, così come si è fatto per i servizi di un singolo host.
I servizi dedicati a quell'hostgroup andranno, a loro volta, inseriti nel file di configurazione del gruppo di host, così come si è fatto per i servizi di un singolo host.


=== I Gruppi di Servizi ===
==== I Gruppi di Servizi ====
=== I Contatti ===
==== I Contatti ====
=== I Timeperiod ===
==== I Timeperiod ====
=== Le notifiche ===
==== Le notifiche ====
==== Notifiche via e-mail ====
===== Notifiche via e-mail =====
==== Notifiche via SMS (vodafone) ====
===== Notifiche via SMS (vodafone) =====
==== Notifiche via SMS (gateway) ====
===== Notifiche via SMS (gateway) =====


= Varie =
== Varie ==
== Nagios Checker ==
=== Nagios Checker ===
Nagios Checker ([https://addons.mozilla.org/it/firefox/addon/3607 Home Page]) è una comoda estensione per Firefox che permette di monitorare, direttamente dal browser, lo stato delle nostre macchine. In caso di problemi verrà mostrato un avviso (in rosso) e verrà riprodotto un suono di allarme. Tramite l'estensione sarà possibile, inoltre, accedere direttamente alla pagina dell'host (o del servizio) che danno problemi per approfondire. Un must!
Nagios Checker ([https://addons.mozilla.org/it/firefox/addon/3607 Home Page]) è una comoda estensione per Firefox che permette di monitorare, direttamente dal browser, lo stato delle nostre macchine. In caso di problemi verrà mostrato un avviso (in rosso) e verrà riprodotto un suono di allarme. Tramite l'estensione sarà possibile, inoltre, accedere direttamente alla pagina dell'host (o del servizio) che danno problemi per approfondire. Un must!


= FAQ =
== FAQ ==
== Come posso aggiungere un altro utente a Nagios? ==
=== Come posso aggiungere un altro utente a Nagios? ===
Per aggiungere un nuovo utente è necessario effettuare due passi:
Per aggiungere un nuovo utente è necessario effettuare due passi:


1) creazione dell'account all'interno del file <tt>/etc/nagios2/htpasswd.users</tt>
1) creazione dell'account all'interno del file <code>/etc/nagios2/htpasswd.users</code>
<pre>
<pre>
# htpasswd /etc/nagios2/htpasswd.users nomeutente
# htpasswd /etc/nagios2/htpasswd.users nomeutente
</pre>
</pre>


2) Inserire l'utente appena creato all'interno della configurazione di Nagios. Per fare questo bisogna modificare il file <tt>/etc/nagios2/cgi.cfg</tt> aggiungendo l'utente appena creato alle seguenti direttive (in base ai permessi che si vogliono dare al nuovo utente):
2) Inserire l'utente appena creato all'interno della configurazione di Nagios. Per fare questo bisogna modificare il file <code>/etc/nagios2/cgi.cfg</code> aggiungendo l'utente appena creato alle seguenti direttive (in base ai permessi che si vogliono dare al nuovo utente):
<pre>
<pre>
authorized_for_system_information=nagiosadmin
authorized_for_system_information=nagiosadmin
Riga 448: Riga 448:
</pre>
</pre>


Dopo le varie modifiche è necessario ricaricare la configurazione di nagios con un
Dopo le varie modifiche è necessario ricaricare la configurazione di nagios con un:
<pre>
<pre>
# /etc/init.d/nagios2 reload
# /etc/init.d/nagios2 reload
6 999

contributi

Menu di navigazione