当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 探查Linux系统DNS服务器运行状况

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 探查Linux系统DNS服务器运行状况


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 108 ::
收藏到网摘: n/a

在Linux环境下,也提供了广泛流行的BIND服务器,它是构建DNS服务器最常用的服务器软件。介绍BIND的安装的文章现在很多,现在我们就一起来谈一下维护的话题。我们如何才能够了解DNS服务器的运行情况下呢,它忙不忙、负载大不大?这一切,对于系统管理员而言,是比较重要的。
 
想了解DNS服务器的运行状况,可以通过查看DNS服务器在运行时所产生的日志文件来实现。
 
BIND8提供了一些控制日志系统的手段,不过呢,缺省状态所生成的日志已经够用了,通过这些日志信息,足以了解DNS服务器现在的运行状况了。
 
缺省情况下,BIND是通过syslog来生成日志的,存放在/var/log/message文件中。
 
  注:与之相关的还有以下四个文件:
 
/var/log/message.1
 
/var/log/message.2
 
/var/log/message.3
 
/var/log/message.4
 
其实是将日志分为了5个文件来存储,防止文件过大,当message文件够大后,就变成了message.1,原来的message.1就成了message.2……,message.4的内容就消失了。
 
由于这个文件中的日志信息是syslog生成的,所以不并是全都是关于BIND的日志信息。我们执行以下命令,将所有BIND的日志信息挑选出来:
 
more/var/log/message grepnamed>/tmp/named.log
 
注:BIND服务器的进程名是named.
 
这样,/var/log/message中与BIND相关的日志信息都会写入/tmp/named.log文件中了。最主要的日志有两种:LOG_NOTICE,LOG_INFO级的日志。
 
一、LOG_NOTICE级日志
 
1.每次启动BIND服务器named时,会生成一个如下所示的LOG_NOTICE级日志信息:
 
Nov2810:37:45wwwnamed[10134]:starting.named8.2.2-P3
 
其中:
 
Nov2810:37:45表示服务器启动时间
 
www显示DNS服务器所在机器名
 
named[10134]:显示DNS服务器进程名与进程ID
 
starting.表示正在启动DNS服务器
 
named8.2.2-p3显示BIND软件版本
 
2.当给DNS服务器发送一个HUP信号,使DNS服务器重启时,会生成一个如下所示的LOG_NOTICE级日志信息:
 
Nov2810:37:45wwwnamed[10134]:reloadingnameserver
 
其中:
 
Nov2810:37:45表示服务器重启动时间
 
www显示DNS服务器所在机器名
 
named[10134]:显示DNS服务器进程名与进程ID
 
reloading.表示正在重新启动DNS服务器
 
nameserver显示正在重启的服务器名
 
二、LOG_INFO级日志
 
在DNS服务器运行时,每隔一小时会生成一组如下所示的LOG_INFO级日志信息,反馈DNS服务器的运行状态:
 
Dec2610:23:52wwwnamed[1033]:Cleanedcacheof26RRset
 
Dec2610:23:52wwwnamed[1033]:USAGE977797432976760631CPU=6.55u/6.24sCHILDCPU=0u/0s
 
Dec2610:23:52wwwnamed[1033]:NSTATS9777974329767606310=2A=13192
 
CNAME=321PTR=11204MX=1173TXT=4AAAA=32ANY=4956
 
Dec2610:23:52wwwnamed[1033]:XSTATS977797432976760631RR=7629RNXD=1368
 
RFwdR=4836RDupR=51RFail=159RFErr=0RErr=12RAXFR=0RLame=175ROpts=0
 
SSysQ=2082SAns=26234SFwdQ=4520SDupQ=1263SErr=0RQ=30889RIQ=4RFwdQ=0
 
RDupQ=259RTCP=2SFwdR=4836SFail=6SFErr=0SNaAns=21753SNXD=10276
 
下面我们就逐句解读一下:
 
1.Dec2610:23:52wwwnamed[1033]:Cleanedcacheof26RRset
 
这是每一组日志信息的第一行,表示正在清空Cache.
 
其中:
 
Dec2610:23:52表示日志生成时间
 
www显示DNS服务器所在机器名
 
named[1033]:显示DNS服务器进程名与进程ID
 
Cleanedcacheof26RRset表示正在清除cache
 
2.Dec2610:23:52wwwnamed[1033]:USAGE977797432976760631CPU=6.55u
 
/6.24sCHILDCPU=0u/0s
 
这一行是USAGE行,用于统计DNS服务器占用的CPU时间。
 
其中:
 
Dec2610:23:52表示日志生成时间
 
www显示DNS服务器所在机器名
 
named[1033]:显示DNS服务器进程名与进程ID
 
USAGE行标记
 
977797432976760631977797432-976760631的值就是DNS服务器运行的总秒数
 
CPU=6.55u/6.24s代表DNS服务器使用了用户态6.55秒,系统态6.24秒(u代表user,
 
s代表system),
 
