ssl_exporter


Экспортер представляет собой бинарный файл, который может быть запущен как процесс или как сервис.

Запуск через агент мониторинга

Для запуска экспортера через агент необходимо:

  1. Скопировать бинарник экспортера в папку exporters (указывается в конфигурации агента в поле exporters.directory)

  2. Скопировать конфигурационный файл в папку, указанную в аргументах запуска экспортера


Описание работы

Экспортер — это стандартный Prometheus-экспортер с HTTP-сервером для отображения метрик. Он включает:

  • Эндпойнт /metrics для стандартных метрик (go, proc, promhttp) и характеристик работы SSL экспортера

  • Отдельные эндпойнты для каждого удаленного хоста, например: /probe?module=https&target=mail.ru

Примеры метрик

Название метрики (пример метрики)

Описание

ssl_exporter_build_info (ssl_exporter_build_info{branch="tags/v2.4.3",goarch="386",...} 1)

Информация об экспортере

ssl_cert_not_after (ssl_cert_not_after{cn="mail.ru",...} 1.728137453e+09)

Дата окончания действия сертификата

ssl_ocsp_response_status (ssl_ocsp_response_status 0)

Статус OCSP проверки

ssl_probe_success (ssl_probe_success 1)

Статус probe

ssl_verified_cert_not_after (ssl_verified_cert_not_after{chain_no="0",...} 1.728137453e+09)

Дата окончания действия сертификатов в цепочке


Настройка запуска через агент мониторинга

Раздел 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 должны быть явно указаны в конфигурации