Мониторим время окончания оплаты домена с помощью Zabbix

zabbix logo

Согласитесь, что за оплатой домена надо следить? Заходить в личный кабинет и проверять? А если пропустите письмо по почте? Если есть 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} — Имя домена, который надо «смотреть»

Все, ожидаем получение данных.

Вот так это выглядит во вкладке «Мониторинг -> Последние данные»

Комментариев нет

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

Ваш e-mail не будет опубликован.