Я пошел вторым путем, т.к. в моем случае сертификатов меньше чем хостов и опрос непосредственно файлов сертификатов мне показался более надежным.
Добавлять новые сертификаты в 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
Прототип айтемов
И прототип триггера
Ваш дедушка/





 
Комментариев нет:
Отправить комментарий