↩️
Назад
Категории
Все категории
1С
AD
CG
IOT умный дом
Joomla
Linux
macOS
mysql
php
python
SEO
Web-разработка
Windows
zabbix
Безопасность
Железо
Защита данных
Нейросети
Простотак
Сети LAN
Софт
Электрика
Электроника
эпоха 2040
Скрипт для проверки даты окончания оплаты домена в забикс
28.07.2025 | коды из категории: Linux
Полное руководство по мониторингу доменов в Zabbix
Автоматизируем контроль за сроком окончания регистрации доменных имен
Введение
В этой статье я подробно расскажу, как настроить автоматический мониторинг даты окончания регистрации доменов в системе Zabbix. Это решение особенно полезно для:
Администраторов, управляющих множеством доменов
Веб-студий и хостинг-провайдеров
Компаний, для которых критически важна бесперебойная работа сайтов
Требования
Перед началом работы убедитесь, что у вас есть:
Установленный сервер Zabbix версии 6.0 или новее
Доступ к командной строке сервера с правами root/sudo
Установленный whois-клиент (whois)
Базовые знания работы с Linux-консолью
Пошаговая реализация
1. Создаем скрипт для проверки whois
Создадим файл скрипта в папке внешних скриптов Zabbix:
sudo nano /usr/lib/zabbix/externalscripts/check_domain_expiry.sh
Добавьте следующий код:
#!/bin/bash
DOMAIN="$1"
# Для .ru доменов ищем "paid-till"
if [[ "$DOMAIN" =~ \.ru$ ]]; then
EXPIRY_DATE=$(whois "$DOMAIN" | grep -i "paid-till" | awk -F: '{print $2}' | xargs | cut -d 'T' -f1)
else
# Для остальных доменов ищем стандартные поля
EXPIRY_DATE=$(whois "$DOMAIN" | grep -Ei "Expiration Date:|Registry Expiry Date:|expires:|Expiry Date:" | head -1 | awk -F: '{print $2}' | >
fi
# Пытаемся преобразовать дату в формат YYYY-MM-DD
if [[ "$EXPIRY_DATE" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
echo "$EXPIRY_DATE"
else
# Пробуем другие форматы (например, "28-Dec-2025")
EXPIRY_DATE=$(date -d "$EXPIRY_DATE" +"%Y-%m-%d" 2>/dev/null)
if [ -z "$EXPIRY_DATE" ]; then
echo "2099-12-31" # Возвращаем далёкую дату, если парсинг не удался
else
echo "$EXPIRY_DATE"
fi
fi
Даем скрипту права на выполнение:
sudo chmod +x /usr/lib/zabbix/externalscripts/check_domain_expiry.sh
sudo chown zabbix:zabbix /usr/lib/zabbix/externalscripts/check_domain_expiry.sh
2. Настраиваем Zabbix агент
Открываем конфигурационный файл агента:
sudo nano /etc/zabbix/zabbix_agentd.conf
Добавляем строку:
UserParameter=domain.expiry[*], /usr/lib/zabbix/externalscripts/check_domain_expiry.sh "$1"
Перезапускаем агент:
sudo systemctl restart zabbix-agent
3. Проверяем работу скрипта
Выполните команду:
sudo -u zabbix /usr/lib/zabbix/externalscripts/check_domain_expiry.sh example.com
Ожидаемый вывод - дата в формате ГГГГ-ММ-ДД или ERROR в случае проблем.
4. Создаем элемент данных в Zabbix
Зайдите в веб-интерфейс Zabbix
Перейдите: Configuration → Hosts
Выберите нужный хост или создайте новый
Нажмите "Items" → "Create item"
Заполните поля:
Name: Domain expiry date for example.com
Type: Zabbix agent
Key: domain.expiry[example.com]
Type of information: Text
Update interval: 1d
Сохраните элемент данных
5. Настраиваем триггер для оповещений
Перейдите: Configuration → Hosts → Triggers
Нажмите "Create trigger"
Заполните поля:
Сохраните триггер
6. Настраиваем оповещения
Перейдите: Configuration → Actions
Создайте новое действие (Action)
Настройте условия (например, срабатывание по вашему триггеру)
Добавьте операцию (Operation) с отправкой email/telegram/sms
Сохраните действие
Возможные проблемы и решения
1. Скрипт возвращает ERROR
Причина: whois-запрос не вернул дату или она в неожиданном формате.
Решение: Проверьте вручную вывод whois для вашего домена и при необходимости доработайте скрипт.
2. Элемент данных не получает значения
Причина: Проблемы с правами или конфигурацией агента.
Решение:
Проверьте логи агента: tail -f /var/log/zabbix/zabbix_agentd.log
Убедитесь, что скрипт работает от пользователя zabbix: sudo -u zabbix /usr/lib/zabbix/externalscripts/check_domain_expiry.sh example.com
Проверьте наличие UserParameter в конфиге агента
3. Триггер не срабатывает
Причина: Неправильный тип данных или формат даты.
Решение:
Убедитесь, что тип элемента данных - Text
Проверьте, что дата возвращается в формате ГГГГ-ММ-ДД
Добавьте проверку на ошибки в выражении триггера
Заключение
Настроив мониторинг доменов в Zabbix по этой инструкции, вы сможете:
Автоматически отслеживать сроки окончания регистрации
Получать своевременные уведомления
Избежать проблем с приостановкой работы сайтов
Для расширения функционала можно:
Добавить мониторинг нескольких доменов через шаблоны
Настроить эскалацию оповещений
Интегрировать с календарем или системой задач
Категории:
Категории
Все категории
1С
AD
CG
IOT умный дом
Joomla
Linux
macOS
mysql
php
python
SEO
Web-разработка
Windows
zabbix
Безопасность
Железо
Защита данных
Нейросети
Простотак
Сети LAN
Софт
Электрика
Электроника
эпоха 2040
← Назад к списку