Тип сервиса 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: falselog_format
В значении параметра указывается формат логирования.
Тип параметра: текстовое значение.
По умолчанию: значение по умолчанию отсутствует.
client_header_timeout
В значении параметра указывается таймаут при чтении заголовка запроса клиента.
Тип параметра: текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию:
client_header_timeout: 60sclient_body_timeout
В значении параметра указывается таймаут при чтении тела запроса клиента.
Тип параметра: текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию:
client_body_timeout: 60skeepalive_timeout
В значении параметра указывается таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера.
Тип параметра: текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию:
keepalive_timeout: 1hkeepalive_time - ограничивает максимальное время, в течение которого могут обрабатываться запросы в рамках keep-alive соединения. По достижении заданного времени соединение закрывается после обработки очередного запроса.
Возможные значения: текстовое значение с суффиксом:
ms - миллисекунда;
s - секунда;
m - минута;
h - час;
d - день;
w - неделя;
M - месяц (30 дней);
y - год (365 дней).
По умолчанию: 1h.
keepalive_requests
В значении параметра указывается максимальное число запросов, которые можно сделать по одному keep-alive соединению.
Типа параметра: целочисленное значение.
По умолчанию:
keepalive_requests: 10000send_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.