Тип сервиса ProfileStatusPrometheus#

Экземпляр типа сервиса service_profile_status_prometheus предназначен для мониторинга и оповещения о событиях в формате Prometheus.

В контексте service объявляется тип сервиса, соответствующий service_profile_status_prometheus:

service:
  service_profile_status_prometheus:

ProfileStatusPrometheus - основные параметры#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

id

Обязательный

Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлов. Значение должно быть уникальным. Количество сервисов ограничено одним

Текстовое значение (строка, число или их комбинация, разделитель — «_»)

—

name

Опциональный

Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций. Значение должно быть уникальным. Обязательно, если указан optional/event_hook

Строковое значение

—

profile_version

Опциональный

Версия профиля данного сервиса

Текстовое значение

—

description

Опциональный

Строка с описанием сервиса. Значение не является уникальным

Текстовое значение

—

listen

Опциональный

Настройки прослушивания

Последовательность параметров, описанных в разделе Параметр listen

—

url

Обязательный

Относительный url, на котором будет работать сервис. Есть возможность использовать регулярное выражение. Играет роль фильтра для входящих запросов

Строковое значение

—

auth_basic

Обязательный

Название области, защищенной auth_basic

Текстовое значение

—

auth_basic_user_file

Обязательный

Путь к файлу, содержащему пару пользователь/пароль

Текстовое значение

—

ProfileStatusPrometheus - optional#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

log_level

Опциональный

Переопределение уровня логирования для сервиса

debug, info, notice, warn, error, crit, alert, off

Наследуется от значения в system

group_access_log

Опциональный

Группировка access журналов по кодам состояния (2xx, 3xx, 4xx, 5xx, 404, 413, 429, 499, 500)

true, false

false

log_format

Опциональный

Формат логирования

Текстовое значение

—

client_header_timeout

Опциональный

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

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

client_body_timeout

Опциональный

Таймаут при чтении тела запроса клиента

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

keepalive_timeout

Опциональный

Таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

1h

keepalive_time

Опциональный

Максимальное время обработки запросов в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

1h

keepalive_requests

Опциональный

Максимальное число запросов, которые можно сделать по одному keep-alive соединению

Целочисленное значение

10000

send_timeout_to_client

Опциональный

Таймаут при передаче ответа клиенту (между двумя операциями записями). Если по истечении этого времени клиент ничего не примет, соединение будет закрыто

Текстовое значение с суффиксом: ms, s, m, h, d, w, M, y

60s

opentelemetry_tracing

Опциональный

Секция параметров телеметрии

Параметры, описанные в разделе Параметр opentelemetry_tracing

—

Пример профиля с конфигурацией Prometheus:

service_profile_status_prometheus:
  - id: prometheus
    name: status.service
    description: promtheus metrics
    url: /status/prometheus
    auth_basic: metrics
    auth_basic_user_file: hashed_passwords.data
    listen:
    - port: XXXX
      address: 10.Y.Y.Y
      ssl:
        certificate: new.crt
        certificate_key: new.key
        verify_client: on
        client_certificate: new.crt 

В примере выше, на порту XXXX по адресу 10.Y.Y.Y будет поднят сервис с basic аутентификацией (то есть требующий использования пары логин-пароль для получения информации) и проверкой клиентского сертификата, при обращении к которому возможно получать метрики SOWA в формате prometheus. Описание метрик в формате Prometheus приведено в разделе Метрики агента мониторинга SOWA для Prometheus.

Пример конфигурации jobs для сервера prometheus (prometheus.yml):

- job_name: 'sowa-nginx'
  metrics_path: '/status/prometheus'
  scheme: https
  tls_config:
    ca_file: /home/sowaroot/new.crt
    cert_file: /home/sowaroot/new.crt
    key_file: /home/sowaroot/new.key
    insecure_skip_verify: true
  basic_auth:
    username: 'login_example'
    password: 'password_example'
  scrape_interval: 5s
  static_configs:
    - targets: ['10.Y.Y.Y:XXXX']

Пример конфигурации jobs для сервера Prometheus (вид во вкладке Configuration web prometheus):

- job_name: sowa-nginx
  honor_timestamps: true
  scrape_interval: 5s
  scrape_timeout: 5s
  metrics_path: /status/prometheus
  scheme: https
  basic_auth:
    username: login_example
    password: <password_example>
  tls_config:
    ca_file: /home/sowaroot/new.crt
    cert_file: /home/sowaroot/new.crt
    key_file: /home/sowaroot/new.key
    insecure_skip_verify: true
  follow_redirects: true
  static_configs:
  - targets:
    - 10.Y.Y.Y:XXXX

Создание файла с учетной записью:

sudo htpasswd -c hashed_passwords.data user1

Далее нажать Enter и ввести пароль для user1.