Отслеживание DNS-запросов в PowerDNS
Я пытаюсь настроить сервер PowerDNS для обработки нескольких сотен зон. Я хотел бы отслеживать "использование" каждой зоны и записи, то есть количество запросов в день для каждой.
Я не смог найти каких-либо подробностей в документации или в Google о том, как мне этого добиться. Я не знаком с PowerDNS, но думаю, что нужен специальный PipeBackend? Заменяет ли PipeBackends стандартный бэкэнд MySQL, в дополнение или только для неразрешенных запросов?
3 ответа
PowerDNS в настоящее время не может сделать это. Есть внешние инструменты, такие как dsc, которые могут делать статистику через pcap.
Если бы вы написали для этого пользовательский (конвейерный) бэкэнд, он бы заменил ваш mysql-бэкэнд - вы не можете указать powerdns передавать результаты из одного бэкенда в другой. 'pipebackend', возможно, немного запутан в этом смысле.
Обратите внимание, что любая статистика, которую вы будете делать из бэкэнда (будь то пользовательский бэкэнд или журнал запросов MySQL), будет искажена (необязательно, но рекомендуется) кэшем пакетов и запросов внутри PowerDNS.
Итак, сейчас я бы рекомендовал использовать что-то вроде dsc.
Что касается внутреннего вопроса о трубе:
Все серверные части исчерпаны для запросов в порядке, указанном в операторе запуска. Как только сервер ответит данными, соответствующими запросу, все остальные серверы больше не будут запрашиваться. Таким образом, если вы установите конвейерную часть, предназначенную только для генерации статистики и не отвечающую на запросы, вы будете перехватывать все запросы к вашему серверу имен, кроме тех, которые PowerDNS мог отвечать из своих пакетов и кэшей запросов.
Возможно, лучший вариант - добавить хук LUA перед опциями кэширования PowerDNS (кеш пакетов и запросов). Таким образом, вы можете создать скрипт LUA для регистрации и позволить бэкэнду ответить на запрос. Таким образом, вы можете использовать кеш (для высокой производительности) и использовать проверенный бэкэнд (gmysql) для ответа. Вы могли бы даже включить некоторый код, чтобы прекратить запись в журнал, если он сильно замедляет вашу систему.
Если я прав, то сразу после кэша уже доступен хук LUA. Для того, что вы ищете, а также для ограничения скорости (когда это необходимо).