MonitorIcingaEtAl » History » Revision 7
« Previous |
Revision 7/26
(diff)
| Next »
Simone Piccardi, 04/18/2013 12:09 PM
Monitoraggio sistemi con Icinga & C.¶
Installazione base¶
Icinga (http://www.icinga.org) è un fork di Nagios sviluppato in maniera aperta, che presenta numerosi miglioramenti e soprattutto una interfaccia utente nettamente più elaborata. Le presenti istruzioni fanno riferimento all'installazione su una Debian Squeeze utilizzando le versione più recenti disponibili nel repository di backports
pertanto il primo passo da fare sarà quello di abilitare questi ultimi, aggiungendo a /etc/apt/sources.list
la riga:
deb http://backports.debian.org/debian-backports squeeze-backports main
il pacchetto è suddiviso in due parti, il "core" che reimplementa le funzionalità di Nagios, e la nuova interfaccia web, pertanto installeremo entrambe con:
apt-get install -t squeeze-backports icinga icinga-web
Il sistema di debconf
chiederà se abilitare o meno l'uso di comandi esterni con Icinga, questo consente, attraverso l'accesso in scrittura della pipe di controllo posta in /var/lib/icinga/rw/
di dare al web server la possibilità di utilizzare l'interfaccia dei comandi CGI, e servirà anche per l'accesso alla stessa da parte di altri programmi di ausilio, pertanto è opportuno attivarla rispetto alla scelta di default.
L'interfaccia di debconf
chiede anche (qualora si usino diverse alternative) per quale web server generare la configurazione (si lasci il default di apache2), di configurare l'accesso e la creazione di vari database per i quali occorre, usando dbconfig-common
, la password di root del database (si assume l'uso di MySQL su localhost) e le password per gli utenti di amministrazione, icingaadmin
per Icinga e root
per l'interfaccia Web. Viene altresì richiesta la configurazione del database di appoggio per lo storico dei dati (icinga-idoutils
), per il quale di nuovo occorre la password di root del database.
Qualora la configurazione di icinga-web
fallisca in fase di configurazione come capitato a me, occorrerà impostare a mano la password dell'utente root nel relativo database, per questo si dovranno eseguire i seguenti comandi (estratti dallo script di post-installazione):
salt=$(php5 -r 'echo hash("sha256", uniqid("root_", mt_rand()));') export SALT="$salt" export PW="passwordlungaecomplicata" pwhash=$(php5 -r 'echo hash_hmac("sha256", getenv("PW"), getenv("SALT"));') salt_e=${salt/\'/\\\'} pwhash_e=${pwhash/\'/\\\'} query="UPDATE nsm_user SET user_password='""$pwhash_e""', user_salt = '""$salt_e""', user_modified = NOW() WHERE user_name = 'root';" echo $query | mysql -u icinga_web -p icinga_web
fornendo dopo l'ultimo comando la password impostata per il database di icinga-web
.
Una delle caratteristiche di icinga
è la possibilità di utilizzare un database per lo stoccaggio dei dati, le estensioni per l'utilizzo di questa modalità di gestione dei dati sono fornite dal pacchetto icinga-idoutils
(necessario nel caso si voglia utilizzare la nuova interfaccia di icinga-web
, che lo richiede come dipendenza e fa configurare il relativo accesso al database). Per poterlo utilizzare deve essere esplicitamente abilitato l'avvio del demone ido2db
modificando la seguente riga in /etc/default/icinga
:
# start ido2db daemon (no/yes) IDO2DB=yes
inoltre deve essere attivato il modulo di gestione da parte di Icinga, questo deve essere fatto attraverso l'uso del file di configurazione distribuito con icinga-idoutils
, pertanto occorrerà copiare:
cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg
una volta fatto questo si riavviino i relativi servizi con:
service ido2db restart service icinga restart
e si potrà verificare il funzionamento anche della nuova interfaccia web (dando per scontato di aver creato un opportuno virtual host sotto SSL), andando sull'indirizzo https://icinga.miosito.it/icinga-web/
.
Qualora i dati di monitoraggio siano presenti, ma risulti marcata come "_DOWN_" l'instanza di icinga
nel quadro riassuntivo, si verifichi che la timezone di sistema in /etc/timezone
, quella di PHP nella variabile date.timezone
in /etc/php5/apache2/php.ini
siano coerenti, nel caso si provveda anche al riavvio di MySQL per fargli vedere i valori corretti.
Grafici delle risorse con PNP4Nagios¶
Uno degli aspetti più rilevanti di un sistema di monitoraggio è quello che consente di mantenere uno storico del consumo delle risorse che consente di tenerne sotto controllo l'evoluzione. A questo scopo è disponibile PHP4Nagios, che supporta anche una opportuna integrazione con icinga
; per installarlo è sufficiente eseguire il comando:
apt-get install -t squeeze-backports icinga-web-pnp
che installa tutto il necessario nelle dipendenze, una volta fatto questo però vanno fatte alcune correzioni alle configurazioni del pacchetto che sono fatte per Nagios, in particolare occorre modificare /etc/apache2/conf.d/pnp4nagios.conf
correggendo le modalità di autenticazione con:
AuthName "Iconga Access" AuthUserFile /etc/icinga/htpasswd.users
in modo che corrispondano a quanto presente anche in /etc/apache2/conf.d/icinga.conf
, e ci si ricordi di eseguire un reload di apache.
Occorre poi correggere /etc/pnp4nagios/config.php
di nuovo per fagli usare i valori opportuni relativi ad Icinga, in particolare si dovranno modificare le seguenti linee:
... $conf['nagios_base'] = "/icinga/cgi-bin"; ... $conf['livestatus_socket'] = "unix:/var/lib/icinga/rw/live"; ...
La seconda riga attiene all'uso di ''livestatus'' per una lettura efficiente dei dati di Icinga, su cui torneremo più avanti.
Per la generazione dei grafici occorre che Icinga generi i relativi dati, PHP4Nagios prevede diverse modalità per l'accesso agli stessi, la più efficiente è quella dell'uso di un apposito demone, npcd
che si appoggia ad un modulo di Icinga. In realtà il demone può essere anche usato da solo, facendo generare i dati ad Icinga nelle opportune directory.
Anzitutto occorre attivare il demone npcd
in /etc/default/npcd
inserendo la riga:
# Should NPCD be started? ("yes" to enable) RUN="yes"
Il secondo passo è configurare Icinga, cosa che varia a seconda delle modalità scelte per generare i dati. Se si sceglie di usare quella consigliata attraverso il modulo npcdmod.o
occorrono due passaggi; il primo è quello di indicare ad Icinga di generare i dati, inserendo in /etc/icinga/icinga.cfg
la riga:
process_performance_data=1
occorrerà poi abilitare il modulo inserendo in un file di configurazione (nel nostro caso npcdmod.cfg
) nella directory /etc/icinga/modules/
con contenuto:
define module{ module_name npcdmod path /usr/lib/pnp4nagios/npcdmod.o module_type neb args config_file=/etc/pnp4nagios/npcd.cfg }
Controllo con check_mk
¶
L'uso dell'interfaccia web di check_mk
si basa sull'utilizzo di ''livestatus'', una modalità di presentazione dei dati che consente una lettura più veloce ed efficente, cui abbiamo già accennato in precedenta. Questa comporta l'installazione del pacchetto relativo con:
apt-get install -t squeeze-backports check-mk-livestatus
ed una ulteriore configurazione di Icinga; questa può essere fatta usando la nuova funzionalità dei moduli (evitando quindi la direttiva broker_module
) inserendo in un file (nel nostro caso livestatus.cfg
) nella directory /etc/icinga/modules/
con contenuto:
define module{ module_name mklivestatus path /usr/lib/check_mk/livestatus.o module_type neb args /var/lib/icinga/rw/live }
dove
/var/lib/icinga/rw/live
che è il default usato da check_mk
.
Updated by Simone Piccardi over 11 years ago · 7 revisions