TommyBlue.it

Realizzare un sistema di monitoraggio con Icinga

In questa breve guida spiegherò come installare Icinga (un fork di Nagios che ha ormai superato il genitore) e Icinga Web su Ubuntu 10.04 server.

Molti passi sono uguali a quelli che ho già  descritto nelle due guide sull’installazione di Nagios (1 e 2).

Operazioni preliminari

Installare i pacchetti necessari:
apt-get install apache2 bsd-mailx build-essential libgd2-xpm-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-0-dev snmp libsnmp-base git-core mysql-server mysql-client libdbi0 libdbi0-dev libdbd-mysql
Aggiungere utenti e gruppi:
addgroup --system icinga
adduser --system --no-create-home --home /usr/local/icinga --ingroup icinga --disabled-password icinga
addgroup --system icinga-cmd
usermod -a -G icinga-cmd icinga
usermod -a -G icinga-cmd www-data
Creare il database:
 #> mysql -u root -p
 mysql> CREATE DATABASE icinga;
 GRANT USAGE ON *.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
 GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO 'icinga'@'localhost';
 FLUSH PRIVILEGES ;
 quit
Scaricare Icinga:
cd /usr/src
git clone git://git.icinga.org/icinga-core.git
cd icinga-core/
git submodule init
git submodule update
./configure --with-command-group=icinga-cmd --enable-idoutils
make all
make fullinstall
make install-api
cd /usr/local/icinga/etc/
cp idomod.cfg-sample idomod.cfg
cp ido2db.cfg-sample ido2db.cfg
Editare i due ultimi file per adattarli alle configurazioni del database. Nel file /usr/local/icinga/etc/icinga.cfg scommentare la riga:
broker_module=/usr/local/icinga/bin/idomod.o config_file=/usr/local/icinga/etc/idomod.cfg
Creare le tabelle:
 #> cd /path/to/icinga-src/module/idoutils/db/mysql
 #> mysql -u root -p icinga < mysql.sql
Edit 15/03/11: Ho dovuto modificare il file /usr/local/icinga/etc/objects/commands.cfg perchè il path al comando mail era sbagliato, quindi modificate le definizioni di notify-host-by-email e notify-service-by-email per utilizzare /usr/bin/mail e non /bin/mail.

Per terminare aggiungere Icinga ai servizi di avvio e lanciare Ido2db e Icinga:

update-rc.d icinga defaults
/etc/init.d/ido2db start
/etc/init.d/icinga restart

Plugins

Scaricare e installare i plugin di Nagios. Si faccia riferimento alla guida di Nagios per l'installazione, si presti solo attenzione alle differenti opzioni di configurazione:
./configure --prefix=/usr/local/icinga --with-cgiurl=/icinga/cgi-bin --with-htmurl=/icinga --with-nagios-user=icinga --with-nagios-group=icinga

Configurazione dei check

Per la configurazione degli host e dei servizi potete vedere le mie precedenti guide per Nagios: parte 1 e parte 2.

Le interfacce web

Icinga ha a disposizione due interfacce web: la classica interfaccia CGI e la nuova Icinga Web. Le due installazioni possono convivere tranquillamente.

Icinga

Installare i CGI:
make cgis
make install-cgis
make install-html
make install-webconf
Creare l'utente e la password per l'accesso:
htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

Icinga Web

Installare il necessario:
apt-get install php5 php5-cli php-pear php5-xmlrpc php5-xsl php5-gd php5-ldap php5-mysql
a2enmod rewrite
Scaricare e installare Icinga Web:
cd /usr/src
git clone git://git.icinga.org/icinga-web.git
cd icinga-web
./configure
make install
make install-apache-config
Creare il database e lo schema:
# mysql -u root -p

mysql> CREATE DATABASE icinga_web; GRANT USAGE ON . TO ‘icinga_web’@‘localhost’ IDENTIFIED BY ‘icinga_web’ WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO ‘icinga_web’@‘localhost’; quit

make db-initialize

E, per finire:

/etc/init.d/icinga restart
/etc/init.d/apache2 restart

Se avete utilizzato le impostazioni di default non dovete fare altro, altrimenti date una lettura alla guida ufficiale. Riavviate apache e connettetevi al server: http://<hostname>/icinga-web

Webografia