Конфигурация модуля osmax-observer

Конфигурация модуля osmax-observer выполняется в файле application.properties, помещенном в каталог /opt/osmax-observer. Файл создается автоматически при установке deb-/rpm-пакета osmax-observer и содержит значения по умолчанию или примеры значений.

Перед запуском systemd-службы osmax-observer измените права доступа к конфигурационному файлу, предоставив доступ только для пользователя, от имени которого она будет запускаться.
Пример конфигурационного файла
## This is an example of `application.properties` file as main configuration file for osmax-observer backend

###############################################################################
# HTTP server properties section                                              #
###############################################################################

## Main application port
quarkus.http.port=8083

###############################################################################
# SSL configuration section.                                                  #
###############################################################################

## To enable serving requests via HTTPS uncomment the following parameters:
#quarkus.http.insecure-requests=disabled
#quarkus.http.ssl-port=8082
#quarkus.http.ssl.certificate.key-store-file=/opt/osmax-observer/keystore.jks
#quarkus.http.ssl.certificate.key-store-password=keystore@12345

###############################################################################
# REST clients common configuration                                           #
###############################################################################

## SSL connection parameters sections.
## To enable accessing REST endpoints via HTTPS uncomment two following parameters:
#quarkus.rest-client.trust-store=/etc/ssl/certs/java/cacerts
#quarkus.rest-client.trust-store-password=changeit
## Optionally if the custom truststore is used:
## To change the format use one of JKS, JCEKS, P12, PKCS12, PFX. Default format is JKS
#quarkus.rest-client.trust-store-type=PKCS12
## For disabling SSL connection verification you can use option below
#quarkus.rest-client.remote-access.trust-all=true

###############################################################################
# Database properties section                                                 #
###############################################################################

## Common configuration for datasources
quarkus.datasource.username=<db-username>
quarkus.datasource.password=<db-password>
## Reactive datasource configuration for app
quarkus.datasource.reactive.url=postgresql://<db-host>:<db-port>/<db-name>
## Datasource configuration for Liquibase
quarkus.datasource.jdbc.url=jdbc:postgresql://<db-host>:<db-port>/<db-name>

## If you need to specify multiple datasource connections for load-balancing or working with clustered db use the syntax below
#quarkus.datasource."osmax_observer_db".reactive.url=postgresql://host1:5432/osmax_observer,postgresql://host2:5432/osmax_observer,postgresql://host3:5432/osmax_observer
## Or this can also be written with indexed property syntax
#quarkus.datasource."osmax_observer_db".reactive.url[0]=postgresql://host1:5432/osmax_observer
#quarkus.datasource."osmax_observer_db".reactive.url[1]=postgresql://host2:5432/osmax_observer
#quarkus.datasource."osmax_observer_db".reactive.url[2]=postgresql://host3:5432/osmax_observer

## Liquibase parameters which are used in changelog files
quarkus.liquibase.change-log-parameters.index_tablespace=pg_default
quarkus.liquibase.change-log-parameters.data_tablespace=pg_default

###############################################################################
# Kafka integration section                                                   #
###############################################################################

mp.messaging.connector.smallrye-kafka.bootstrap.servers=<kafka-host>:<kafka-port>
mp.messaging.incoming.events.topic=osmax-observer.events
mp.messaging.incoming.metrics.topic=osmax-observer.metrics

## Kafka SSL connection parameters section.
## To enable SSL connection mode uncomment three following parameters:
#mp.messaging.connector.smallrye-kafka.security.protocol=SSL
#mp.messaging.connector.smallrye-kafka.ssl.truststore.location=/etc/ssl/certs/java/cacerts
#mp.messaging.connector.smallrye-kafka.ssl.truststore.password=changeit
## Optionally if the custom truststore is used:
## To change the format use one of JKS, JCEKS, P12, PKCS12, PFX. Default format is JKS
#mp.messaging.connector.smallrye-kafka.ssl.truststore.type=PKCS12

## To enable mutual TLS connection mode uncomment three following parameters, along with configuration above:
#mp.messaging.connector.smallrye-kafka.ssl.keystore.location=/opt/osmax-observer/keystore.jks
#mp.messaging.connector.smallrye-kafka.ssl.keystore.password=keystore@12345
## Optionally if the custom keystore is used:
## To change the format use one of JKS, JCEKS, P12, PKCS12, PFX. Default format is JKS
#mp.messaging.connector.smallrye-kafka.ssl.keystore.type=PKCS12

