Because I couldn’t find any that worked.
(Dark blue: incoming queries, light blue: outgoing/recursive lookups)
mrtg.cfg sample:
# Bind Title[bind]: Bind Queries Target[bind]: `/etc/mrtg/bind-stats.sh` PageTop[bind]: <H1> Bind queries per minute on vm1 </H1> Options[bind]: growright,pngdate,nobanner,gauge,nopercent,noinfo MaxBytes[bind]: 50000 Ylegend[bind]: Queries/min ShortLegend[bind]: queries/min LegendO[bind]: Incoming Bind queries per minute LegendI[bind]: Outcoing Bind queries per minute Legend2[bind]: Incoming Bind queries per minute Legend1[bind]: Outcoing Bind queries per minute
bind-stats.sh:
#!/bin/bash # Bind MRTG stats # by Yeri Tiete (Tuinslak) - 10/02/2011 # https://yeri.be # # mrtg.cfg sample: ################################################################################ # # # # Bind # # # Title[bind]: Bind Queries # Target[bind]: `/etc/mrtg/bind-stats.sh` # PageTop[bind]: <H1> Bind queries per minute on vm1 </H1> # Options[bind]: growright,pngdate,nobanner,gauge,nopercent,noinfo # MaxBytes[bind]: 50000 # Ylegend[bind]: Queries/min # ShortLegend[bind]: queries/min # LegendO[bind]: Incoming Bind queries per minute # LegendI[bind]: Outcoing Bind queries per minute # Legend2[bind]: Incoming Bind queries per minute # Legend1[bind]: Outcoing Bind queries per minute ################################################################################ # file path of named.stats FILE=/var/log/named.stats TMPFILE=/tmp/__dnsstats.txt # how often does mrtg run? for me it's every 10 mins TIME=10 # make file empty echo /dev/null > /var/log/named.stats # generate file /usr/sbin/rndc stats # save number of queries INNOW=`egrep "[^I]QUERY" $FILE | awk '{print $1 }'` OUTNOW=`grep Outgoing $FILE -A 9 | sed '1,2d' | awk '{ SUM += $1} END { print SUM }'` # check if tmp file exists and insert data in it if it doesnt # this prevents a peak [ ! -e $TMPFILE ] && echo $INNOW > $TMPFILE && echo $OUTNOW >> $TMPFILE # get old data INOLD=`cat $TMPFILE | sed -n 1p` OUTOLD=`cat $TMPFILE | sed -n 2p` # overwrite old echo $INNOW > $TMPFILE echo $OUTNOW >> $TMPFILE # calculate (to get difference) INDIFF=$[ $INNOW-$INOLD ] OUTDIFF=$[ $OUTNOW-$OUTOLD ] # as mrtg runs */10 > divide by 10 to get per minute INPERMIN=$[ $INDIFF/$TIME ] OUTPERMIN=$[ $OUTDIFF/$TIME ] # print ! echo $OUTPERMIN echo $INPERMIN echo echo
Or download the file riiiiiight here.
Be sure the named.stats file gives this kind of output:
# grep Outgoing /var/log/named.stats -A 9 ++ Outgoing Queries ++ [View: default] 64316 A 2 NS 22 SOA 6945 PTR 892 MX 1104 TXT 3117 AAAA 22 SRV
… for the outgoing queries, and …
# grep QUERY /var/log/named.stats | awk '{print $1 }' 163143
for the incoming queries.
Don’t forget to
chmod +x bind-stats.sh
Live sample: vm1.rootspirit.com/mrtg/bind.html
Leave a Reply…