可能吗?我们可以完全控制我们的DNS服务器和实际指向的服务器。我们想迁移到Ultra DNS,因此对当前正在获取的DNS查询感兴趣,但我们需要知道一个月内可能收到的查询数量。
这可能找出来吗?跟踪开始之前,我需要启动服务吗?还是使用shell访问数据?
可能吗?我们可以完全控制我们的DNS服务器和实际指向的服务器。我们想迁移到Ultra DNS,因此对当前正在获取的DNS查询感兴趣,但我们需要知道一个月内可能收到的查询数量。
这可能找出来吗?跟踪开始之前,我需要启动服务吗?还是使用shell访问数据?
Answers:
正如AndyN所说,答案是:
sudo rndc stats
运行此命令(如果在named.conf
文件中配置)时,Bind会将统计信息转储到配置的统计文件中。
您需要检查/etc/bind/named.conf.*文件中的以下行:
[ statistics-file "path_name"; ]
(在Ubuntu上named.conf.options
,路径为/var/run/named/named.stats
)
从您的问题看来,您需要了解用于扩展目的的大约DNS查询数量。您应该能够从文件中大致了解这一点。
运行sudo rndc统计信息
然后在合适的时间(几个小时?几天?)之后再次运行它。
在您的统计文件中,您将看到以下内容(这是从我自己的家庭DNS服务器获得的,该服务器既是缓存解析器又是权威的)。
抱歉,提供大量信息...第一行中的数字是“ Epoch时间”(自1970-1-1 00:00 UTC以来的秒数)。使用此功能,您可以计算出从一个“ rndc统计信息”到下一个“ rndc统计信息”之间的时间差异,以及不同数量的请求(您需要查看“收到的” QUERY”和“发送总数”(A + NS + SOA + PTR) + TXT + AAAA)。
+++ Statistics Dump +++ (1275999954)
++ Incoming Requests ++
432 QUERY
++ Incoming Queries ++
306 A
2 NS
4 SOA
45 PTR
5 TXT
70 AAAA
++ Outgoing Queries ++
[View: default]
523 A
4 NS
4 SOA
42 PTR
9 TXT
330 AAAA
[View: _bind]
++ Name Server Statistics ++
432 IPv4 requests received
431 responses sent
259 queries resulted in successful answer
96 queries resulted in authoritative answer
335 queries resulted in non authoritative answer
39 queries resulted in nxrrset
133 queries resulted in NXDOMAIN
238 queries caused recursion
1 duplicate queries received
++ Zone Maintenance Statistics ++
++ Resolver Statistics ++
[Common]
[View: default]
849 IPv4 queries sent
63 IPv6 queries sent
841 IPv4 responses received
67 NXDOMAIN received
2 FORMERR received
2 EDNS(0) query failures
123 query retries
5 query timeouts
118 IPv4 NS address fetches
118 IPv6 NS address fetches
1 IPv4 NS address fetch failed
90 IPv6 NS address fetch failed
13 queries with RTT < 10ms
549 queries with RTT 10-100ms
279 queries with RTT 100-500ms
[View: _bind]
++ Cache DB RRsets ++
[View: default]
366 A
87 NS
9 CNAME
1 PTR
97 AAAA
20 RRSIG
15 NSEC
4 !AAAA
1 NXDOMAIN
[View: _bind]
++ Socket I/O Statistics ++
852 UDP/IPv4 sockets opened
64 UDP/IPv6 sockets opened
3 TCP/IPv4 sockets opened
2 TCP/IPv6 sockets opened
850 UDP/IPv4 sockets closed
63 UDP/IPv6 sockets closed
123 TCP/IPv4 sockets closed
1 UDP/IPv4 socket bind failures
63 UDP/IPv6 socket connect failures
849 UDP/IPv4 connections established
124 TCP/IPv4 connections accepted
63 UDP/IPv6 send errors
3 UDP/IPv4 recv errors
++ Per Zone Query Statistics ++
--- Statistics Dump --- (1275999954)
命令“ rndc stats ”应与最新版本的BIND dns一起使用。
根据DistroWatch的说法,CentOS 5.5附带了Bind 9.3.4-P1。OP可以从命令行使用“ rpm -qa | grep bind”来验证这一点。
AndyN的“ rndc stats”(如果您碰巧运行BIND)和kaerast的“ dnstop”都是不错的建议。我添加了DSC,这是一个非常全面的DNS统计信息包。
警告:如果您的服务器繁忙,则会生成大量日志,请注意您的空间。
首先,在/etc/named.conf中启用“查询”通道以获取日志;一个简单的例子:
logging {
channel queries_channel {
file "/var/log/named/queries.log" versions 5 size 500m;
print-time yes;
};
category queries { queries_channel; }
}
请注意,如何将5个版本(旋转的日志)保持在500兆字节-根据需要进行调整以捕获所需的数据量。现在您已经有了日志,Google会“绑定查询统计信息”以找到最能满足您需求的工具或软件,以找出有问题的数字。我所知道的同时支持BIND v8和v9格式的其中之一是http://www.logreport.org/。