###############################################################################
# Security section                                                            #
###############################################################################

## Enable/disable authentication
osmax.observer.security.authentication.enabled=true

## Enable/disable role-based authorization
osmax.observer.security.rbac.enabled=false

## osmax-core base url (source of user permissions info)
# Should be set even if osmax.observer.security.rbac.enabled is false
# To enable access via HTTPS use corresponding prefix in base url
# and configure REST client using REST clients common configuration section above
quarkus.rest-client."tech.inno.osmax.observer.common.security.OsmaxPermissionsService".url=<osmax-core base url>

## Kerberos authentication configuration section
## There are 2 alternative options for defining Kerberos credentials [principal realm, name and password]:
## 1) via setting values in properties directly
## 2) via setting path to keytab file
##
## Direct Kerberos credentials definition:
quarkus.kerberos.service-principal-name=<service_principal_name>
quarkus.kerberos.service-principal-realm=<service.domain>
quarkus.kerberos.service-principal-password=<service_principal_password>
## Direct Kerberos credentials definition for REST client, reuse service settings:
kerberos-client.user-principal-name=${quarkus.kerberos.service-principal-name}
kerberos-client.user-principal-password=${quarkus.kerberos.service-principal-password}
kerberos-client.user-principal-realm=${quarkus.kerberos.service-principal-realm}
kerberos-client.service-principal-name=${quarkus.kerberos.service-principal-name}
## Kerberos keytab file definition:
#quarkus.kerberos.keytab-path=</path/to/keytab/file>
#kerberos-client.keytab-path=</path/to/keytab/file>

## Enables Kerberos authentication debug mode
#quarkus.kerberos.debug=true
#kerberos-client.debug=true
## REST client debug
#quarkus.rest-client.logging.scope=request-response
#quarkus.rest-client.logging.body-limit=50
#quarkus.log.category."org.jboss.resteasy.reactive.client.logging".level=DEBUG

###############################################################################
# Logging section                                                             #
###############################################################################

# Common logging config
quarkus.log.file.enable=true
quarkus.log.json.file.enable=true
quarkus.log.json.console.enable=false

# Json log format config
quarkus.log.json.fields.mdc.flat-fields=true
quarkus.log.json.fields.timestamp.date-format=yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
quarkus.log.json.fields.timestamp.zone-id=UTC

# File logging config
quarkus.log.file.path=/var/log/osmax/observer/osmax-observer.log
quarkus.log.file.rotation.max-file-size=10M
quarkus.log.file.rotation.max-backup-index=5
quarkus.log.file.rotation.file-suffix=.yyyy-MM-dd.gz

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

Подключение к HTTP-серверу

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.http.port

Основной порт подключения

8083

8083

Подключение к HTTPS-серверу

Настройки, описанные в разделе, являются опциональными и используются, только при подключении по протоколу SSL.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.http.insecure-requests

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

  • enabled — HTTP-порт открыт;

  • disabled — HTTP-порт закрыт;

  • redirect — HTTP-порт открыт, но все запросы перенаправляются на HTTPS-порт

disabled

quarkus.http.ssl-port

Порт для подключения к HTTPS-серверу

8082

quarkus.http.ssl.certificate.key-store-file

Путь к хранилищу (keystore-файлу), где хранятся закрытые ключи и сертификаты, необходимые для установки защищенного HTTPS-соединения

/opt/osmax-observer/keystore.jks

quarkus.http.ssl.certificate.key-store-password

Пароль для доступа к keystore-файлу

keystore@12345

Настройки REST-клиентов

Настройки, описанные в разделе, являются опциональными и используются, только при подключении по протоколу SSL.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.rest-client.trust-store

Путь к файлу хранилища доверенных сертификатов (truststore), который содержит сертификаты доверенных центров сертификации

/etc/ssl/certs/java/cacerts

quarkus.rest-client.trust-store-password

Пароль для доступа к хранилищу доверенных сертификатов

truststore@12345

quarkus.rest-client.trust-store-type

Тип хранилища, например JKS, JCEKS, P12, PKCS12, PFX. Если значение не задано, по умолчанию используется значение JKS

