Мониторим время окончания оплаты домена с помощью Zabbix
Согласитесь, что за оплатой домена надо следить? Заходить в личный кабинет и проверять? А если пропустите письмо по почте? Если есть zabbix, то можно делать это автоматически! А заодно можно сделать уведомление в telegram
Поискав немного в интернете информацию, нашел интересный скрипт. Решил с Вами поделиться, может кому будет полезно.
Для работы скрипта необходимо установить WHOIS
Сам скрипт выглядит так:
#!/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’ ` ;; com|net) DATE=`whois $DOMAIN | grep "Registration Expiration Date:" | sed ’ s/Registrar Registration Expiration Date: //g;s/T/ /g’ | awk ’ { print $1 }’ ` ;; org) DATE=`whois $DOMAIN | grep "Registry Expiry Date:" | sed ’ s/Registry Expiry Date: //g;s/T/ /g’ | awk ’ { print $1 }’ ` ;; *) DATE="$(whois $DOMAIN | awk ’ /[Ee]xpir.*[Dd]ate:/ || /[Tt]ill:/ || /expire/ {print $NF; exit;}’ )" if test -z "$DATE"; then #Отсутствует информация в Whois для домена echo "-1" continue fi esac
# считаем дни и выводим expr \( `date --date="$DATE" +%s` - `date +%s` \) / 60 / 60 / 24 Скрипт кладем в каталог по умолчанию для внешних скриптов, который указан в конфигурации сервера zabbix, вот строчка по умолчанию в zabbix-server.conf
ExternalScripts=/usr/lib/zabbix/externalscripts
Теперь выдаем права и делаем его исполняемым:
chown zabbix:zabbix /usr/lib/zabbix/externalscripts/checkdomainexpire.sh chmod +x /usr/lib/zabbix/externalscripts/checkdomainexpire.sh Теперь осталось в агента добавить свой параметр:
mcedit /etc/zabbix/zabbix_agentd.conf UserParameter=domainexpire[*],/usr/lib/zabbix/externalscripts/checkdomainexpire.sh $1 Перезапускаем агента:
service zabbix-agent restart Все, на этом подготовка завершена, осталось добавить шаблон и прикрутить его к хосту.
Скачать шаблон domain_template.rar
Создаем узел, прикручиваем к нему данный шаблон и переходим в макросы:
Делаем макрос:
{$DOMAINNAME} - Имя домена, который надо "смотреть"
Все, ожидаем получение данных.
Вот так это выглядит во вкладке "Мониторинг -> Последние данные"