Premessa
In questo documento spiegherà come sfruttare il noto MRTG per monitorare l’attività di Apache. Se bene, MRTG sia stato realizzato per ottenere delle statistiche sulle condizioni di una rete, e anche possibile sfruttarlo, grazie ad un modulo, per monitorare le funzioni vitali di un webserver che usa Apache. Un esempio di configurazione reale in cui viene utilizzato MRTG come strumento per il monitoraggio dello stato di una rete, è quello del GARR. Infatti dal suo sito (http://www.garr.it) si puà accedere a queste informazioni relative a tutti gli enti a cui fornisce connettività (CNR, Università , ENEA; INFN, ecc).
Risorse Hardware e Software
Per il mio scopo ho utilizzato un vecchio pc, composto da un processore Pentium 166MMX, 32MB di RAM, Hard Disk da 2GB ide, scheda di rete pci 3Com 905-b 10/100Mbit., dal lato software ho utilizzato Slackware 10, Apache e MRTG.
Procuriamoci i pacchetti necessari
Per facilitarvi nell’impresa vi ho messo a disposizione il mio spazio web, da dove potere prelevare i pacchetti necessari senza andare in giro per la rete magari non trovando le versioni utilizzate in questo documento. Di seguito trovate i link per scaricare i pacchetti:
http://www.webalice.it/alepensato/apache-mrtg/apache_1.3.27.tar.gz
http://www.webalice.it/alepensato/apache-mrtg/apache.mrtg.tgz
http://www.webalice.it/alepensato/apache-mrtg/mrtg-2.10.13.tar.gz
http://www.webalice.it/alepensato/apache-mrtg/gd-2.0.26.tar.gz
http://www.webalice.it/alepensato/apache-mrtg/perl-addons.zip
Compilazione e installazione dei software sorgenti (come root)
Installazione delle librerie GD
Il primo software che installeremo sono le librerie GD, che insieme alle librerie per JPEG, PNG, GIF, permetteranno al software MRTG di creare i grafici relative allo stato del nostro webserver. Eseguite questi comandi passo passo:
cd /tar tar zxvf gd* cd gd* ./configure make && make install ldconfig
Installazione di MRTG
Questo pacchetto, una volta installato, si occuperà di creare i grafici andando a sfruttare in modulo Apache-MRTG che a sua volta consulta il modulo server-status di Apache, per ottenere le informazioni relative al webserver. Eseguite questi comandi passo passo:
cd /tar tar zxvf mrtg* cd mrtg* ./configure –prefix=/usr/local/mrtg make && make install
Installazione del pacchetto Perl-Addons
All’interno del file zip troverete altri pacchetti in formato tar.gz prelevati da CPAN e necessari a far funzionare MRTG, in realtà è solo libwww-perl che si lega a MRTG, ma a sua volta necessita di altri pacchetti per poter funzionare quindi dobbiamo installarli. Seguite l’ordine di installazione dei pacchetti per evitare malfunzionamenti dovuti alle dipendenze tra essi:
cd /tar unzip perl-addons.zip cd perl-addons tar zxvf Convert* cd Convert* perl Makefile.PL && make && make install tar zxvf Period* cd Period* perl Makefile.PL && make && make install tar zxvf DB* cd DB* perl Makefile.PL && make && make install tar zxvf Digest-1* cd Digest-1* perl Makefile.PL && make && make install tar zxvf HTML-Tagset* cd HTML-Tagset* perl Makefile.PL && make && make install tar zxvf HTML-Template* cd HTML-Template* perl Makefile.PL && make && make install tar zxvf HTML-Parser* cd HTML-Parser* perl Makefile.PL && make && make install tar zxvf MIME*3* cd MIME*3* perl Makefile.PL && make && make install tar zxvf MIME*P* cd MIME*P* perl Makefile.PL && make && make install tar zxvf Time* cd Time* perl Makefile.PL && make && make install tar zxvf URI* cd URI* perl Makefile.PL && make && make install tar zxvf libwww* cd libwww* perl Makefile.PL && make && make install
Installazione di Apache
A questo punto dobbiamo installare Apache, il webserver,. La procedura di seguito è valida per una installazione minima necessaria per realizzare il nostro scopo, ma se si vuole si possono abilitare altri moduli in base alle proprie necessità . Seguite i seguenti comandi:
cd /tar tar zxvf apache_* cd apache_* ./configure --prefix=/usr/local/apache --enable-module=rewrite --enable-module=status \ --enable-shared=max make && make install mkdir /usr/local/apache/etc
Configurazione del file httpd.conf di Apache
A questo punto siamo pronti per modificare il file di configurazione httpd.conf di Apache. Per ottenere i grafici dobbiano aggiungere alcune righe nel file in modo che il modulo Apache-MRTG possa leggere le informazioni necessarie. Aprite con un qualsiasi editor di testi il file che potete trovare in /usr/local/apache/conf/httpd.conf:
vi /usr/local/apache/conf/httpd.conf
aggiungete queste brevi righe di comando, salvate il file e avviate Apache:
ExtendedStatus On <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from your-domain.com </Location>
/usr/local/apache/bin/apachectl start
Configurazione del modulo Apache-MRTG
A questo punto siamo pronti per modificare i file di configurazione in modo da poter ottenere i grafici relativi allo stato del webserver. Seguite i seguenti comandi:
cd /tar tar zxvf apache.mrtg.tgz cd apache.mrtg* cp apache.mrtg.pl /usr/local/apache/etc
Cominciamo a modificare il primo dei due file di configurazione del modulo.
vi batch
Correggere il nome del server e con il suo URL.
$BATCHBIN server1 "-url http://server1/server-status?auto"
Modifica del secondo file di configurazione.
vi mkapachemrtg.sh HTMLHOME="/usr/local/apache/htdocs" SCRIPTHOME="/usr/local/apache/etc" URLHOME="http://server.home.local" CONFHOME="/usr/local/apache/etc" MRTGBIN="/usr/localmrtg/bin/mrtg"
Ora che abbiamo terminato la configurazione possiamo lanciare in esecuzione il programma che collocherà i file necessari ad ottenere i grafici, nelle directory di lavoro:
./batch
Adesso lanciamo MRTG in modo che crei i grafici per la prima volta:
/usr/local/mrtg/bin/mrtg /usr/local/apche/etc/server1.apache.mrtg.cfg
Puntando con un qualsiasi browser grafico all’URL del nostro webserver http://localhost/server1/apache.html ci troveremo davanti ad una pagina riepilogativa comprendente dei grafici relativi al websserver come: Uptime, CPULoad, Total Access, Child Status, Idle Server, ecc.