Мониторинг срока действия сертификата веб-сайта в zabbix

Print Friendly, PDF & Email

Задача:

Настроить мониторинг срока действия сертификата веб-сайта в zabbix.

---------------------------------------------------------------

Для сайта osBSD.com настроен Let’s Encrypt сертификат, который автоматически продлевается каждые три месяца при помощи ACME.

Статьи где я настраивал Let’s Encrypt на других систем:

И так есть сертификат, который будет действителен ещё более одного месяца.

Для мониторинга общих задач, не требующих быстрого реагирования, я обычно использую отдельный прокси заббикса на виртуальной машину в интернете или непосредственно сам zabbix сервер при небольшой сети или нагрузках.

Я буду использовать сервер забиска версии 5.2.3

[root@appliance zabbix]# zabbix_server -V
zabbix_server (Zabbix) 5.2.3
Revision ae46273eae 21 December 2020, compilation time: Dec 21 2020 15:02:06

Copyright (C) 2020 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).

Compiled with OpenSSL 1.1.1c FIPS  28 May 2019
Running with OpenSSL 1.1.1g FIPS  21 Apr 2020
[root@appliance zabbix]#

Авторизуемся на нём и проверяем версию агента

[root@appliance scripts]# zabbix_agentd -V
zabbix_agentd (daemon) (Zabbix) 5.2.3
Revision ae46273eae 21 December 2020, compilation time: Dec 21 2020 15:02:38

Copyright (C) 2020 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).

Compiled with OpenSSL 1.1.1c FIPS  28 May 2019
Running with OpenSSL 1.1.1g FIPS  21 Apr 2020
[root@appliance scripts]#

Начиная с версии 5 параметр EnableRemoteCommands устаревает , поэтому он больше не рекомендуется и в конечном итоге перестанет работать по мере обновления версии. Добавляем параметр AllowKey = system.run [*] и комментируем DenyKey. Но он может быть уже быть комментированным. Более подробно можно найти в официальной документации по запросу «ОГРАНИЧЕНИЕ ПРОВЕРОК АГЕНТА»

Пробуем узнать до какого числа действует сертификат

[root@appliance scripts]# echo | openssl s_client -servername osbsd.com -connect osbsd.com:443 2>/dev/null | openssl x509 -noout -dates | grep "notAfter" | cut -d'=' -f2
May 17 10:06:52 2021 GMT
[root@appliance scripts]#

В папке с настройками заббикса я создал папку для скриптов

[root@appliance zabbix]# mkdir /etc/zabbix/scripts
[root@appliance zabbix]# cd scripts/
[root@appliance scripts]# vi checkssl.sh

содержимое скрипта

data=`echo | openssl s_client -servername $1 -connect $1:${2:-443} 2>/dev/null | openssl x509 -noout -enddate | sed -e 's#notAfter=##'`
ssldate=`date -d "${data}" '+%s'`
nowdate=`date '+%s'`
diff="$((${ssldate}-${nowdate}))"
echo $((${diff}/24/3600))

Сохраняем скрипт и выдаём необходимые права

[root@appliance scripts]# chmod a+x checkssl.sh
[root@appliance scripts]# chown -R zabbix. /etc/zabbix/scripts
[root@appliance scripts]# systemctl restart zabbix-agent
Job for zabbix-agent.service failed because the control process exited with error code.
See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.
[root@appliance scripts]# 

Проверяем работы скрипта. Можно указывать порт, если он отличен от стандартного.

[root@appliance scripts]# ./checkssl.sh osbsd.com 443
43
[root@appliance scripts]# ./checkssl.sh osbsd.com
43
[root@appliance scripts]#

Теперь открываем, веб-интерфейс забикса, переходим в настройки, выбираем заббикс сервер и добавляем item

Копируем ключь для проверки

system.run[/etc/zabbix/scripts/checkssl.sh osbsd.com 443]

Заполняем все согласно картинки ниже.

Если правильно настроили в последних данных можно проверить работу мониторинга.

Параметр «Update interval» равный 10 секунд был установлен для тестирование и настройки. Проверять срок действия сертификата достаточно один раз в день, устанавливаем 1d.

Для кириллических доменов необходимо использовать конвертер punycode. В сети их много, ищите что то подобное этому.

Если возникли ошибки. Попробуйте перенастроить конфиг

AllowKey=system.run[*]
DenyKey=*

Должно получится

В завершении нам необходимо настроить тригер. Я уже описывал настройку в статье по мониторингу доступности сайта «Настройка триггеров для мониторинга сайта в Zabbix» Для мониторинга срока действия ssl сертификата в zabbix я бы уведомлял за месяц.

Создаём новый тригер «Create trigger»

Настройки тригера:

На этом всё. Если у вас не настроено оповещение, можно глянуть «Подключаем Telegram к Zabbix«

Помогла статья? Есть возможность отблагодарить автора

QR Link:

QR Code

Читайте также:

комментария 2

  1. bammbr:

    Ссылки под заголовком
    «Статьи где я настраивал Let’s Encrypt на других систем:»
    все пустые, кроме первой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *