我想找到一种方法来记录对 DNS 服务器的请求,以便进行网站统计。如果服务器也使用 MySQL 作为后端服务器就太好了。
考虑到许多托管 DNS 服务都按请求收费,我猜这是可能的。但我找不到任何服务。
有人有想法吗,或者我应该自己修改现有的 DNS 服务器?
谢谢。
皮埃尔
答案1
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;
};
};
或者如果你有 rndc configure 你可以使用:
rndc querylog
答案2
皮埃尔,
您提到了 MySQL,因此我假设是 Linux 和 Bind。
在named.conf中应该是这样的
logging{
channel queries_log{
file "/var/log/named/dns.log" versions 5 size 500m;
print-time yes;
};
category queries{
queries_log;
};
};
答案3
这里已经给出的答案显示了如何在纯文本文件中获取查询。您询问使用 MySQL 作为后端,这绝对是可能的。
按照给出的示例配置 BIND 进行查询日志记录后,您可以将这些消息发送到系统日志服务器(BIND 服务器本地或另一台主机上)。
不过,引导您完成这些操作超出了本网站的范围。不过,类似这个教程的内容将是一个不错的起点:
答案4
顺便说一句,尽管一些托管 DNS 提供商按查询收费,但有时这是通过抽样得出的估计值,因为当涉及到许多领域时,需要进行一些严格的处理才能进行精确的计数。