我们想跟踪 BIND 9 DNS 服务器的缓存使用情况。有什么方法可以记录缓存命中和未命中情况吗?我们尝试了 BIND 日志记录功能(通道、类别),但没有成功。此外,“rndc stats”仅提供有关缓存使用情况的部分信息。谢谢阅读。
答案1
你正在寻找统计数据,因此你需要阅读 BIND 管理员参考手册中关于BIND 统计数据。 尤其:
目前有两个用户界面可用于访问统计信息。一个是纯文本格式,转储到 statistics-file 配置选项指定的文件中。另一个是当在配置文件中指定 statistics-channels 语句时,可通过统计通道远程访问(请参阅“statistics-channels 语句语法”一节)。
统计信息可以本地转储到文件系统,也可以通过统计通道通过 HTTP 公开。在后一种情况下,您可以通过解析 XML 或 JSON 通过监控系统远程收集计数器。后一种方法肯定有用,但您需要确保 HTTP 套接字不会暴露给不受信任的来源。
statistics-channels {
inet 127.0.0.1 port 5302
allow { 127.0.0.1; };
inet 192.0.2.1 port 5302
allow { mgt-acl; monitor-acl; };
};
在我的特定情况下,我编写了一个基于curl
和jq
的解析器,它获取感兴趣的 JSON 计数器并将其转换为 Zenoss 可以理解的 JSON 格式。然后可以绘制计数器的图表。下面是我通过公开的 RTT 计数器绘制查询往返时间图表的示例: