Как мониторить срок истечения SSL-сертификата Let's Encrypt в Zabbix, чтобы получать уведомления заранее?
Создаем кастомный скрипт для проверки даты и интегрируем его через Zabbix Agent.
На сервере с сертификатом выполняем:
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
Редактируем конфиг агента:
sudo nano /etc/zabbix/zabbix_agentd.conf
Добавляем в конец:
UserParameter=ssl.cert.expiry,/usr/local/bin/check_cert_expiry.sh
Перезапускаем агент:
sudo systemctl restart zabbix-agent
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
0 3 * * * certbot renew --quiet --post-hook "systemctl reload nginx"
Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах —
вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.
Комментарии
Пока нет комментариев. Будьте первым!