#!/bin/bash # Bind MRTG stats # by Yeri Tiete (Tuinslak) - 10/02/2011 # http://yeri.be # # mrtg.cfg sample: ################################################################################ # # # # Bind # # # Title[bind]: Bind Queries # Target[bind]: `/etc/mrtg/bind-stats.sh` # PageTop[bind]:

Bind queries per minute on vm1

# 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