透过DNS日志了解服务器状态

在DNS服务器运行时,每隔一小时会生成一组如下所示的LOG_INFO级日志信息,反馈DNS服务器的运行状态:   
Dec 26 10:23:52 www named[1033]: Cleaned cache of 26 RRset   
Dec 26 10:23:52 www named[1033]: USAGE 977797432 976760631 CPU=6.55u/6.24s CHILD CPU=0u/0s   
Dec 26 10:23:52 www named[1033]: NSTATS 977797432 976760631 0=2 A=13192   
CNAME=321 PTR=11204 MX=1173 TXT=4 AAAA=32 ANY=4956   
Dec 26 10:23:52 www named[1033]: XSTATS 977797432 976760631 RR=7629 RNXD=1368   
RFwdR=4836 RDupR=51 RFail=159 RFErr=0 RErr=12 RAXFR=0 RLame=175 ROpts=0   
SSysQ=2082 SAns=26234 SFwdQ=4520 SDupQ=1263 SErr=0 RQ=30889 RIQ=4 RFwdQ=0   
RDupQ=259 RTCP=2 SFwdR=4836 SFail=6 SFErr=0 SNaAns=21753 SNXD=10276

下面我们就逐句解读一下:   
1. Dec 26 10:23:52 www named[1033]: Cleaned cache of 26 RRset   
这是每一组日志信息的第一行,表示正在清空Cache。   
其中:   
Dec 26 10:23:52 表示日志生成时间   
www 显示DNS服务器所在机器名   
named[1033]: 显示DNS服务器进程名与进程ID   
Cleaned cache of 26 RRset 表示正在清除cache   
2. Dec 26 10:23:52 www named[1033]: USAGE 977797432 976760631 CPU=6.55u   
/6.24s CHILD CPU=0u/0s   
这一行是USAGE行,用于统计DNS服务器占用的CPU时间。   
其中:   
Dec 26 10:23:52 表示日志生成时间   
www 显示DNS服务器所在机器名   
named[1033]: 显示DNS服务器进程名与进程ID   
USAGE 行标记   
977797432 976760631 977797432-976760631的值就是DNS服务器运行的总秒数   
CPU=6.55u/6.24s 代表DNS服务器使用了用户态6.55秒,系统态6.24秒(u代表user,   
s代表system),   
CHILD CPU 代表DNS服务器子进程的CPU占用情况。   
3. Dec 26 10:23:52 www named[1033]: NSTATS 977797432 976760631 0=2 A=13192   
CNAME=321 PTR=11204 MX=1173 TXT=4 AAAA=32 ANY=4956   
这一行是NSTATS行,用于统计接收到的查询总数   
其中:   
Dec 26 10:23:52 表示日志生成时间   
www 显示DNS服务器所在机器名   
named[1033]: 显示DNS服务器进程名与进程ID   
NSTATS 行标记   
977797432 976760631 977797432-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. Dec 26 10:23:52 www named[1033]: XSTATS 977797432 976760631 RR=7629 RNXD=1368   
RFwdR=4836 RDupR=51 RFail=159 RFErr=0 RErr=12 RAXFR=0 RLame=175 ROpts=0 SSysQ=2082   
SAns=26234 SFwdQ=4520 SDupQ=1263 SErr=0 RQ=30889 RIQ=4 RFwdQ=0   
RDupQ=259 RTCP=2   
SFwdR=4836 SFail=6 SFErr=0 SNaAns=21753 SNXD=10276   
这是XSTATS行,它用于统计其它一些数据。   
其中:   
Dec 26 10:23:52 表示日志生成时间   
www 显示DNS服务器所在机器名   
named[1033]: 显示DNS服务器进程名与进程ID   
NSTATS 行标记   
977797432 976760631 977797432-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次,可见负载还是比较小的。

(0)

