SSL (TLS) сертификаты стали важным компонентов современной инфраструктуры, поэтому администраторам нужно следить за тем, чтобы они не истекали и вовремя их обновлять. В этой статье мы покажем, как отслеживать срок действия SSL сертификатов на ваших сайтах с помощью системы мониторинга Zabbix.
В ранних версиях Zabbix для мониторинга SSL сертификатов приходилось использовать консольные скрипты, которые передают значения в Zabbix через UserParameter . В Zabbix Agent 2 появись возможность получения информации о сертификате с помощью встроенного плагина WebCertificate . В этой статье мы рассмотрим оба способа мониторинга срока действия SSL.
Плагин WebCertificate, который позволяет получать информацию о сертификатах сайтах, доступен в Zabbix Agent 2. Проверьте, что на хосте установлена эта версия агента:
$ zabbix_agent2 -V
С помощью утилиты zabbix-get вы можете прямо из консоли воспользоваться плагином WebCertificate для получения информации о сертификате сайта:
$ zabbix_get -s 127.0.0.1 -k web.certificate.get[remontka.com,443]
Команда должна вернуть JSON с атрибутами сертификата указанного сайта.
В современных версиях Zabbix доступен встроенный шаблон “Website certificate by Zabbix agent 2”. Вы можете использовать его для отслеживания сроков действия TLS/SSL сертификатов (или получения другой информации).
127.0.0.1
); {$CERT.WEBSITE.HOSTNAME}
DNS имя хоста, сертификат которого нужно проверить; {$CERT.EXPIRY.WARN}
; {$CERT.WEBSITE.PORT}
; Теперь Zabbix будет оповещать вас, если срок сертификата сайта истекает.
В предыдущих версиях Zabbix вы можете использовать внешние скрипты для получения информации о сертификатах. Для получения данных сертификата сайта можно использовать утилиты openssl.
Создайте файл /usr/lib/zabbix/externalscripts/sslcert_expiration.sh со следующим кодом:
#!/bin/bash_x000D_data=`echo | openssl s_client -servername $1 -connect $1:${2:-443} 2>/dev/null | openssl x509 -noout -enddate | sed -e 's#notAfter=##'`_x000D_ssldate=`date -d "${data}" '+%s'`_x000D_nowdate=`date '+%s'`_x000D_diff="$((${ssldate}-${nowdate}))"_x000D_echo $((${diff}/24/3600))
Разрешите запуск файла:
$ sudo chmod +x /usr/lib/zabbix/externalscripts/sslcert_expiration.sh
Этот скрипт возвращает количество дней, которые остались до окончания срока действия сертификата. Проверьте, что скрипт работает корректно.
$ /usr/lib/zabbix/externalscripts/sslcert_expiration.sh remontka.com 443
Скрипт вернул, что сертификат сайта действителен еще 43 дня.
Теперь с помощью параметра UserParameter нужно разрешить запуск этого пользовательского скрипта агентом Zabbix.
$ sudo mcedit /etc/zabbix/zabbix_agent2.conf
Добавьте строку:
UserParameter=sslcertexpire[*],/usr/lib/zabbix/externalscripts/sslcert_expiration.sh $1 $2
Теперь вы можете выполнить ваш скрипт через агента Zabbix. Для вызова этого скрипта из Zabbix нужно использовать sslcertexpire.
Перезапустите агента:
$ sudo service zabbix-agent2 restart
Проверьте, что агент zabbix может получить данные через новый параметр. Для тестирования агента используется утилита zabbix-get:
$ zabbix_get -s 127.0.0.1 -p 10050 -k sslcertexpire[remontka.com,443]
Теперь добавьте новый шаблон CheckSSLCertExpiration для мониторинга срока действия сертификата в Zabbix.
На вкладке items добавьте параметр
sslcertexpire[{$DOMAINNAME},{$SSL_PORT}]
Теперь добавьте новый триггер
last(/CheckSSLCertExpiration/sslcertexpire[{$DOMAINNAME},{$SSL_PORT}])<20
Такой триггер буде срабатывать, если до окончания срока действия SSL сертификата осталось менее 20 дней.
Можно сразу добавить параметр для триггера восстановления:
Recovery expression: last(/CheckSSLCertExpiration/sslcertexpire[{$DOMAINNAME},{$SSL_PORT}])>20
Теперь добавьте в Zabbix новый хост для вашего сайта с типом интерфейса Agent.
На вкладке Macros нужно добавить два параметра: имя сервера и порт, на котором нужно проверять SSL сертификит:
{$DOMAINNAME}
remontka.com
и
{$SSL_PORT}
443
Назначьте хосту ранее созданный шаблон CheckSSLCertExpiration.
Теперь проверьте Latest Data. Zabbix показывает, что SSL сертификат сайте истечет через 43 дня.
Можете дополнительно настроить отправку оповещений на email или в Telegram ответственных лиц, о том, что скоро нужно обновить или продлить SSL сертификат.
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…