PKCS12

quarkus.rest-client.remote-access.trust-all

Включение/выключение проверки SSL-соединения. Возможные значения: true и false

true

Подключение к БД

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.datasource.username

Имя пользователя для подключения к БД

<db-username>

db-observer-user

quarkus.datasource.password

Пароль пользователя для подключения к БД

<db-password>

db-qwerty123

quarkus.datasource.reactive.url

Адрес подключения серверной части продукта к БД

Если необходимо указать несколько подключений к источникам данных для балансировки нагрузки или работы с кластеризованной базой данных, используйте один из двух вариантов синтаксиса:

Вариант 1:

postgresql://host1:5432/osmax_observer,postgresql://host2:5432/osmax_observer, postgresql://host3:5432/osmax_observer

Вариант 2:

quarkus.datasource."osmax_observer_db".reactive.url[0]=postgresql://host1:5432/osmax_observer
quarkus.datasource."osmax_observer_db".reactive.url[1]=postgresql://host2:5432/osmax_observer
quarkus.datasource."osmax_observer_db".reactive.url[2]=postgresql://host3:5432/osmax_observer
postgresql://<db-host>:<db-port>/<db-name>
postgresql://10.31.0.168:5432/osmax_observer

quarkus.datasource.jdbc.url

Адрес подключения к БД. Параметр используется утилитой Liquibase для структуры схемы БД

jdbc:postgresql://<db-host>:<db-port>/<db-name>
jdbc:postgresql://10.31.0.168:5432/osmax_observer

quarkus.liquibase.default-schema-name

Наименование схемы БД. Параметр используется утилитой Liquibase для актуализации схемы БД

osmax_observer

osmax_observer

quarkus.liquibase.change-log-parameters.index_tablespace

Таблица пространства имен (tablespace) для индексов, создаваемых Liquibase

pg_default

pg_default

quarkus.liquibase.change-log-parameters.data_tablespace

Таблица пространства имен (tablespace) для данных, создаваемых Liquibase

pg_default

pg_default

Интеграция с Apache Kafka

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

mp.messaging.connector.smallrye-kafka.bootstrap.servers

Адрес сервера для подключения к брокеру Apache Kafka, который используется для получения сообщений от наблюдаемых компонентов

10.31.0.168:9092

mp.messaging.incoming.events.topic

Топик Apache Kafka, для входящих сообщений с событиями от наблюдаемых компонентов

osmax-observer.events

osmax-observer.events

mp.messaging.incoming.metrics.topic

Топик Apache Kafka, для входящих сообщений с метриками от наблюдаемых компонентов

observer.metrics

observer.metrics

Настройка SSL-соединения с Apache Kafka

Параметры из данного блока являются опциональными и задаются, только если требуется SSL для Apache Kafka.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

mp.messaging.connector.smallrye-kafka.security.protocol

SSL-протокол для защищенного соединения

SSL

mp.messaging.connector.smallrye-kafka.ssl.truststore.location

Путь к файлу с сертификатами в хранилище доверенных сертификатов (truststore)

/etc/ssl/certs/java/cacerts

mp.messaging.connector.smallrye-kafka.ssl.truststore.password

Пароль для доступа к хранилищу доверенных сертификатов

truststore@12345

mp.messaging.connector.smallrye-kafka.ssl.truststore.type

Тип хранилища, например JKS, JCEKS, P12, PKCS12, PFX. Если значение не задано, по умолчанию используется значение JKS

PKCS12

mp.messaging.connector.smallrye-kafka.ssl.keystore.location

Путь к файлу с закрытыми ключами и сертификатами клиента в хранилище ключей (keystore)

/opt/osmax-observer/keystore.jks

/opt/osmax-observer/keystore.jks

mp.messaging.connector.smallrye-kafka.ssl.keystore.password

Пароль для доступа к хранилищу ключей

keystore@12345

keystore@12345

mp.messaging.connector.smallrye-kafka.ssl.keystore.type

Тип хранилища, например JKS, JCEKS, P12, PKCS12, PFX. Если значение не задано, по умолчанию используется значение JKS

PKCS12

Аутентификация и авторизация

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

osmax.observer.security.authentication.enabled

Включение/выключение аутентификации. Возможные значения: true и false

true

true

osmax.observer.security.rbac.enabled

