Cacti: Мониторинг DNS Bind

graph_image

DNS — одна из важных служб, работа которой, является критичной как с точки зрения удобства пользователей, так и с точки зрения работы многих других системных служб предприятия.

Несмотря на важность, многие администраторы почему-то опускают мониторинг данной службы, хотя своевременное реагирование на эксплуатационные проблемы позволит избежать простоев связанных, например, с внешним воздействием (DDoS-атаки, взлом и т.д.), отказом в обслуживании в связи с программными ошибками (переполнение памяти и т.д.) или ошибками в результате ошибок конфигурирования.

Наиболее открытая и распространённая реализация DNS — это BIND. Bind обеспечивает выполнение преобразования DNS-имени в IP-адрес и обратно. 

Для мониторинга Bind будем использовать Cacti.

На официальном сайте в разделе «Template» уже есть написанный шаблон. Я разбавил инструкцию картинками и переписал не понравившийся мне скрипт для сбора статистики.

Готовим сервер.
Проверяем наличия файла статистики, если его нет, то необходимо добавить соответствующий параметр в конфигурацию named.conf и выполнить рестарт демона.

[dns]# grep "statistics-file" /etc/named.conf
options {
        statistics-file "/var/named/data/named_stats.txt";
}

Если файл статистики есть, то заливаем два скрипта dnsstats.pl и runstats.sh в /etc/snmp/

Во втором файле надо исправить пути согласно вашим установкам.

[dns]#cat runstats.sh
 
#!/bin/sh
/usr/sbin/rndc stats
cat /var/named/data/named_stats.txt | /etc/snmp/dnsstats.pl

И выполняем runstats.sh. Если все сделано правильно, то при выполнении мы должны получить следующий «страшный» вывод:

[dns]# ./runstats.sh
a:314562 a6:950 aaaa:93244 any:2200 cname:326 mx:15440 naptr:1 ns:4852 ptr:1153286 soa:4960 spf:899 srv:5944 txt:7963 rsnx: rsfail: rserr: rsipv4qs:42 rsipv4rr:42 rsmismatch:1 rsqr:4 rsqt:4 rsrtt10:2 rsrtt100500:14 rsrtt10100:32 rsrtt1600: rsrtt500800:1 rsrtt8001600:1 sockopen:1351 sockclosed:1347 sockbf:1 consest:42 recverr:

Добавляем в snmpd.conf extend

[dns]# grep "extend" snmpd.conf
extend .1.3.6.1.4.1.18689.0.1 dnscache-stats /etc/snmp/runstats.sh

Перезапускаем SNMPd и незабываем сделать проверку локально или с хоста мониторинга.

[mon]# snmpwalk -v2c -c comm_name dns_host_name .1.3.6.1.4.1.18689.0.1

В одной из строчек вывода нужно увидеть тот самый страшный вывод.

Далее…

Уходим на сервер мониторинга и добавляем query_bind_server.php в папку скриптов /…/cacti/scripts/

Через Console->Import Template делаем импорт настроек cacti_host_template_bind9_7.xml

cacti bind

В систему добавятся 4 шаблона, их мы и будем использовать для мониторинга Bind.

cacti bind

У меня распределенная система (holder-resolver) DNS с нескольким десятком нод спрятанным за SLB и графики несколько своеобразные, хотя тот что в начале поста, как раз с боевой системы.

В идеале должно получиться примерно так (фото с темы данного шаблона с cacti форума):

resolver

rtt

queries

io

На сегодня все. Встретимся в сети.

Вы можете оставить комментарий ниже.