Мониторинг срока регистрации (освобождения) домена в Zabbix

Мониторинг срока регистрации (освобождения) домена в Zabbix

В этой статье мы рассмотрим, как настроить отслеживания срока действия (делегирования /регистрации) ваших доменов в Zabbix. Это позволит вам не пропустить дату продления аренды и окончания делегирования ваших доменных имен.

Если в течении 30 дней после окончания срока регистрации домена, предыдущий владелец не оплачивает его, домен освобождается (разделегируется). Рассмотрим простой скрипт и шаблон для Zabbix, которые позволят вот мониторить время окончания регистрации домена.

Итак, предполагаем, что у вас уже установлен Zabbix сервер. Для получения данных о сроках делегирования доменов мы будем использовать небольшой bash скрипт. Для его работы на хосте должна быть установлена утилита whois. Установите ее:

  • CentOS/RHEL/Rocky Linux:
    $ sudo dnf install whois -y
  • Ubuntu/Debian:
    $ sudo apt install whois -y

Проверьте в конфигурационном файле zabbix-server.conf путь к каталогу для внешних скриптов. По умодчанию это (раскоментируйте сттроку):

ExternalScripts=/usr/lib/zabbix/externalscripts

внешние скрипты ExternalScripts в Zabbix

Создайте в этом каталоге файл /usr/lib/zabbix/externalscripts/domain_expiration.sh со следующим кодом:

#!/bin/bash
DOMAIN="$1"
exdate=`whois $DOMAIN | grep -E 'paid|Expire|Expiry' | grep -o -E '[0-9]{4}.[0-9]{2}.[0-9]{2}|[0-9]{2}/[0-9]{2}/[0-9]{4}'`
expire=$((`date -d "$exdate" '+%s'`))

today=$((`date '+%s'`))
leftsec=$(($expire - $today))
leftdays=$(($leftsec/86400))
echo $leftdays

Разрешите запуск файла:

$ sudo chmod +x /usr/lib/zabbix/externalscripts/domain_expiration.sh

Проверьте, что скрипт работает корректно. Укажите в качестве параметра имя домена, для которого вы хотите получить количество дней, оставшихся до окончания делегирования.

$ /usr/lib/zabbix/externalscripts/domain_expiration.sh winitpro.ru

В моем примере скрипт вернул, что до окончания срока действия домена осталось 39 дней.

Bash скрипт проверить сколько дней до освобождения домена

Теперь с помощью параметра UserParameter нужно разрешить запуск этого пользовательского скрипта агентом Zabbix.

$ sudo mcedit /etc/zabbix/zabbix_agentd.conf

Добавьте строку:

UserParameter=domainexpire[*],/usr/lib/zabbix/externalscripts/domain_expiration.sh $1

Такой параметр позволит выполнить определенный внешний скрипт через агента Zabbix. Для вызова этого скрипта из Zabbix нужно исопльзовать параметр domainexpire.

Перезапустите агента:

$ sudo service zabbix-agent restart

Проверьте, что агент zabbix может получить данные через новый параметр. Для тестирования агента используется утилита zabbix-get:

$ sudo apt install zabbix-get
$ zabbix_get -s 127.0.0.1 -p 10050 -k domainexpire[winitpro.ru]

Если вы все настроили правильно, команда должна вернуть количество дней до окончания срока регистрации домена.

zabbix_get проверка внешнего скрипта

Теперь добавьте новый шаблон CheckDomainExpiration для мониторинга сроков делегирования доменов в Zabbix.

На вкладке items добавьте параметр

  • Имя: Cрок регистрации домена {$DOMAINNAME}
  • Type: Zabbix Agent
  • Key:
    domainexpire[{$DOMAINNAME}]
  • Type of information: Numeric (unsigned)
  • Update Interval: 1d
  • History: 90d
  • Trenfd: 365d

Создать шаблон zabbix CheckDomainExpiration

Теперь добавьте новый триггер

  • Name: Срок регистрации домена {$DOMAINNAME} заканчивается
  • Expression:
    last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])
  • Severity: High

Такой триггер буде срабатывать, если до окончания срока регистрации домена осталось менее 39 дней.

Можно сразу добавить параметр триггера для восстановления:

Recovery expression:
last(/CheckDomainExpiration/domainexpire[{$DOMAINNAME}])>=40

триггер zabbix для оповещения об окончании срока регистрации домена

Теперь добавьте в Zabbix новый хост для вашего доменного именис с типом интерфейса Agent.

На вкладке Macros нужно указать имя домена, срок регистрации которого вы хотите отслеживать:

  • Macro:
    {$DOMAINNAME}
  • Value:
    winitpro.ru

добавить макрос в zabbix

Назначьте хосту ранее созданный шаблон CheckDomainExpiration.

В нашем шаблоне срок регистрации домена проверяется раз в сутки. Чтобы получить данные из whois немедленно, найдите ваш параметр на вкладке хоста и нажмите Execute Now.

обновить данные в zabbix немедленно

Теперь проверьте Latest Data. Zabbix показывает, что срок регистрации вашего домена истекает через 39 дней.

проблема в zabbix - срок регистрации домена истекает через 30 дней
Сработал триггер, который отправил уведомление на email или в telegram и показал проблему на дашборде. По аналогии добавьте через Hosts все домены, срок регистрации которых нужно отслеживать.

d0bcd0bed0bdd0b8d182d0bed180d0b8d0bdd0b3 d181d180d0bed0bad0b0 d180d0b5d0b3d0b8d181d182d180d0b0d186d0b8d0b8 d0bed181d0b2d0bed0b1d0be 65d21538e9838

Debian
Мониторинг срока регистрации (освобождения) домена в Zabbix