Контроль оплаты домена через Zabbix

Контроль оплаты домена через Zabbix


Позвонил клиент, говорит почта не работает. Стал смотреть – домен отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать Zabbix.

На сервере с Zabbix’ом установим Zabbix-агент. Он и будет у нас заниматься проверкой наших доменов.

Для начала создадим и проверим работу скрипта для проверки.

mkdir /etc/scripts
touch /etc/scripts/domain.sh
nano /etc/scripts/domain.sh

и вставим код:

#!/bin/sh
# получаем имя домена
DOMAIN=$1
# получаем имя зоны
ZONE=`echo $DOMAIN | sed 's/\./ /' | awk '{ print $2 }'`
# получаем дату окончания регистрации домена
# Должна вернуться в формате (год-месяц-день)
case "$ZONE" in
        ru|net.ru|org.ru|pp.ru)
                DATE=`whois $DOMAIN | grep paid-till | awk '{ print $2 }' | sed 's/\./-/g'`
                ;;
        spb.ru|msk.ru)
                DATE=`whois -h whois.nic.ru $DOMAIN | grep paid-till | awk '{ print $2 }' \
                | sed 's/\./-/g'`
                ;;
        com|net)
                DATE=`whois $DOMAIN | grep "Registration Expiration Date:" \
| sed 's/Registrar Registration Expiration Date: //g;s/T/ /g' | awk '{ print $1 }'`
                ;;
        info|org)
                DATE=`whois $DOMAIN | grep "Registry Expiry Date:" \
| sed 's/Registry Expiry Date: //g;s/T/ /g' | awk '{ print $1 }'`
                ;;
        *)
                echo "-1"
                exit 1
esac
# считаем дни и выводим
expr \( `date --date="$DATE" +%s` - `date +%s` \) / 60 / 60 / 24


Попробуем запустить:

/etc/zabbix/scripts/domain.sh yandex.ru


Все работает. Можно теперь отредактировать конфигурационный файл нашего агента.

nano /etс/zabbix/zabbix_agentd.conf

Добавим в конец строку:

UserParameter=domain_yandex.ru[*],/etc/zabbix/scripts/domain.sh yandex.ru

(где yandex.ru замените на нужный домен)

Затем, настроим сам Zabbix, предварительно создав группу Domain, в которую будем добавлять наши домены

1. Добавляем узел


2. Создаем группу элементов


3. Создаем элемент данных. Ключ должен иметь имя такое же, как в файле /etс/zabbix/zabbix_agentd.conf 

Указываем с какой периодичностью запускать скрипт. У нас стоит 1 раз в 12 часов.


4. Настраиваем триггер. В случае если при выполнении скрипта на выходе получается число, меньше, чем 5 – приходит оповещение.



Report Page