- 論壇徽章:
- 0
|
給阿驍兄的賀禮二: DNS 流量統(tǒng)計~超強版
首先感謝abel 帶來了這么好的一個主意。在看了這篇帖子后,我馬上就將我手上的dns全部變成了abel的修改版本,并通過rndc -s server status進行監(jiān)控。
但我發(fā)現(xiàn)有個問題,abel 兄可能忽略了,那就是dns進程可能會重啟,重啟后通過rndc -s server status來看到的query和reply的數(shù)都被歸0了,mrtg就不知道怎么運算了。從監(jiān)控圖上看,還以為是dns死了呢。說實話,當時確實嚇我一跳。
于是我就自做主張重新寫了個腳本,由于我對perl不熟,就用sh來寫了。在這里貼出來,希望對大家有所幫助。
#cat dns_flow.sh
#!/usr/bin/sh
TMPDATAFILE="/var/named/.${1}.tmp"
RUN_1=0
query_old=0
reply_old=0
if [ -f $TMPDATAFILE ]
then
RUN_1=1
query_old=`head -2 $TMPDATAFILE|tail -1 |awk '{print $4}'`
reply_old=`head -3 $TMPDATAFILE|tail -1 |awk '{print $4}'`
fi
/usr/local/sbin/rndc -s $1 status >;$TMPDATAFILE
query=`head -2 $TMPDATAFILE|tail -1 |awk '{print $4}'`
reply=`head -3 $TMPDATAFILE|tail -1 |awk '{print $4}'`
if [ $query -gt $query_old ] !! [ $reply -gt $reply_old ]
then
query=`expr $query - $query_old`
reply=`expr $reply - $reply_old`
fi
if [ $RUN_1 -eq 0 ]
then
#first time to run
printf "0\n0\n"
else
printf "$query\n$reply\n"
fi
這時候mrtg的配置文件也要修改一下,表明采到的數(shù)據(jù)是absolute類型的。
cat dns.cfg
# for UNIX
WorkDir: /usr/local/apache/htdocs/mrtg/html/dns
# or for NT
# WorkDir: c:\mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
Options[_]: growright, noinfo,nopercent,integer,absolute
MaxBytes[_]: 10000
Legend1[_]: DNS查詢(次數(shù)/秒)
Legend2[_]: DNS回應(yīng)(次數(shù)/秒)
LegendI[_]: DNS查詢
LegendO[_]: DNS回應(yīng)
ShortLegend[_]:次/秒
YLegend[_]: Q. per second
PageTop[_]: <h1>;DNS_Server Query/Response</h1>;
#---------------------------------------------------------------
Target[DNS_Server1]: `/var/named/dns_flow.pl 192.168.1.2`
Title[DNS_Server1]: mydns1
Target[DNS_Server2]: `/var/named/dns_flow.pl 192.168.1.3`
Title[DNS_Server2]: mydns2
.
.
. |
|