Как мониторить срок истечения 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"
Комментарии
Пока нет комментариев. Будьте первым!