Позвонил клиент, говорит почта не работает. Стал смотреть – домен на отключен за не оплату, бухгалтерия забыла оплатить счет. Подумалось, что неплохо бы видеть какие домены в ближайшее время тоже потребуют продления. Будем для этого использовать 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, в которую будем добавлять наши домены
2. Создаем группу элементов
3. Создаем элемент данных. Ключ должен иметь имя такое же, как в файле /etс/zabbix/zabbix_agentd.conf
Указываем с какой периодичностью запускать скрипт. У нас стоит 1 раз в 12 часов.
4. Настраиваем триггер. В случае если при выполнении скрипта на выходе получается число, меньше, чем 5 – приходит оповещение.
Контроль оплаты домена
Ни разу не специалист во FreeBSD, но рискну предположить, что ей не нравятся кавычки в последней строке скрипта. Попробуйте заменить ` на “.
Нужно строку ru|net.ru|org.ru|pp.ru) заменить на ru|net.ru|org.ru|pp.ru|рф)
Должно работать.