Bombardare per la pace è un po’ come trombare per la verginità…

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 10/100)

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

Condividi questo post:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Identi.ca
  • LinkedIn
  • Reddit
  • Twitter
  • Ping.fm
blog comments powered by Disqus