給阿骁兄的賀禮二: DNS 流量統計~超強版
谢谢abel的提议,事实上或许那事件很有趣的事。可惜的是我所在的高校地处西南,西南教育网网络中心的管理实在不太敢恭维——因此我们把大部分的服务都转到公网上去走中国电信的出口。惟独dns由于edu.cn类域名属于教育网专用,上级部门给予的授权ip地址是教育网段的。。。。若平时外面公网dns cache server能访问到我们的dns server则已是万幸了。。。断然不敢把ttl改得如此之小。。。
dns的query我是没机会做了,不过偶的web是用了cache的,正好用您指点的思路来证明一下cache的工作效率及使用cache的利/弊。文不如表,表不如图——得abel的指点,看来以后跟外行领导解释起来又方便了一些 :)
給阿骁兄的賀禮二: DNS 流量統計~超強版
楼主,可以谈谈MRTG如何CONFIG吗??給阿骁兄的賀禮二: DNS 流量統計~超強版
幫一下,不都寫在上面,知道 mrtg 怎接一個外部程式吧 !?
給阿骁兄的賀禮二: DNS 流量統計~超強版
顶給阿骁兄的賀禮二: DNS 流量統計~超強版
请教,rndc -s Server_IP stats 查询到的是dns收到的瞬间请求吗?但我尝试看过在四层交换机上面看连接数,但两种并不一致?而且比在四层上面看到的多很多,这是什么原因呢?thanks給阿骁兄的賀禮二: DNS 流量統計~超強版
rndc stats看到是的運行以來的累計值
所以要再看 timestamp, 計算時間差
給阿骁兄的賀禮二: DNS 流量統計~超強版
原帖由 "abel" 发表:rndc stats
看到是的運行以來的累計值
所以要再看 timestamp, 計算時間差
请问,怎么看timestamp, 計算時間差?thanks
給阿骁兄的賀禮二: DNS 流量統計~超強版
+++ Statistics Dump +++ (1099041217)success 252120
referral 0
nxrrset 6
nxdomain 4264
recursion 817
failure 34
--- Statistics Dump --- (1099041217)
+++ Statistics Dump +++ (1099041277)
success 252134
referral 0
nxrrset 6
nxdomain 4266
recursion 819
failure 34
--- Statistics Dump --- (1099041277)
1099041217 就是時間(ts1)
1099041277 就是時間(ts2)
ts2-ts1=60(ts_range)
再將 兩個 success/referral....加起來,但不計算 recursion,除以 ts_range , 就是你的 DNS 收到 Client 的每秒查詢量
給阿骁兄的賀禮二: DNS 流量統計~超強版
原帖由 "abel" 发表:1099041217 就是時間(ts1)
1099041277 就是時間(ts2)
ts2-ts1=60(ts_range)
再將 兩個 success/referral....加起來,但不計算 recursion,除以 ts_range , 就是你的 DNS 收到 Client 的每秒查詢量
:D明白,thank you very much!
給阿骁兄的賀禮二: DNS 流量統計~超強版
首先感谢abel 带来了这么好的一个主意。在看了这篇帖子后,我马上就将我手上的dns全部变成了abel的修改版本,并通过rndc -s server status进行监控。但我发现有个问题,abel 兄可能忽略了,那就是dns进程可能会重启,重启后通过rndc -s server status来看到的query和reply的数都被归0了,mrtg就不知道怎么运算了。从监控图上看,还以为是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的配置文件也要修改一下,表明采到的数据是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查询(次数/秒)
Legend2: DNS回应(次数/秒)
LegendI: DNS查询
LegendO: DNS回应
ShortLegend:次/秒
YLegend: Q. per second
PageTop: <h1>;DNS_Server Query/Response</h1>;
#---------------------------------------------------------------
Target: `/var/named/dns_flow.pl 192.168.1.2`
Title: mydns1
Target: `/var/named/dns_flow.pl 192.168.1.3`
Title: mydns2
.
.
.