CHILDCPU代表DNS服务器子进程的CPU占用情况。

 
3.Dec2610:23:52wwwnamed[1033]:NSTATS9777974329767606310=2A=13192
 
CNAME=321PTR=11204MX=1173TXT=4AAAA=32ANY=4956
 
这一行是NSTATS行,用于统计接收到的查询总数其中:
 
Dec2610:23:52表示日志生成时间
 
www显示DNS服务器所在机器名
 
named[1033]:显示DNS服务器进程名与进程ID
 
NSTATS行标记
 
977797432976760631977797432-976760631的值就是DNS服务器运行的总秒数
 
0=2代表未知类型的DNS查询2个
 
A=13192代表A类地址查询13192个(最标准)
 
CNAME=321代表CNAME类地址查询321个(一般是有些版本的sendmail使用CNAME程序
 
规范化邮件地址而发出的,还有就是dig或nslookup发出的)
 
PTR=11204代表指针查询11204个(许多软件通过这种方法来查找IP地址)
 
MX=1173代表邮件交换器的查询1173个(是由邮件发送程序发起的)
 
TXT=4代表应用程序进行的文本查询共有4个
 
AAAA=32代表AAAA类查询32个
 
ANY=4956有些Sendmail使用的地址查询方式,共4956个
 
注:还有可能有:
 
NS=xx代表名字服务器查询(例如:名字服务器试图查找根域的服务器)
 
SOA=xx代表辅助DNS更新
 
HINFO=xx主机信息查询
 
NSAP=xx将域名映射成OSI网络服务访问点地址
 
AXFR=xx辅助DNS的区传送
 
这些在本例中并未出现。
 
4.Dec2610:23:52wwwnamed[1033]:XSTATS977797432976760631RR=7629RNXD=1368
 
RFwdR=4836RDupR=51RFail=159RFErr=0RErr=12RAXFR=0RLame=175ROpts=0SSysQ=2082
 
SAns=26234SFwdQ=4520SDupQ=1263SErr=0RQ=30889RIQ=4RFwdQ=0
 
RDupQ=259RTCP=2
 
SFwdR=4836SFail=6SFErr=0SNaAns=21753SNXD=10276
 
这是XSTATS行,它用于统计其它一些数据。其中:
 
Dec2610:23:52表示日志生成时间
 
www显示DNS服务器所在机器名
 
named[1033]:显示DNS服务器进程名与进程ID
 
NSTATS行标记
 
977797432976760631977797432-976760631的值就是DNS服务器运行的总秒数
 
RR=7629代表收到其它主机的响应共有7629个(DNS向其它机器或进程发出的查询得到的响应数、与RQ无关)
 
RNXD=1368代表收到“没有这样的域”回答共有1368个
 
RFwdR=108收到对原始查询的响应为108个
 
RDupR=51重复响应51个(当DNS在它悬而未决的查询列表中,找不到引起该响应的原始查询时,这个响应就是重复响应)
 
RFail=159收到SERVFAIL(远程服务器错误)159个
 
RFErr=0没有收到FORMERR(远程名字服务器认为本地名字服务器的查询有格式错误)
 
Rerr=12收到除了SERVFAIL、FORMERR以外的错误12个
 
RAXFR=0共有0次区传送
 
RLame=175收到175个坏授权(意味着有的区被授权给其它名字服务器,而这个名字服务器不是这个区的权威)
 
ROpts=0共收到带有IP选项的包的个数为0
 
SSysQ=2082共发出系统查询2082个(系统查询是由本地名字服务器进行的查询。大多数都是针对根名字服务器的)
 
SAns=26234共回答了查询26234个
 
SFwdQ=4520不在这个名字服务器,而转发共4520个
 
SDupQ=1263重复查询数1263个
 
SErr=0发出的非SERVFAIL、FORMERR的错误总数
 
RQ=30889收到的查询共有30889个
 
RIQ=4收到反向查询4个(反向查询是为了将地址映射为名字,现在这个功能被PTR实现了。较早的nslookup才使用这种查询)
 
RFwdQ=0没有需要进一步处理的查询
 
RDupQ=259重复查询共有259个
 
RTCP=2通过TCP连接收到2个查询(一般使用UDP)
 
SFwdR=4836来自其它名字服务器转发的响应4836个
 
SFail=6发出被认为SERVFAIL响应共6个
 
SFErr=0发出的被认为FORMERR的响应个数
 
SNaAns=21753非权威回答共21753
 
SNXD=10276发出没有这个域回答10276个
 
这些统计数据都是从DNS开启后到现在的总统计,而非本小时内的统计数字。如何衡量DNS服务器的负载呢?很简单,将总查询数除以DNS运行的总时间,不就知道了吗?在本例中:DNS服务器已运行了:977797432-976760631=1036801秒=288小时
 
注:从第2、3、4行都可以得到
 
而总查询请求有:2+13192+321+11204+1173+4+32+4956=20884次
 
注:从第2行都可以得到,也就是每小时107次查询请求,每秒不到2次,可见负载还是比较小的。
 

上一页[1][2]