linux:programs:zabbix:ssl-monitor
Мониторинг срока действия SSL сертификат для сайтов
Мониторинг сертификатов можно привязать к любому linux хосту, я использую zabbix-server.
Для удобства, использую узел только для мониторинга SSL, который является копией zabbix-server'а с единственным шаблоном, SSL.
- Создать файл ssl_discovery.sh по пути /etc/zabbix со следующим содержимым:
#!/bin/bash DOMAINS_FILE="/etc/zabbix/ssl_domain.txt" echo "{" echo " \"data\": [" first=1 while IFS= read -r line; do if [ -n "$line" ]; then if [ $first -eq 0 ]; then echo "," fi echo " { \"{#DOMAIN}\": \"$line\" }" first=0 fi done < "$DOMAINS_FILE" echo " ]" echo "}"
- Сделать исполняемым.
- Создать файл ssl_domain.txt по пути /etc/zabbix
- Выдать права на файл ssl_domain.txt и ssl_discovery.sh пользователю zabbix
- Добавить в zabbix_agentd.conf строки:
UserParameter=ssl.discovery,/etc/zabbix/ssl_discovery.sh UserParameter=site.time[*],openssl s_client -servername $1 -connect $1:443 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2 | { read gmt ; echo $(( ($(date -d "$gmt" +%s) - $(date +%s)) / 86400 )) ; }
- Перезапустить zabbix-agentd
- Создать шаблон «SSL»
- Добавить Правило обнаружения:
- Имя Estimate-time SSL
- Ключ ssl.discovery
- Интервал обновления 1d
- Остальное, на своё усмотрение.
- Создать прототип элемента данных
- Имя {#DOMAIN} SSL Estimate
- Ключ site.time[{#DOMAIN}]
- Интервал обновления 1d
- Остальное, на своё усмотрение.
linux/programs/zabbix/ssl-monitor.txt · Последнее изменение: 2025/06/03 18:46 — admin