Monitoraggio di BIND con MRTG
Introduzione
Dopo aver realizzato il nostro DNS, è consigliabile monitorarne il funzionamento per avere informazioni sul suo stato e carico.
Per farlo si utilizzarà il noto MRTG ed uno script in perl che andrà a leggere un file contenente le informazioni.
Installazione del software
Usiamo APT per installare i seguenti pacchetti e scarichiamo lo script in perl.
apt-get install snmpd gawk mrtg apache2
wget http://garr.dl.sourceforge.net/sourceforge/statusreport/dnsstats-1.4.pl
Configurazione di dnsstats.pl
Dato che lo script è generico per tutti i sistemi, occorre modificare i vari percorsi relativi agli eseguibili, quindi:
nano dnsstats-1.4.pl
my $rndc = “/usr/sbin/rndc”;
my $newstatfile = “/var/cache/bind/named.stats”;
Ora dobbiamo rendere eseguibile lo script e lo spostiamo per comodità in una directory di sistema.
mv dnsstats-1.4.pl /usr/bin/dnsstats.pl
chmod +x /usr/bin/dnsstats.pl
Configurazione di BIND
Occorre apportare delle modifiche al nostro dns, in modo tale da creare un file contenente i dati che poi saranno elaborati dallo script e da MRTG.
nano /etc/bind/named.conf.options
directory “/var/cache/bind”;
zone-statistics yes;
statistics-file “named.stats”;
Una volta che abbiamo terminato occorre riavviare il servizio per rendere effettive le modifiche appena apportate.
chmod -R 777 /var/cache/bind/
/etc/init.d/bind9 restart
Configurazione di MRTG
Ora possiamo configurare MRTG per elaborare i dati contenuti nel file generato da BIND ed interpretato dallo script perl.
nano /etc/mrtg.cfg
WorkDir: /var/www
WriteExpires: Yes
Title[^]: Traffic Analysis for
Target[mydomain_DNS]: `/usr/bin/dnsstats.pl`
Options[mydomain_DNS]: gauge,growright,nopercent,integer,unknaszero
Title[mydomain_DNS]: DNS Server
RouterUptime[mydomain_DNS]: public@localhost
MaxBytes[mydomain_DNS]: 32000
AbsMax[mydomain_DNS]: 64000
WithPeak[mydomain_DNS]: wmy
Colours[mydomain_DNS]: YELLOW #F9C000,RED #F90000,LIGHT YELLOW #FFFFBB,LIGTH RED #FF8080
ShortLegend[mydomain_DNS]:queries/m
YLegend[mydomain_DNS]: Qs per Minute
Legend1[mydomain_DNS]: Queries received over 1 minute
Legend2[mydomain_DNS]: Failed Queries received over 1 minute
Legend3[mydomain_DNS]: Maximal Queries over 5 minutes
Legend4[mydomain_DNS]: Maximal Failed Queries over 5 minutes
LegendI[mydomain_DNS]: Queries:
LegendO[mydomain_DNS]: Failures:
PageTop[mydomain_DNS]: <H1>DNS Info</H1><TABLE><TR><TD>System:</TD><TD>dns.ced.local</TD></TR><TR><TD>Maintainer:</TD> <TD>porkyHTTP (porkyhttp@ced.local)</TD></TR><TR><TD>Description:</TD><TD>DNS Monitor</TD></TR><TR><TD>Details:</TD><TD>Query Monitor</TD></TABLE>
Lanciamo questi comandi per cominciare a generare i file di partenza dei grafici.
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
Inseriamo in crontab questa riga i modo tale da avere delle statistiche costantemente aggiornate ogni 5 minuti.
crontab -e
5/* * * * * env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
Creiamo un file indice che ci porterà hai vari grafici suddivisi per ora, giorno, settimana, mese e anno.
indexmaker /etc/mrtg.cfg > /var/www/index.html
Ora tramite il nostro browser puntiamo a http://localhost per visualizzare i grafici ottenuti.



