ssl_exporter
Репозиторий: ribbybibby/ssl_exporter
Экспортер представляет собой бинарный файл, который может быть запущен как процесс или как сервис.
Запуск через агент мониторинга
Для запуска экспортера через агент необходимо:
Скопировать бинарник экспортера в папку
exporters(указывается в конфигурации агента в полеexporters.directory)Скопировать конфигурационный файл в папку, указанную в аргументах запуска экспортера
Описание работы
Экспортер — это стандартный Prometheus-экспортер с HTTP-сервером для отображения метрик. Он включает:
Эндпойнт
/metricsдля стандартных метрик (go, proc, promhttp) и характеристик работы SSL экспортераОтдельные эндпойнты для каждого удаленного хоста, например:
/probe?module=https&target=mail.ru
Примеры метрик
Название метрики (пример метрики) |
Описание |
|---|---|
|
Информация об экспортере |
|
Дата окончания действия сертификата |
|
Статус OCSP проверки |
|
Статус probe |
|
Дата окончания действия сертификатов в цепочке |
Настройка запуска через агент мониторинга
Раздел exporters
exporters:
- name: ssl-exporter
is_custom: true
args: "--config.file=./exporters/ssl-exporter.yml"
health_address: 127.0.0.1:9219/metrics
name- должно совпадать с именем бинарного файла (например,astramon-ssl-exporter-custom)is_custom- указывает, что это сторонний экспортер, но агент может управлять им (запускать, делать health check, останавливать и сообщать статус работы экспортера в Config API)args- путь к конфигурационному файлу экспортера
Раздел metrics
custom_targets:
- name: ssl_exporter1
component: mail.ru
target: 127.0.0.1:9219
metrics_path: /probe?target=mail.ru:443
labels:
ssl_type: web
- name: ssl_exporter2
component: local_pem_file
target: 127.0.0.1:9219
metrics_path: /probe?module=file&target=/etc/ssl/*.pem
labels:
ssl_type: file
name- уникальное имя (требованиеvmagent)component- лейбл для различения метрик по таргетамtarget- адрес и порт экспортераmetrics_path- эндпойнт для сбора метрикssl_type- разделение проверок сертификатов (например,webилиfile)
Настройка конфигурационного файла экспортера
Пример конфигурационного файла:
modules:
https:
prober: https
https_insecure:
prober: https
tls_config:
insecure_skip_verify: true
tcp:
prober: tcp
tcp_client_auth:
prober: tcp
tls_config:
ca_file: /home/agladkov/temp/agent/GlobalSignRSA2018.crt
tcp_client_auth_error:
prober: tcp
tls_config:
ca_file: /home/agladkov/temp/agent/ca.crt
file:
prober: file
file_ca_certificates:
prober: file
target: /home/agladkov/temp/agent/ca.crt
Ключевые моменты:
Каждый модуль содержит настройки для запроса при использовании его имени в probe (например,
/probe?module=https_insecure&target=test.local.ru)https_insecure- проверяет самоподписные сертификаты, отключая проверку центром сертификацииtcp_client_auth- проверяет сертификат на подпись конкретным центром сертификации. Если он не совпадет, получимssl_probe_success 0Все используемые типы probe должны быть явно указаны в конфигурации