Категории

Добавление информации о дате сертификата в забиксе

2025-05-30 14:56:16 | Статья из категории: Linux

скрипт для мониторинга времени сертификата сервера в забикс

Проблема

Как мониторить срок истечения SSL-сертификата Let's Encrypt в Zabbix, чтобы получать уведомления заранее?

Решение

Создаем кастомный скрипт для проверки даты и интегрируем его через Zabbix Agent.

⏱️ Время настройки: 15 минут | Уровень: 🟢 Начинающий

📌 Шаг 1: Создаем скрипт проверки

На сервере с сертификатом выполняем:

sudo nano /usr/local/bin/check_cert_expiry.sh

Содержимое скрипта:

#!/bin/bash
CERT_PATH="/etc/letsencrypt/live/ВАШ_ДОМЕН/fullchain.pem"

if [ -f "$CERT_PATH" ]; then
  openssl x509 -in "$CERT_PATH" -text -noout | grep "Not After" | cut -d ":" -f2- | xargs
else
  echo "Certificate not found"
fi

Делаем исполняемым:

sudo chmod +x /usr/local/bin/check_cert_expiry.sh
sudo chown zabbix:zabbix /usr/local/bin/check_cert_expiry.sh

📌 Шаг 2: Настраиваем Zabbix Agent

Редактируем конфиг агента:

sudo nano /etc/zabbix/zabbix_agentd.conf

Добавляем в конец:

UserParameter=ssl.cert.expiry,/usr/local/bin/check_cert_expiry.sh

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

sudo systemctl restart zabbix-agent

📌 Шаг 3: Добавляем Item в Zabbix

  1. Идем в Configuration → Hosts
  2. Выбираем нужный хост → ItemsCreate item
  3. Заполняем:
    • Name: SSL Certificate Expiry
    • Type: Zabbix agent
    • Key: ssl.cert.expiry
    • Type of information: Text
    • Update interval: 1d
Пример настройки Item

для визуала делаем виджет

как его делать наверное сами занете, но если не знаете вот скриншот мой

Пример настройки виджета

Вот так будет выглядеть

Пример визуального отображения на панели

📌 Шаг 4: Создаем триггер для алертов

  1. Идем в Configuration → Hosts
  2. Выбираем хост → TriggersCreate trigger
  3. Настраиваем:
    Name: SSL Certificate expires soon
    Expression: {host:ssl.cert.expiry.strptime("%b %d %H:%M:%S %Y GMT")-now()}<2592000
    Severity: Warning

    Это будет срабатывать за 30 дней до истечения.

🔍 Проверка работы

Выполните вручную на сервере Zabbix:

zabbix_get -s IP_АГЕНТА -k ssl.cert.expiry

Должны получить дату в формате: Aug 15 23:59:59 2025 GMT

💡 Профессиональные советы

Для нескольких доменов: Модифицируйте скрипт, чтобы он принимал домен как параметр:
UserParameter=ssl.cert.expiry[*],/usr/local/bin/check_cert_expiry.sh $1
Автоматическое обновление: Добавьте в crontab сервера:
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Важно: Блог-эксперимент

Блог только запустил, все статьи генерирую через нейросеть т.к. лень, возможны ошибки. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


кто я | книга | контакты без контактов

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA