我正在考虑设置一个 PowerDNS 服务器来处理几百个区域。我想跟踪每个区域和记录的“使用情况”,即每天对每个区域的查询次数。
我在文档或 Google 中找不到有关如何实现此目的的任何详细信息。我不熟悉 PowerDNS,但认为需要自定义 PipeBackend?PipeBackends 是否会替换标准 MySQL 后端,还是仅用于未解析的查询?
答案1
答案2
至于管道后端问题:
所有后端都按照启动语句中给出的顺序来处理查询。一旦后端响应与查询匹配的数据,所有剩余的后端将不再被询问。因此,如果您放置一个仅用于生成统计数据而不预先回答任何问题的管道后端,您将捕获对您的名称服务器的所有查询,但 PowerDNS 能够从其数据包和查询缓存中回答的查询除外。
答案3
也许最好的选择是在 PowerDNS 缓存选项(数据包和查询缓存)之前添加一个 LUA 钩子。这样,您可以为日志记录创建一个 LUA 脚本,并让后端回答查询。这样,您可以使用缓存(以获得出色的性能)并使用经过测试的后端(gmysql)进行响应。如果日志记录会严重减慢您的系统速度,您甚至可以包含一些代码来停止日志记录。
如果我没记错的话,缓存之后已经有一个可用的 LUA 钩子。它可用于您所需的内容以及速率限制(当需要时)。