Комментарии 13
на мой взгляд в заголовке ошибка: "Grafana: искусство мониторинга сертификатов" -> "Prometheus: искусство мониторинга сертификатов", т.к. МОНИТОРИНГ будет работать и без Grafana
а еще я бы использовал https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md#tls_config в качестве основы (более того, уже был материал на эту тему - https://habr.com/ru/companies/hostkey/articles/729898/)
А зачем мониторить то, что должно автоматически обновляться, например тем же certbot?
А вот отказ/просрочка обновления сертификата мониторить интересно.
Ну так с тем же certbot / acme.sh что-то пойти не так может как минимум на трёх этапах:
не отработал сам certbot / acme.sh (используемый по умолчанию последним zerossl, скажем, в один прекрасный момент прекратил выдачу сертификатов для доменов ru);
не отработало преобразование сертификатов в форматы, необходимые разным сервисам (кому-то Java keystore подавай, кому-то что-то ещё);
не отработало копирование сертификатов с сервера, на котором мы обновляем сертификаты, на серверы, где они используются (Ansible playbook или что там для этого используется).
У меня это всё автоматизировано через тот самый Ansible, скажем, но всегда полезно заранее узнать, если что-то не так.
Мониторить нужно все работа чего для вас важна. Непротухшие сертификаты точно важны. Мало ли что пошло не так. Всякое бывает в этом мире.
Капец, что только не наворотят, лишь бы скрипты на баше не писать. (шутка).
У меня несколько источников. Папка с сертификатами, секреты в опенщифте, сертификаты в роутах, наконец урл-ы. Секреты могут лежать в p12 или jks формате, с разными паролями.
Не знаю, зачем для мониторинга поднимать пачку компосов и сервисов. Скрипт на баше, который пробегает по всему, генерирует удобный html отчет, параллельно может скинуть статистику в инфлюкс для графаны, и отправить алерт на емайл.
Для тех, у кого автоматом цертбот - есть конторы, где сертификаты выдает корпоративный авторити. К нему может существовать какой-нить API, а может наоборот существовать только бюрократизированный подход с ручным аппрувалом. Поэтому мониторинг не равен автозамене, и может быть важен.
У меня все TLS сертификаты от Let's Encrypt и алерты о том, что скоро один из них истечет приходят на почту которую я указал при создании.
Есть также сертификаты, созданные в Yandex Cloud, туда же можно добавить свои собственные. И через систему мониторинга облака накинуть алерт. Единственный минус - алерт будет приходить либо как push уведомление, либо как смс.
Непонятно, зачем нужен отдельный питон-сервис, если алертменеджер сам умеет в телегу и в тексте даже есть прямая ссылка на <telegram_config>
Если уж Grafan'у использовать, то лучше её внутренний Alertmanager, как по мне. Интерфейс почеловечнее, да и можно к дашборду прицепить проще
Да, удобнее. И алерты прямо из панелей создавать удобно, PromQL запрос сразу переносится и ссылка на дашборд прикрепляется. У меня у самого именно так.
Но вот если масштабироваться и Prometheus'ов будет уже несколько, а Grafana на них одна - то использование её встроенного алертинга снижает надёжность такой системы.
Я бы для таких джоб не использовал глобальный scrape_interval, один раз в полчаса-час вполне достаточно.
Будь всегда в курсе: мониторим сертификаты с помощью Prometheus и Telegram