DNS服务器上的使用统计信息

我想find一种方法来logging请求到DNS服务器,网站统计。 如果服务器也使用MySQL作为后端服务器,那将会很好。

我想这是可能的,因为有pipe理的DNS服务谁拥有每个请求价格的数量。 但是我找不到任何东西。

有没有人有一个想法,或者我应该自己修改现有的DNS服务器?

谢谢。

皮埃尔

一种方法是转动BIND日志logging:

logging{ channel simple_log { file "/var/log/bind.log" versions 3 size 5m; severity warning; print-time yes; print-severity yes; print-category yes; }; category default{ simple_log; }; }; 

或者如果你有rndcconfiguration你可以使用:

 rndc querylog 

H皮埃尔,

你提到MySQL,所以我假设Linux和绑定。

在named.conf中应该是这样的

 logging{ channel queries_log{ file "/var/log/named/dns.log" versions 5 size 500m; print-time yes; }; category queries{ queries_log; }; }; 

这里给出的答案显示了如何在一个单一的文本文件中获得您的查询。 你问过使用MySQL作为后端,这绝对有可能。

按照给定的例子为查询loggingconfigurationBIND之后,可以将这些消息发送到系统日志服务器(本地到BIND服务器或另一个主机上)。

尽pipe如此,通过这个网站将超出本网站的范围。 不过,像这个教程这样的东西是一个很好的开始,

设置rsyslog将系统日志消息存储在MySQL中

使用名称服务器本身(例如Prix的响应中的BIND)会认真加载软件(现在必须格式化每个请求并执行I / O)并取决于您使用的软件。

相反,我build议使用以太网端口镜像来捕获(在机器本身或另一台机器上的)paquets,然后使用统计程序。 对于捕获,使用tcpdump或tshark或pcapdump (我喜欢关于pcapdump的一件事就是它可以抽样)。 DNS统计程序的母亲是DSC 。

如果您喜欢RDBMS, DNSmezzo会将捕获结果放入PostgreSQL数据库,您可以随时使用SQL请求进行学习。

就像在旁边一样,即使一些被pipe理的dns提供者通过查询来收费,但是它有时也是从采样得出的一个猜测,因为当涉及许多域时,需要一些严肃的处理才能做出确切的计数。