Позвонил клиент, говорит почта не работает. Стал смотреть — домен на отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать 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 — приходит оповещение.
Контроль оплаты домена
Метки:         

2 мыслей о “Контроль оплаты домена

  • 08.08.2017 в 13:31
    Постоянная ссылка

    Ни разу не специалист во FreeBSD, но рискну предположить, что ей не нравятся кавычки в последней строке скрипта. Попробуйте заменить ` на «.

    Ответ
  • 21.12.2017 в 16:46
    Постоянная ссылка

    Нужно строку ru|net.ru|org.ru|pp.ru) заменить на ru|net.ru|org.ru|pp.ru|рф)
    Должно работать.

    Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *