Настройка Zabbix-сервера
Скачиваем, распаковываем и импортируем шаблон dns_template_export_templates.xml
dns_export_templates.zip
Применяем шаблон к хосту
Добавляем макросы к хосту
1 |
{$DNS_SERVER} |
– IP-адрес, на котором запущен DNS-сервер(в моем случае Bind)
1 |
{$DOMAIN_NAME} |
– имя домена, чью зону обслуживает наш DNS-сервер и этот домен мы будем проверять
1 |
{$IP_DOMAIN_NAME} |
– IP-адрес, на который указывает A-запись для нашего домена {$DOMAIN_NAME}
Проверяем, что через 1-2 минуты на хосте появились Item с именем DNS service
1 |
Monitoring->Latest Data->фильтруем по требуемому хосту в поле Hosts->DNS service |
В шаблоне находится 4 элемента и 4 триггера к этим элементам
1 |
1. DNS: process is running |
Мониторинг наличия процесса DNS(в моем случае наличие процесса с именем named) и срабатывание триггера при количестве таких процессов меньше 1
1 |
2. DNS: service is available |
Мониторинг доступности службы через подключение по tcp-протоколу на 53 порт(в firewall нужно разрешить доступ кроме UDP еще и по TCP-протоколу. TCP используется, кроме пересылки зон еще и в том случае, если размер DNS-ответа превышает размер UDP-дейтаграммы, в которой может передаваться этот ответ).
Срабатывание тригера случае неуспешного подключения на порт 53 по протоколу TCP
1 |
3. DNS: is working properly on server {$DNS_SERVER} for domain {$DOMAIN_NAME} |
DNS-запрос к нашему DNS-серверу($DNS_SERVER) для проверки, корректно ли он обслуживает запросы для нашего домена({$DOMAIN_NAME})(в моем случае, запрос типа NS к DNS-серверу с ожиданием ответа в течение 3-х секунд и повторной проверки в случае неудачи первой проверки)
Срабатывание триггера в случае отсутствия ответа после двух неудавшихся проверок
1 |
4. DNS: A-record for {$DOMAIN_NAME} |
Проверка A-записи для нашего домена {$DOMAIN_NAME} у Google-сервера(8.8.8.8) на наличие коректного IP-адреса({$IP_DOMAIN_NAME}) и срабатывание триггера в случае, если IP-адрес был изменен(не совпадает с ожидаемым)
Элементы
Триггеры
Макросы на хосте
Получаемые данные
Для мониторинга второго сайта необходимо
а) добавить макросы к хосту с актуальным именем домена и IP-адреса домена
1 2 |
{$DOMAIN2_NAME} {$IP_DOMAIN2_NAME} |
Б) Скопировать и изменить Элементы
1 2 |
DNS: is working properly DNS: A-record for {$DOMAIN_NAME} |
1 |
Configuration->Hosts->хост,к которому применили ранее наш шаблон-> Items |
Для DNS: is working properly
1 2 3 4 |
DNS: is working properly->Clone Изменить имя и ключ на Name->DNS: is working properly on server {$DNS_SERVER} for domain {$DOMAIN2_NAME} Key->net.dns[{$DNS_SERVER},{$DOMAIN2_NAME},NS,3,2] |
Для DNS: A-record for {$DOMAIN_NAME}
1 2 3 |
DNS: A-record for {$DOMAIN_NAME}->Clone Name->DNS: A-record for {$DOMAIN2_NAME} Key->net.dns.record[8.8.8.8,{$DOMAIN2_NAME},a,3,2] |
В) скопировать и изменить Триггеры
1 2 |
DNS: A-record has been changed for {$DOMAIN_NAME} DNS: is working properly on {$DNS_SERVER} for {$DOMAIN_NAME} |
1 |
Configuration->Hosts->хост,к которому применили ранее наш шаблон,->Triggers |
Для DNS: is working properly on {$DNS_SERVER} for {$DOMAIN_NAME}
1 2 3 |
DNS: is working properly on {$DNS_SERVER} for {$DOMAIN_NAME}->Clone Name->DNS: is working properly on {$DNS_SERVER} for {$DOMAIN2_NAME} И в Expression заменить {$DOMAIN_NAME} на {$DOMAIN2_NAME} |
Для DnS: A-record has been changed for {$DOMAIN_NAME}
1 2 3 |
DNS: A-record has been changed for {$DOMAIN_NAME}->Clone Name->DNS: A-record has been changed for {$DOMAIN2_NAME} и в Expression заменить {$DOMAIN_NAME} на {$DOMAIN2_NAME} и {$IP_DOMAIN_NAME} на {$IP_DOMAIN2_NAME} |