相关推荐

  • 透过DNS日志了解服务器状态

    在DNS服务器运行时,每隔一小时会生成一组如下所示的LOG_INFO级日志信息,反馈DNS服务器的运行状态:    Dec 26 10:23:52 www named[1033]: Cleaned cache of 26 RRset    Dec 26 10:23:52 www named[1033]: USAGE 977797432 976760631 CPU=6.55u/6.24s CHILD CPU=0u/0s    Dec 26 10:23:52 www named[1033]: NST

  • PHP实现服务器状态监控的方法

    本文实例讲述了PHP实现服务器状态监控的方法.分享给大家供大家参考.具体分析如下: PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,为此这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧.很简单的东西. 使用方法: 打开压缩包里面的status.php文件.编辑这里的内容为你自己的邮箱信息.代码如下: 复制代码 代码如下: $mail->Host       = 'smtp.exmail.qq.com'; 

  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数: 复制代码 代码如下: function get_used_status(){  $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况  $rs = "";  while(!feof($fp)){   $rs .= fread($fp,1024);  }  pclose($fp

  • python脚本实现分析dns日志并对受访域名排行

    前段时间有个需求是要求查一段时间的dns上的域名访问次数排行(top100),没办法,只好慢慢的去解析dns日志呗,正好学习了python,拿来练练手. 1.原始数据分析: 首先看下原始数据文件,即dns日志内容,下面是抽取的几条有代表性的日志,2×8.2×1.2x.1×5 这种中间的x是相应的数字被我抹去了. 复制代码 代码如下: 13-08-30 03:11:34,226 INFO : queries: – |1×3.2×8.2×0.2×0|config.dengluqi.net||conf

  • MySQL使用show status查看MySQL服务器状态信息

    在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SELECT语句.执行了多少UPDATE/DELETE/INSERT语句等统计信息,从而便于我们根据当前MySQL服务器的运行状态进行对应的调整或优化工作. 在MySQL中,我们可以使用SHOW STATUS指令语句来查看MySQL服务器的状态信息.下面,我们以DOS命令窗口的形式连接My

  • 详解Linux服务器状态、性能相关命令

    服务器状态分析 查看Linux服务器CPU详细情况 #查看CPU的信息 [root@host ~]# cat /proc/cpuinfo  #查看物理CPU的个数 [root@host /]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l #查看每个物理CPU的核数 [root@host /]# cat /proc/cpuinfo | grep "cpu cores" | uniq #逻辑C

  • 如何监控 Linux 服务器状态

    Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此.为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展. 本文介绍的几个命令,不仅仅适用于服务器监控,也适用于我们日常情况下的开发. 1. watch watch 命令我们的使用频率很高,它的基本作用是,按照指定频率重复执行某一条指令.使用这个命令,我们可以重复调用一些命令来达到监控服务器的作用. 默认情况下,watch 命令的执行周期是 2 秒,但我们可以使用 -n 选项来指定运行频率,比如我们想

  • Jmeter压力测试简单教程(包括服务器状态监控)

    目录 步骤一  安装Jmeter 步骤二  使用Jmeter测试未登录页面 步骤三  设置线程并发数 步骤四  设置其他监听器 步骤五  登录测试 步骤六  会话保持 步骤七  文件读取网址 步骤八  服务器状态实时监听     前段时间公司需要对服务器进行压力测试,包括登录前的页面和登录后的页面,主要目的是测试负载均衡的实现效果.不知道是不是因为Jmeter不如loadRunner火爆还是什么,网上关于Jmeter的资料有很多但是大多千篇一律,要么简单弄个页面测试一下,要么全篇都是介绍很多和J

  • 如何监控 Linux 服务器状态的方法

    Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此.为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展. 本文介绍的几个命令,不仅仅适用于服务器监控,也适用于我们日常情况下的开发. 1. watch watch 命令我们的使用频率很高,它的基本作用是,按照指定频率重复执行某一条指令.使用这个命令,我们可以重复调用一些命令来达到监控服务器的作用. 默认情况下,watch 命令的执行周期是 2 秒,但我们可以使用 -n 选项来指定运行频率,比如我们想

  • Shell脚本实现apache日志中的状态码分析

    一.首先将apache日志按天切割 复制代码 代码如下: vi /etc/httpd/conf/httpd.conf         ErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480"        CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480" combined 二.重启apache服务 复制代码 代码如下

随机推荐