MonitorIcingaEtAl » Cronologia » Versione 6
Simone Piccardi, 17-04-2013 20:12
| 1 | 1 | Simone Piccardi | h1. Monitoraggio sistemi con Icinga & C. |
|---|---|---|---|
| 2 | |||
| 3 | 5 | Simone Piccardi | h2. Installazione base |
| 4 | |||
| 5 | _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: |
||
| 6 | |||
| 7 | 1 | Simone Piccardi | <pre> |
| 8 | deb http://backports.debian.org/debian-backports squeeze-backports main |
||
| 9 | </pre> |
||
| 10 | |||
| 11 | il pacchetto è suddiviso in due parti, il _"core"_ che reimplementa le funzionalità di Nagios, e la nuova interfaccia web, pertanto installeremo entrambe con: |
||
| 12 | |||
| 13 | <pre> |
||
| 14 | apt-get install -t squeeze-backports icinga icinga-web |
||
| 15 | </pre> |
||
| 16 | |||
| 17 | 5 | Simone Piccardi | 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. |
| 18 | 1 | Simone Piccardi | |
| 19 | 5 | Simone Piccardi | 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. |
| 20 | 2 | Simone Piccardi | |
| 21 | 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): |
||
| 22 | |||
| 23 | <pre> |
||
| 24 | salt=$(php5 -r 'echo hash("sha256", uniqid("root_", mt_rand()));') |
||
| 25 | export SALT="$salt" |
||
| 26 | export PW="passwordlungaecomplicata" |
||
| 27 | pwhash=$(php5 -r 'echo hash_hmac("sha256", getenv("PW"), getenv("SALT"));') |
||
| 28 | salt_e=${salt/\'/\\\'} |
||
| 29 | pwhash_e=${pwhash/\'/\\\'} |
||
| 30 | query="UPDATE nsm_user SET user_password='""$pwhash_e""', user_salt = '""$salt_e""', user_modified = NOW() WHERE user_name = 'root';" |
||
| 31 | echo $query | mysql -u icinga_web -p icinga_web |
||
| 32 | </pre> |
||
| 33 | |||
| 34 | fornendo dopo l'ultimo comando la password impostata per il database di @icinga-web@. |
||
| 35 | 4 | Simone Piccardi | |
| 36 | 3 | Simone Piccardi | 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@: |
| 37 | |||
| 38 | <pre> |
||
| 39 | 1 | Simone Piccardi | # start ido2db daemon (no/yes) |
| 40 | 3 | Simone Piccardi | IDO2DB=yes |
| 41 | </pre> |
||
| 42 | |||
| 43 | 5 | Simone Piccardi | 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: |
| 44 | 1 | Simone Piccardi | |
| 45 | <pre> |
||
| 46 | 4 | Simone Piccardi | cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg |
| 47 | </pre> |
||
| 48 | |||
| 49 | una volta fatto questo si riavviino i relativi servizi con: |
||
| 50 | |||
| 51 | 1 | Simone Piccardi | <pre> |
| 52 | service ido2db restart |
||
| 53 | service icinga restart |
||
| 54 | </pre> |
||
| 55 | 5 | Simone Piccardi | |
| 56 | 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/@. |
||
| 57 | |||
| 58 | 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. |
||
| 59 | |||
| 60 | |||
| 61 | h2. Grafici delle risorse con _PNP4Nagios_ |
||
| 62 | |||
| 63 | 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: |
||
| 64 | |||
| 65 | <pre> |
||
| 66 | apt-get install -t squeeze-backports icinga-web-pnp |
||
| 67 | </pre> |
||
| 68 | |||
| 69 | 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: |
||
| 70 | |||
| 71 | <pre> |
||
| 72 | AuthName "Iconga Access" |
||
| 73 | AuthUserFile /etc/icinga/htpasswd.users |
||
| 74 | </pre> |
||
| 75 | |||
| 76 | 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. |
||
| 77 | |||
| 78 | 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: |
||
| 79 | |||
| 80 | <pre> |
||
| 81 | ... |
||
| 82 | $conf['nagios_base'] = "/icinga/cgi-bin"; |
||
| 83 | ... |
||
| 84 | $conf['livestatus_socket'] = "unix:/var/lib/icinga/rw/live"; |
||
| 85 | ... |
||
| 86 | </pre> |
||
| 87 | |||
| 88 | La seconda riga attiene all'uso di ''livestatus'' per una lettura efficiente dei dati di _Icinga_, che comporta l'installazione del pacchetto relativo con: |
||
| 89 | |||
| 90 | <pre> |
||
| 91 | apt-get install -t squeeze-backports check-mk-livestatus |
||
| 92 | </pre> |
||
| 93 | |||
| 94 | 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: |
||
| 95 | |||
| 96 | <pre> |
||
| 97 | define module{ |
||
| 98 | module_name mklivestatus |
||
| 99 | path /usr/lib/check_mk/livestatus.o |
||
| 100 | module_type neb |
||
| 101 | args /var/lib/icinga/rw/live |
||
| 102 | } |
||
| 103 | </pre> |
||
| 104 | (si usi @/var/lib/icinga/rw/live@ che è il default anche per @check_mk@ che vedremo in seguito). |
||
| 105 | |||
| 106 | |||
| 107 | Inoltre occorre attivare il demone @npcd@ in @/etc/default/npcd@ inserendo la riga: |
||
| 108 | |||
| 109 | |||
| 110 | h2. Controllo con @check_mk@ |