В стандартных шаблонах ZABBIX нет возможности мониторить DNS.
Это можно сделать через внешние скрипты.
Обычно они лежат в /usr/lib/zabbix/externalscripts
Создадим такой вот скрипт:
dns-check.sh#!/bin/shHOST_QUERY=$1if [ `host -W 1 $HOST_QUERY | grep "has address" | wc -l` -eq 0 ]; thenecho "0"elseecho "1"fiТ.е. если у него получается разрезолвить адрес, он вернет 1, если нет, то 0.
Сделаем его исполняемым:
# chmod +x /usr/lib/zabbix/externalscripts/dns-check.shТеперь создадим item на том хосте где запущен сервис DNS, не важно какой, bind или Microsoft'овский:
Name: DNS service checkType: External checkKey: dns-check.sh[google.com {HOST.HOST}]Type of information: Numeric unsignedData type: BoolenUpdate interval (in sec): 60google.com можно заменить на любой адрес, который вам нравится.
Для этого item'а сделаем trigger:
Name: DNS service checkExpression: {hostname.domainname:dns-check.sh[google.com {HOST.HOST}].max(#3)}=0Severity: AverageОбратите внимание, триггер создается для хоста hostname.domainame, далее указан ключ, в котором видим наш item и условие, если три последние попытки были неудачны, то триггер сработает.
В конфиге сервера ZABBIX увеличьте timeout для внешних проверок:
### Option: Timeout# Specifies how long we wait for agent, SNMP device or external check (in seconds).## Mandatory: no# Range: 1-30# Default:# Timeout=3Timeout=30Чтобы не делать итем и триггер в ручную, я запилил шаблон, его можно скачать по ссылке внизу страницы, там же и скрипт.