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

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

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

service:
  service_profile_status_prometheus:

Каждый сервис представляет собой последовательность, включающую в себя следующие параметры:

  • id

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

    Значение параметра id должно быть уникальным.

    Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание " _ ".

    Количество сервисов ограничено одним.

    - id: 1
      ...      
    

    Тип параметра: текстовое значение.

  • name

    Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций.

    Значение параметра name должно быть уникальным.

    Обязательно в случае:

    optional:
      event_hook:
        ...
    

    Тип параметра: строковое значение.

    По умолчанию: значение задается пользователем.

  • profile_version

    В значении параметра определяется версия профиля данного сервиса.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • description

    Параметр предназначен для хранения строки с описанием сервиса.

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

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • listen

    Последовательность, включающая в себя параметры, описанные в разделе "Параметр listen".

    Тип параметра: последовательность параметров и их значения.

    По умолчанию: значения последовательности задаются пользователем.

  • url

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

    Параметр url является обязательным.

    Тип параметра: строковое значение.

  • auth_basic

    В значении параметра определяется название области, защищенной auth_basic.

    Параметр auth_basic является обязательным.

    Тип параметра: текстовое значение.

  • auth_basic_user_file

    В значении параметра определяется путь к файлу, содержащему пару пользователь/пароль.

    Параметр auth_basic является обязательным.

    Тип параметра: текстовое значение.

ProfileStatusPrometheus - optional#

В разделе приведено описание опциональных параметров для сервиса ProfileStatusPrometheus.

  • 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.

    По умолчанию:

    group_access_log: false
    
  • log_format

    В значении параметра указывается формат логирования.

    Тип параметра: текстовое значение.

    По умолчанию: значение по умолчанию отсутствует.

  • client_header_timeout

    В значении параметра указывается таймаут при чтении заголовка запроса клиента.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию:

    client_header_timeout: 60s
    
  • client_body_timeout

    В значении параметра указывается таймаут при чтении тела запроса клиента.

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию:

    client_body_timeout: 60s
    
  • keepalive_timeout

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

    Тип параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию:

    keepalive_timeout: 1h
    
  • keepalive_time - ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.

    Возможные значения: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию: 1h.

  • keepalive_requests

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

    Типа параметра: целочисленное значение.

    По умолчанию:

    keepalive_requests: 10000
    
  • send_timeout_to_client

    В значении параметра указывается таймаут при передаче ответа клиенту.

    Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями записями.

    Если по истечении этого времени клиент ничего не примет, соединение будет закрыто.

    Типа параметра: текстовое значение с суффиксом:

    • ms - миллисекунда;

    • s - секунда;

    • m - минута;

    • h - час;

    • d - день;

    • w - неделя;

    • M - месяц (30 дней);

    • y - год (365 дней).

    По умолчанию:

    send_timeout_to_client: 60s
    

Пример профиля с конфигурацией 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.

Пример конфигурации 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: 'name1'
      password: 'password1'
    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: name1
    password: <secret>
  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.