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}]
- Интервал обновления 1h
- Остальное, на своё усмотрение.
linux/programs/zabbix/ssl-monitor.1748976406.txt.gz · Последнее изменение: — admin
