Мониторинг DNS BIND с помощью Zabbix

Материал из support.qbpro.ru
Версия от 13:11, 1 августа 2025; Vix (обсуждение | вклад) (Новая страница: «=='''Мониторинг DNS BIND с помощью Zabbix'''== Удивительно, но Zabbix (версия 6) изначально не включает ни одного шаблона для мониторинга важнейшего компонента любой организации: DNS. Как и большинство поклонников открытого исходного кода, я выбрал DNS BIND named. К счастью,...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Мониторинг DNS BIND с помощью Zabbix

Удивительно, но Zabbix (версия 6) изначально не включает ни одного шаблона для мониторинга важнейшего компонента любой организации: DNS. Как и большинство поклонников открытого исходного кода, я выбрал DNS BIND named. К счастью, у Zabbix довольно большое сообщество, и множество шаблонов для него доступны бесплатно. Быстрый поиск в интернете привёл меня на эту страницу . Респект автору этого шаблона, я просто взял его и немного доработал.

  • BIND именованная конфигурация named необходимо statistics-channels включить:
$ less /etc/bind/named.conf.options

...
statistics-channels {
  inet 127.0.0.1 port 8080 allow {
    127.0.0.1;
  };
};
...
  • Также не забудьте включить zone-statisticsзоны, для которых мы хотим собирать статистику:
less /etc/bind/named.conf.local

...
zone "..." {
  ...
  zone-statistics yes;
  ...
};
...
  • Конфигурация Zabbix Agent2

Теперь, когда мы указали namedнеобходимость предоставления статистики, нам нужно указать Zabbix Agent2 (или устаревшему Zabbix Agent) ее собирать:

$ apt install xml2 curl -y
$ cat /etc/zabbix/zabbix_agent2.d/bind.conf

---
UserParameter=bind.net.udp,netstat -nua | grep :53 | wc -l  
UserParameter=bind.net.tcp,netstat -nta | grep :53 | wc -l  
UserParameter=bind.queries.in[*],curl http://127.0.0.1:8080/ 2>/dev/null | xml2 | grep -A1 
"/statistics/server/counters/counter/@name=$1$" | tail -1 | cut -d= -f2  
UserParameter=bind.queries.out[*],curl http://127.0.0.1:8080/ 2>/dev/null | xml2 | grep -A1 
"/statistics/views/view/counters/counter/@name=$1$" | tail -1 | cut -d= -f2  
UserParameter=bind.queries.query[*],curl http://127.0.0.1:8080/ 2>/dev/null | xml2 | grep -A1 
"/statistics/server/counters/counter/@name=Qry$1$" | tail -1 | cut -d= -f2
---

$ systemctl restart zabbix-agent2
  • Конфигурация Zabbix сервера

Наконец, нам нужно импортировать шаблон в Zabbix Server (в моём случае это версия 6 LTS).

    • Войдите в веб-интерфейс Zabbix, выберите Configuration«>» Templatesи нажмите Importкнопку в правом верхнем углу страницы.
    • Скачайте файл шаблона и импортируйте его.

Осталось только включить шаблон DNS-bindна всех DNS-серверах Zabbix Server. Через несколько секунд данные должны начать отображаться в Zabbix.

ИСТОЧНИКИ