当前位置: 主页 > 服务器技术 > DNS服务器 > DNS统计查询的工具-DNSTOP

DNS统计查询的工具-DNSTOP

时间:2009-11-4来源:互联网 点击:
在维护DNS服务器时,偶们希望知道到底是哪些用户在使用偶们的DNS服务器,同时也希望能对DNS查询做一个统计。一般情况下,偶们可以使用tcpdump –i eth0 port 53来查看DNS查询包,不过tcpdump的输出可不是那么友好,尤其是当访问量大的时候,偶就头晕了 ~~当然了可以把输出重定向到文件,如果熟悉shell编程的话还可以做个脚本来分析;至于查询统计嘛,可以使用rndc stats(bind9)来获取,但是这可不是实时的,当然了你也可以使用at,cron来自动运行,不幸的事,这些偶都不太会 ,because 偶是菜鸟 of linux/unix。没关系,今天偶来介绍一款超强统计DNS查询的工具。(不好意思废话有点多,就当热身嘛,呵呵  )BTW:多谢bbgun网友提供信息  。

刚才装了一下DNSTOP,还是有一点麻烦,好了,要上洗手间赶快去;冲咖啡的搞快点了啰。各就各位,Let’s go! 

首先申明一下,偶是在redhat8+bind9下实现的,如果你的系统不是linux的话,请参考源代码包里的相关说明。

1、下载源代码
打开浏览器,进入http://dnstop.measurement-factory.com/,可以看到DNSTOP的相关介绍。如果你的系统没有libpcap库的话(用find / -name “libpcap*”搜一下就知道有没有了),在安装DNSTOP前还需要安装libpcap库。不管三七二十一,先把这两个源码包下载下来再说:
libpcap-0.7.2.tar.gz
http://www.tcpdump.org/release/libpcap-0.7.2.tar.gz
dnstop-20030929.tar.gz
http://dnstop.measurement-factory.com/src/dnstop-20030929.tar.gz

2、编译安装libpcap库
假设libpcap-0.7.2.tar.gz是放置在/home/andy目录下的。步骤如下:
[root@t113 /]# cd /home/andy
[root@t113 andy]#gunzip libpcap-0.7.2.tar.gz
[root@t113 andy]# tar -xvf libpcap-0.7.2.tar
[root@t113 andy]# cd libpcap-0.7.2
[root@t113 libpcap-0.7.2]#
注意了(大声的说~~),在这儿编译时是编译成静态函数库,但是等会儿你编译DNSTOP时却是需要共享函数库(动态函数库)。所以偶们要修改一下libpcap-0.7.2目录下的Makefile.in文件,打开文件找到如下语句:

CODE:
all: libpcap.a(第96行)

libpcap.a: $(OBJ)
        @rm -f $@
        ar rc $@ $(OBJ)
        $(RANLIB) $@

修改为:

CODE:
all: libpcap.so

libpcap.so: $(OBJ)
        @rm -f $@
#       ar rc $@ $(OBJ)
        gcc $(OBJ) -shared -o libpcap.so
#       $(RANLIB) $@

再找到如下语句:

CODE:
install:(第139行)
        [ -d $(DESTDIR)$(libdir) ] || \
            (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
        $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
        $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a

修改为:

CODE:
install:
#       [ -d $(DESTDIR)$(libdir) ] || \
#           (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
#       $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
#       $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a
        cp libpcap.so /usr/lib/

搞定!开始编译:
[root@t113 libpcap-0.7.2]# ./configure --prefix=/usr
[root@t113 libpcap-0.7.2]# make
[root@t113 libpcap-0.7.2]# make install
到这儿,偶们可以松口气了。下面安装DNSTOP就很easy了。

3、编译DNSTOP
步骤如下:
        [root@t113 libpcap-0.7.2]# cd ..
        [root@t113 andy]# gunzip dnstop-20030929.tar.gz
        [root@t113 andy]# tar -xvf dnstop-20030929.tar
        [root@t113 andy]# make
到这一步,偶就要恭喜各位:DNSTOP已经编译完成了。

接下来look一下DNSTOP到底是什么东东(s后面的参数是需要监听的网卡接口):
        [root@t113 andy]# ./dnstop -s eth0
效果如下:
0 new queries, 6 total queries                    Mon Nov  5 07:54:35 2007

Sources              count      %
---------------- --------- ------
192.168.0.113            4   66.7
192.168.0.144            1   16.7
192.168.0.40             1   16.7

不错吧^_^,在运行DNSTOP的过程中,可以敲入如下命令:
S,D,T,1,2,^R(ctrl+R),^X(ctrl+X),?
来显示不同的统计信息。比如敲入1,显示结果如下:
0 new queries, 7 total queries                    Mon Nov  5 07:57:17 2007

TLD                      count      %
-------------------- --------- ------
com                          4   57.1
cn                           2   28.6
arpa                         1   14.3
站长资讯网
. TAG: DNS 工具 统计 查询

查看[DNS统计查询的工具-DNSTOP]所有评论
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 网站留言