Я пошел вторым путем, т.к. в моем случае сертификатов меньше чем хостов и опрос непосредственно файлов сертификатов мне показался более надежным.
Добавлять новые сертификаты в Zabbix будет скрипт автообнаружения. Опрашивать будем не все лежащие на сервере сертификаты, а будем искать в файлах конфигураций веб-сервера(в моем случае Nginx) только используемые.
Создаем скрипт certdiscovery.sh в папке /etc/zabbix/scripts
#!/bin/bash
certs=`grep -v "ssl_certificate " /etc/nginx/conf.d/* |sed -n 's/.*ssl_certificate *//p' |sed 's/\.[^.]*$//;s/.*\///' |tr -d ";"`
if [[ -n ${certs} ]]; then
JSON="{ \"data\":["
for CRT in ${certs}; do
JSON=${JSON}"{ \"{#CERTIFICATE}\":\"${CRT}\"},"
done
JSON=${JSON}"]}"
echo ${JSON}|sed '$s/,]}$/]}/'
fi
И скрипт опроса сертификатов certdate.sh
#!/bin/bash
CERT=/etc/nginx/cert/$1.crt
end_date=`openssl x509 -noout -enddate -in $CERT | cut -d '=' -f 2`
if [ -n "$end_date" ]
then
end_date_seconds=`date '+%s' --date "$end_date"`
now_seconds=`date '+%s'`
echo "($end_date_seconds-$now_seconds)/86400" | bc
fi
Делаем их исполняемыми
chmod +x /etc/zabbix/scripts/certdiscovery.sh
chmod +x /etc/zabbix/scripts/certdate.sh
В настройки zabbix агента добавляем
UserParameter=certdiscovery, /etc/zabbix/scripts/certdiscovery.sh
UserParameter=certdate[*],sudo /etc/zabbix/scripts/certdate.sh $1
Далее создаем автообноржение в zabbix
Прототип айтемов
И прототип триггера
Ваш дедушка/
Комментариев нет:
Отправить комментарий