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.

dns_mrtg

  • Facebook
  • Google Bookmarks
  • Windows Live Favorites
  • LinkedIn
  • Delicious
  • Hotmail
  • Twitter
  • Windows Live Spaces
  • Yahoo Bookmarks
  • Yahoo Messenger
  • Share/Bookmark

Spam Protection by WP-SpamFree