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

  • Freesoftwarereg

    Ciao , ho acquistato tutto il materiale per poter mettere in pratica questa guida , con la differenza dell'adattatore seriale , non uso un adattatore usb/seriale ma PCI/seriale , il problema e che sia con linux e sia con windows utilizzando putty non risco a visualizzare il boot della mia Alix , i led continuano a lampeggiare ma sul terminale del pc non vedo nulla .Ho collegato i i2 dispositivi tramite una cavo seriale ma non sono sicuro che sia Rs232 , il cavo è stato acquistato da eba* ma per una mia distrazzione non avevo controllato la descrizione se riportava la sigla RS232.Mi sapresti consigliare uno shop dove acquistare il suddetto cavo visto che su eba* se scrivo RS232 mi appaiono come risultati solo gli adattatori USB

  • http://www.tommyblue.it TommyBlue

    Uno shop in particolare non so consigliartelo.
    Il tuo adattatore viene visto tra le periferiche (con lspci)?
    In /dev c'è il device? Prova a passare a screen varie velocità di aggiornamento (multipli di 19200)

  • AlienGray

    si si linux rivela perfettamente le porte , per togliermi il dubbio ho utilizzato Windows , nada de nada .Volevo chiederti se anche la tua Alix all'accensione lampeggiano i 3 led frontali.Ultima cosa ma che cambia da cavo seriale a RS232 ?

  • http://www.tommyblue.it TommyBlue

    RS232 è un cavo seriale, ma ne esiste anche (almeno) un altro tipo con i cavetti crimpati diversamente (http://en.wikipedia.org/wiki/RS-232). Per fare un'analogia dovrebbe essere come la differenza tra cavo ethernet patch e cross.
    Riguardo ai led, lampeggiare lampeggiano, ma ognuno ha un suo significato. A meno che i tuoi lampeggino in maniera “strana” non credo ci sia un significato particolare.

  • AlienGray

    lampeggiano tutti e 3 insieme sempre in un lasso di tempo specifico ,adesso do un occhio al manuale e vediamo che dice , porca paletta sono rimasto fregato da un cavetto …..Comunque bellissima guida

  • AlienGray

    Per quanto riguarda i Led il manuale parla di Led spenti dopo l'avvio del sistema operativo , il sistema sulla mia CF non è presente quindi nulla di grave direi ^_^.Ho googlato un pò ed ho scoperto che il cavo RS232 è chiamato anche modemnull, trovato con questa sigla.Ordinato … non vedo l'ora che arrivi , complimenti per il blog è bellissimo

  • http://www.tommyblue.it TommyBlue

    Nell'attesa puoi provare una distribuzione che si installa direttamente sulla scheda e prende l'ip da dhcp, ad esempio Endian Firewall e, forse, la stessa Debian Voyage

  • AlienGray

    si si anche se me venuta la fissa di utilizzare una distro senza nessun ausilio e aiuto di interfaccia grafica , infatti volevo smanettare un pò con devil linux , ma senza seriale non posso farci nulla.Endian domani sarà installata anche per vedere se il pc funziona e come se la cava

  • AlienGray

    Endian installato , hum non so se sia normale ma se mi collego da remoto tramite interfaccia web ci mette un pochetto ad aggiornare le pagine , so benissimo che è un hardware molto limitato però mi aspettavo qualcosa di più.

  • http://www.tommyblue.it TommyBlue

    no, con Endian è veramente piantato! :-)
    Se guardi l'hardware che usano nei loro firewall è molto più potente. Ho provato anche su un Atom e va lento anche lì…

  • Pingback: Realizzare un sistema di monitoraggio con Icinga | TommyBlue.it

  • Michele

    Io ho una macchina della linitx rack con 2 mainboard, sulle quali ho 2 endian 2.4 (quindi con Dashboard che prende un po’ di risorse) ma vanno benissimo. Non costa 80 euro…..qualcosina in +. Ho avuto 2 endian mini che usano le stesse main board. Ovviamente non ho messo ram da 250 mb ma da 1 gb. Ma la CPU a pieno carico di stress è intorno all’80% con firewall, von, ids, dhcp, tps server etc….

  • Pingback: IPv6 in pochi passi con ALIX e SixXS | TommyBlue.it