BIND 区域统计跟踪?

BIND 区域统计跟踪?

我正在尝试准确估计我的 DNS 服务器针对特定区域子集处理多少个查询/{day,week,month}。我运行了“rndc stats”并从交易中获取了一个统计文件,但它包含所有区域的查询,而我只需要子集的统计信息。我认为这可以通过在区域文件的 zone{ } 部分添加“zone-statistics no”来实现,但我不敢尝试看看会发生什么。这是正确的程序吗,还是还有其他方法?

操作系统:OpenSuSE 11.2 BIND:9.5

谢谢,

肯德尔

答案1

zone-statistics就是这样。

您可以全局设置yes(在“选项”中)并no为不感兴趣的区域设置,反之亦然 -no全局设置并yes为感兴趣的区域设置。

- 剪这里 -

实际上,有三种方法可以获取统计数据:

  1. rndc 统计数据
  2. HTTP(统计通道)
  3. 查询日志(将记录所有区域的所有查询)

显然,如果您需要的只是统计数据,那么 1 和 2 是正确的方法。要按区域控制它们,请使用zone-statistics语句。日志记录 (3) 无法在 BIND 内按区域控制。

答案2

这不是特别优雅,但还是这么做。

在您的配置中(与您放置zone{}块的位置相同,但不在块内部),添加如下内容:

logging {
    channel query_log {
        file "/var/log/named.queries"; // or somewhere else
        print-time yes;
    };
    category queries { query_log; };
 };

您将负责grep ... | wc自己分析该文件(或其他内容)。

如果您不希望文件永远增长,您可能还需要考虑日志轮换。Bind 有一些内置支持,可以根据文件大小或named重新启动来轮换日志,或者您可以使用外部工具,例如 logrotate。Bind 的日志记录选项详情如下http://www.zytrax.com/books/dns/ch7/logging.html

答案3

绑定支持统计信息。查看Bind 9 配置参考。我认为您需要将 zone-statistics 设置为 yes 才能执行您想要的操作。

相关内容