Включение/выключение авторизации RBAC

false

false

quarkus.rest-client."tech.inno.osmax.observer.common.security.OsmaxPermissionsService".url

Базовый URL osmax-core(источник информации о разрешениях пользователя). Должен быть установлен, даже если для параметра osmax.observer.security.rbac.enabled установлено значение false. Для включения доступа через HTTPS используйте соответствующий префикс в базовом URL и настройте REST-клиент

<osmax-core base url>

quarkus.kerberos.service-principal-name

Имя принципала для аутентификации Kerberos

<service_principal_name>

quarkus.kerberos.service-principal-realm

Наименование области безопасности (realm) принципала

<service.domain>

quarkus.kerberos.service-principal-password

Пароль принципала

<service_principal_password>

quarkus.kerberos.service-principal-name

Переиспользуйте настройки для прямого указания имени принципала для аутентификации Kerberos для REST-клиента

${quarkus.kerberos.service-principal-name}

quarkus.kerberos.service-principal-realm

Переиспользуйте настройки для прямого указания наименования области безопасности (realm) принципала для аутентификации Kerberos для REST-клиента

${quarkus.kerberos.service-principal-password}

quarkus.kerberos.service-principal-password

Переиспользуйте настройки для прямого указания пароля принципала для аутентификации Kerberos для REST-клиента

${quarkus.kerberos.service-principal-realm}

quarkus.kerberos.service-principal-name

Переиспользуйте настройки для прямого указания имени принципала для аутентификации Kerberos для REST-клиента

${quarkus.kerberos.service-principal-name}

quarkus.kerberos.keytab-path

(Опциональный параметр) путь к keytab-файлу, который содержит зашифрованные ключи и сертификаты, необходимые для аутентификации в домене

</path/to/keytab/file>

kerberos-client.keytab-path

(Опциональный параметр) альтернативный путь к keytab-файлу для клиента Kerberos

</path/to/keytab/file>

quarkus.kerberos.debug

(Опциональный параметр) включение/выключение режима отладки для аутентификации Kerberos. Возможные значения: true и false

true

kerberos-client.debug

(Опциональный параметр) включение/выключение режима отладки для аутентификации Kerberos. Возможные значения: true и false

true

true

quarkus.rest-client.logging.scope

Уровень логирования для внутреннего REST-клиента, который записывает информацию о запросах и ответах

request-response

quarkus.rest-client.logging.body-limit

Размер тела запроса/ответа

500

quarkus.log.category."org.jboss.resteasy.reactive.client.logging".level

Уровень логирования для пакета org.jboss.resteasy.reactive.client.logging

DEBUG

Логирование

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.log.file.enable

Включение/выключение логирования в файл. Возможные значения: true и false

true

true

quarkus.log.json.file.enable

Включение/выключение форматирования логов в JSON при записи в файл. Возможные значения: true и false

true

true

quarkus.log.json.console.enable

Включение/выключение форматирования логов в JSON при выводе в консоль. Возможные значения: true и false

false

false

quarkus.log.json.fields.mdc.flat-fields

Включение/выключение записи контекста MDC (Mapped Diagnostic Context) в плоском формате. Возможные значения: true и false

true

true

quarkus.log.json.fields.timestamp.date-format

Формат даты и времени для поля timestamp в JSON

yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
yyyy-MM-dd'T'HH:mm:ss.SSS'Z'

quarkus.log.json.fields.timestamp.zone-id

Часовой пояс для поля timestamp в JSON

UTC

UTC

quarkus.log.file.path

Путь для сохранения файлов с логами продукта

/var/log/osmax/observer/osmax-observer.log

/var/log/osmax/observer/osmax-observer.log

quarkus.log.file.rotation.max-file-size

Максимальный размер одного файла с логами, после чего будет произведена ротация (создан следующий файл и продолжена запись)

10М

10М

quarkus.log.file.rotation.max-backup-index

Предельное количество сохраняемых файлов с логами при ротации

5

5

quarkus.log.file.rotation.file-suffix

Суффикс для имен файлов логов после их ротации

.yyyy-MM-dd.gz

.yyyy-MM-dd.gz

Для настройки наблюдения за экземплярами компонент выполните инструкции из раздела «Настройки наблюдаемых компонентов для передачи значений метрик в osmax-observer».