↩️
Назад
Категории
Все категории
1С
2040
AD
CG
IOT умный дом
Joomla
Linux
macOS
mysql
php
python
SEO
Windows
zabbix
Безопасность
Железо
Защита данных
Нейросети
Простотак
Сети LAN
Создание сайтов
Электрика
Электроника
Скрипт для проверки даты окончания оплаты домена в забикс
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 по этой инструкции, вы сможете:
Автоматически отслеживать сроки окончания регистрации
Получать своевременные уведомления
Избежать проблем с приостановкой работы сайтов
Для расширения функционала можно:
Добавить мониторинг нескольких доменов через шаблоны
Настроить эскалацию оповещений
Интегрировать с календарем или системой задач
Оцените статью
👍 0
👎 0
Всего: 0
Категории:
Категории
Все категории
1С
2040
AD
CG
IOT умный дом
Joomla
Linux
macOS
mysql
php
python
SEO
Windows
zabbix
Безопасность
Железо
Защита данных
Нейросети
Простотак
Сети LAN
Создание сайтов
Электрика
Электроника
← Назад к списку
Комментарии