Zabbix Мониторинг SSL сертификата сервера агентом

zabbix ssl monitoring

Мониторинг SSL сертификатов один из важных моментов в поддержке серверной инфраструктуры. Легко может случится, что из-за вовремя не продленного сертификата какой-нибудь сервис прекратит работать. Например таким образом ломается работа сервисов Skype For Business как внутри организации между EDGE сервером и FrontEnd, так и при работе с федеративными партнерами. Мониторинг SSL сертификата с помощью Zabbix раньше было костыльным делом, приходилось изобретать различные скрипты. С появлением новой версии Zabbix Agent 2 ситуация улучшилась. Теперь можно мониторить сертификат с помощью встроенного плагина WebCertificate. Ниже опишу личный опыт применения данной возможности, а так же нюансы по которым отказаться полностью от самописных решений пока не удалось.

Минимальные требования для работы

мониторинг ssl сертификата в Zabbix
Подключенный шаблон мониторинга сертификата

Настраивается все очень просто, но чтобы все заработало необходимо соблюсти несколько базовых условий:

  1. Zabbix Server версии 5.4 и выше;
  2. Zabbix Agent 2 последней версии. Мне пришлось обновить агента до последней версии. На момент написания статьи это 5.4.8;
  3. Установить шаблон мониторинга сертификата. Если установка сервера старая и обновлена до последней версии то нужного шаблона в комплекте может не оказаться. Скачать шаблон можно из репозитория Zabbix на github;
  4. Подключить шаблон к хосту;
  5. Прописать макросы;

Настройка макросов для мониторинга

мониторинг валидности ssl сертификата с помощью Zabbix
Макросы для установки параметров мониторинга SSL сертификата в Zabbix

{$CERT.EXPIRY.WARN} — время в днях до истечения срока сертификата для срабатывания тригера и получения уведомления. Если не указывать макрос в хосте будет использовано значение по умолчанию из шаблона 7 дней.

{$CERT.WEBSITE.HOSTNAME} — хостнейм, который необходимо проверять обычно равный CN прописанному в сертификате. Смотрите подробнее в нюансах.

{$CERT.WEBSITE.IP} — адрес к которому необходимо подключаться. Если я правильно понял, например если для сервиса используется некоторое разделение и один и тот же хостнейм указанный в CERT.WEBSITE.HOSTNAME может быть на разных адресах (например адрес sip на frontend сервер и на edge сервере Skype).

{$CERT.WEBSITE.PORT} — Порт по которому проводить проверку. В шаблоне указан 443 по умолчанию, можно поменять указав макрос в параметрах хоста.

Тонкости использования

На время написания статьи я не увидел, или просто не понял как можно мониторить несколько сертификатов на одном хосте. Например в edge скайпа есть сертификат для внутренней коммуникации и внешний для федерации.Аналогично на реверс прокси (или WAP) для каждого внутреннего хоста имеется свой сертификат. Как это делать с помощью агента и описанных возможностей я не увидел, если вы знаете буду признателен за ссылки в комментариях. Такие сертификаты можно проверять старыми самописными решениями см. ниже.

Так же столкнулся с тем, что проверка сертификата доменного центра сертификации получилась не стандартной. В сертификате CN указан не в FQDN формате и он не соответствовал имени хоста центра сертификации. Решилось просто указанием макроса {$CERT.WEBSITE.IP} с адресом на котором висит сервис с сертификатом, а имя для {$CERT.WEBSITE.HOSTNAME} взял из поля CN самого сертификата.

Помимо срока действия сертификата производятся и ряд других проверок, например использование слабых подписей и валидация издателя. Поэтому для проверки сертификата на Linux сервере подписанного доменным центром сертификации необходимо обязательно установить корневой сертификат доменного центра сертификации и перезапустить агента Zabbix. Как установить корневой сертификат писал здесь: SSL в Linux советы и рецепты.

Zabbix Мониторинг SSL сертификата сервера агентом
Данный SSL сертификата собранные агентом Zabbix

На скриншоте выше пример проверки сертификата на Linux сервере до установки корневого сертификата. Сертификат помечен как invalid поскольку плагин не смог проверить издателя. Просто устанавливаем корневой сертификат, перезапускаем агента Zabbix и через некоторое время сертификат проходит проверку успешно.

Самописные решения для мониторинга SSL сертификатов в Zabbix

Стрые решения по прежнему актуальны для проверки сертификатов на устройствах и хостах, куда невозможно установить агента Zabbix, но проверять валидность сертификата необходимо. Я для этих целей пользуюсь решением с сайта Serveradmin: https://serveradmin.ru/monitoring-sroka-deystviya-ssl-sertifikata-v-zabbix/

Решение представляет из себя набор скриптов устанавливаемых непосредственно на сервер Zabbix и далее с помощью openssl происходит проверка срока действия сертификата. Я продолжаю использовать это решение для проверки сертификатов на устройствах и серверах куда невозможно установить агента Zabbix.

Дополнительные материалы по теме SSL

Дополнения приветствуются в комментариях.

Оцените статью
Добавить комментарий

Внимание! Нажимая кнопку "Отправить комментарий" вы соглашаетесь с политикой конфиденциальности сайта.

  1. Владимир

    Точно также сегодня установил все свежие версии агента и шаблона, точно также ломаю голову, как мониторить несколько сертификатов. Пробовал в макросе через запятую прописать, смотрит только на первый в списке.
    Если вдруг выяснишь, как туда несколько сертификатов прописать в макросах, пингани на почту плиз)

    Ответить
    1. dkplayer автор

      Постараюсь не забыть, если пообещаете то же самое 🙂

      Ответить