我正在考虑设置一个PowerDNS服务器来处理几百个区域。 我想跟踪每个区域和logging的“用量”,即每天查询的次数。
我无法在文档或Google上find有关如何实现此目的的任何详细信息。 我不熟悉PowerDNS,但想自定义PipeBackend是需要的? PipeBackends是否replace标准的MySQL后端,除了还是仅仅用于未解决的查询呢?
PowerDNS目前不能做到这一点。 有一些外部工具,比如可以通过pcap进行统计的dsc 。
如果你要为此自定义(pipe道)后端,它将不得不取代你的mysql后端 – 你不能告诉powerdns从一个后端通过另一个结果。 在这个意义上,“后备”可能有点混乱。
请注意,任何从后端执行的统计(无论是自定义后端,还是您的mysql查询日志)都会被PowerDNS中的(可选的,但推荐的)数据包和查询caching歪曲。
所以,现在我会推荐使用类似dsc的东西。
至于pipe道后端问题:
所有后端都按照启动语句中给出的顺序用尽查询。 只要后端以匹配查询的数据响应,所有剩余的后端将不会再被询问。 所以,如果你把一个pipe道后端只是为了产生统计信息,而不是预先回答任何事情,那么除了那些PowerDNS能够从它的数据包和查询caching中得到回应外,你会接收到所有的查询给你的域名服务器。
也许最好的select是在PowerDNScaching选项(数据包和查询caching)之前添加一个LUA钩子。 这样,您可以为日志logging创buildLUA脚本,并让后端回答查询。 这样你可以使用caching(为了获得更好的性能),并使用一个经过testing的后端(gmysql)来进行响应。 你甚至可以包括一些代码来停止日志,如果它减慢你的系统。
如果我是正确的,在caching之后已经有了一个LUA钩子。 对于你正在寻找,也是限速(当需要)。