====== Мониторинг срока действия 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 - Остальное, на своё усмотрение.