TommyBlue.it

Costruirsi un sistema di monitoraggio "casalingo" con Nagios - parte 1

Se, come me, avete vari server a giro per il mondo a cui fare da baby-sitter, probabilmente avrete sentito la necessità  di avere tutto sotto controllo e di scoprire (e magari risolvere) i problemi non appena si presentano.

Dopo aver configurato sistemi di monitoraggio per alcune P.A. e aziende, mi sono deciso a farlo anche per i miei server e descriverò in queste pagine ciò che ho fatto o sto ancora facendo.

Dividerò questa guida in più parti, per renderla più leggibile e per poter facilmente aggiungere nuove parti via via che incremento le funzionalità  del sistema.

Questa prima parte descrive l’hardware scelto, l’installazione del sistema operativo e l’installazione base di Nagios.

Hardware

La scelta dell’hardware è caduta su un embedded acquistato (per circa 80€) su pcengines.ch ampiamente in grado di fornire la potenza necessaria allo scopo e con consumi estremamente limitati.

Nello specifico ecco le caratteristiche principali:

  • CPU: 500 MHz AMD Geode LX800
  • DRAM: 256 MB DDR DRAM
  • Storage: CompactFlash socket
  • Power: DC jack or passive POE, min. 7V to max. 20V
  • Expansion: 2 miniPCI slots, dual USB port
  • Connectivity: 2 Ethernet channels (Via VT6105M 10100)
Oltre alla scheda ho acquistato anche il case (damn! non avevano quello rosa shocking!) e l’alimentatore.

Costo complessivo 101,31€ così distribuiti:

  • Scheda: 72,23 €
  • Case: 6,63 €
  • Alimentatore: 4,05 €
  • Spedizione: 18,40 €
A questo è necessario aggiungere una memoria CompactFlash (io ne ho usata una da 2GB), un lettore/scrittore di tali memorie e un adattatore seriale<=>USB (o soltanto un cavo seriale se avete una porta adatta). Attenzione al cavo seriale che deve essere RS-232 altrimenti la connessione non funziona.

Sistema operativo

Il sistema operativo scelto è Debian Voyage, una versione di Debian ottimizzata per le piattaforme embedded x86. La sua installazione sulla CompactFlash è estremamente semplice e veloce (per i dettagli vi rimando alla pagina wiki dedicata). Una volta installato si può montare la memoria nella mainboard e agganciare il pc via seriale. Per visualizzare la console remota si può usare il software screen:
screen /dev/ttyUSB0 38400
Si può quindi alimentare la scheda e osservare il boot. Per accedere la prima volta a voyager usare l’utente root con password voyage. Consiglio di configurare subito la rete con un ip statico (usate /etc/network/interfaces) e installare openssh-server che permetterà  di lavorare in remoto con la console preferita.

Per prepararsi all’installazione di Nagios dobbiamo fare un po’ di cose:

apt-get install locales dialog build-essential apache2 libapache2-mod-php5 mailx postfix
addgroup –system nagios
adduser –system –no-create-home –home /usr/local/nagios –ingroup nagios –disabled-password nagios
addgroup –system nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data
Configuriamo Postfix con i parametri corretti per la nostra connessione e inseriamo in /etc/aliases l’alias per l’utente root:
postmaster: root
nagios: root
root: io@mio-dominio.com
e aggiorniamo:
newaliases
Anzichè Apache (un po’ oneroso in termini di memoria consumata) volevo usare Nginx ma per configurarlo per fornire pagine PHP è necessario lavorarci un po’, quindi lascio questa configurazione per il futuro (considererò anche l’eventuale uso di Lighttpd).

Nagios

Si può quindi iniziare a installare il software di monitoraggio, ovviamente Nagios. Per alcuni check potrebbero essere necessari alcuni pacchetti, eccone alcuni tra i più comuni:
apt-get install libgd2-xpm libgd2-xpm-dev libpng3 libpng3-dev libjpeg62 libjpeg-dev zlib1g zlib1g-dev libnet-snmp-perl snmp libssl-dev libpq-dev libmysqlclient15-dev smbclient qstat fping libradiusclient-ng-dev libldap2-dev
Scarichiamo Nagios Core in /usr/src e compiliamolo:
tar xzf nagios-3.2.0.tar.gz
cd nagios-3.2.0/
./configure –prefix=/usr/local/nagios –with-command-group=nagcmd –with-httpd-conf=/etc/apache2/conf.d/
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
Per ulteriori informazioni seguite la guida ufficiale. Compiliamo e installiamo anche i plugin, scaricati da qui:
tar xzf nagios-plugin-1.4.14.tar.gz
cd nagios-plugin-1.4.14
./configure  –prefix=/usr/local/nagios –with-nagios-user=nagios –with-nagios-group=nagios
make
make install
Creiamo adesso la password per l’accesso a Nagios:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Se cambiate il nome utente sostituite tutte le occorrenze di nagiosadmin col nuovo utente nel file /usr/local/nagios/etc/cgi.cfg. Aggiungiamo Nagios all’avvio del sistema:
update-rc.d nagios defaults
e iniziamo la configurazione. Una volta terminato, prima di lanciare o riavviare Nagios, possiamo verificare la correttezza della configurazione con:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
La prima parte della guida termina qui, nella prossima vedremo come configurare i check di base e i controlli remoti con Nagios NRPE.

Leggi la seconda parte della guida