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)
Costo complessivo 101,31€ così distribuiti:
- Scheda: 72,23 €
- Case: 6,63 €
- Alimentatore: 4,05 €
- Spedizione: 18,40 €
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 38400Si 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-dataConfiguriamo 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.come aggiorniamo:
newaliasesAnzichè 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-devScarichiamo 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-webconfPer 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 installCreiamo adesso la password per l’accesso a Nagios:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadminSe 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 defaultse 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.cfgLa prima parte della guida termina qui, nella prossima vedremo come configurare i check di base e i controlli remoti con Nagios NRPE.