Конфигурация бэкенда

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

Пример конфигурационного файла с настройками по умолчанию
## This is an example of `application.properties` file as main configuration file for lcm-core backend

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

## Kerberos auth
## Enable/disable kerberos authentication
quarkus.kerberos.enabled=true
## Enables kerberos authentication debug mode
#quarkus.kerberos.debug=true
## There are 2 alternative options for the kerberos credentials [principal realm, name and password] defining:
## 1) via direct defining;
## 2) via keytab file path defining
##
## Direct kerberos credentials defining:
quarkus.kerberos.service-principal-name=lcm_backend_svc
quarkus.kerberos.service-principal-password=Password123
quarkus.kerberos.service-principal-realm=my.domain.com
## Path to keytab:
#quarkus.kerberos.keytab-path=/opt/inno-lcm-core/my_file.keytab

## Main datasource
quarkus.datasource."lcm-db".username=lcm
quarkus.datasource."lcm-db".password=password
quarkus.datasource."lcm-db".reactive.url=postgresql://localhost:5432/lcm
## If you need to specify default DB schema use the syntax below
#quarkus.datasource."lcm-db".reactive.url=postgresql://localhost:5432/lcm?search_path=lcm_schema_name

## Main datasource Liquibase config
quarkus.datasource."lcm-db".jdbc.url=jdbc:postgresql://localhost:5432/lcm
quarkus.liquibase."lcm-db".default-schema-name=lcm
quarkus.liquibase."lcm-db".migrate-at-start=True

## Readonly datasource
quarkus.datasource."lcm-db-readonly".username=readonly
quarkus.datasource."lcm-db-readonly".password=password
quarkus.datasource."lcm-db-readonly".reactive.url=postgresql://localhost:5432/lcm
quarkus.datasource."lcm-db-readonly".jdbc.url=jdbc:postgresql://localhost:5432/lcm

## LDAP synchronization params
lcm.inventory.ldap.search-page-size=500
## The first LDAP datasource configuration
lcm.inventory.ldap.datasource[0].name=my.domain.com
lcm.inventory.ldap.datasource[0].base-dn=DC=my,DC=domain,DC=com
lcm.inventory.ldap.datasource[0].host=localhost
lcm.inventory.ldap.datasource[0].port=636
lcm.inventory.ldap.datasource[0].username=administrator@my.domain.com
lcm.inventory.ldap.datasource[0].password=Welkom123
## There are 3 options of SSL for LDAP datasource.
## value `false` - disable LDAP over SSL (LDAPS)
## value `trust_all` - enable LDAPS, allow any SSL certificate without validation
## value `true` - enable LDAPS, required path to the certificate file
lcm.inventory.ldap.datasource[0].ssl=true
lcm.inventory.ldap.datasource[0].ssl-certificate=/opt/inno-lcm-core/samba_cert.pem
## Optional section for the LDAP datasource
# lcm.inventory.ldap.datasource[0].connect-timeout-millis=10000
# lcm.inventory.ldap.datasource[0].response-timeout=10000
# lcm.inventory.ldap.datasource[0].abandon-on-timeout=true
# lcm.inventory.ldap.datasource[0].allow-concurrent-socket-factory-use=true

## The second and other LDAP datasource configuration are optional
#lcm.inventory.ldap.datasource[1].name=my2.domain.com
#lcm.inventory.ldap.datasource[1].base-dn=DC=my2,DC=domain,DC=com
#lcm.inventory.ldap.datasource[1].host=192.168.0.1
#lcm.inventory.ldap.datasource[1]...

## Device agent settings section
## The number of minutes since the last agent activity before the device enters the "Offline" status.
lcm.inventory.settings.agent.minutes-to-become-offline=5
## Path to the file on the server with the Salt agent, which stores information about user sessions
lcm.inventory.settings.agent.user-session-file-path=/var/log/wtmp
## Path to the file on the server with the Salt agent, which stores the information about active user session
lcm.inventory.settings.agent.active-user-session-file-path=/var/run/utmp


## Salt kafka connection parameters
mp.messaging.incoming.salt-events-kafka.bootstrap.servers=http://localhost:9092
mp.messaging.incoming.salt-events-kafka.topic=salt-topic

## Kafka SSL connection parameters section. These parameters are optional and are used only for SSL connection mode
#mp.messaging.incoming.salt-events-kafka.ssl.protocol=SSL
#mp.messaging.incoming.salt-events-kafka.ssl.keystore.location=/opt/inno-lcm-core/keystore.jks
#mp.messaging.incoming.salt-events-kafka.ssl.keystore.password=keystore@12345
#mp.messaging.incoming.salt-events-kafka.ssl.truststore.location=/opt/inno-lcm-core/truststore.jks
#mp.messaging.incoming.salt-events-kafka.ssl.truststore.password=truststore@12345

## Salt connection parameters
lcm.salt-adapter.rest-client.password=salt123
lcm.salt-adapter.command-runner.http-scheme=http
lcm.salt-adapter.command-runner.master-api-port=8000
lcm.salt-adapter.command-runner.global-auth.eauth=pam
lcm.salt-adapter.command-runner.global-auth.login=salt_api
lcm.salt-adapter.command-runner.global-auth.password=salt123

## Salt masters configuration section.
## Optional, this section should be used when backend server can't resolve salt master by DNS name
lcm.salt-adapter.command-runner.override-masters[0].id=salt-master1
lcm.salt-adapter.command-runner.override-masters[0].uri=http://192.168.0.1:8000

## The second and other Salt masters can be configured in the same way
#lcm.salt-adapter.command-runner.override-masters[1].id=salt-master2
#lcm.salt-adapter.command-runner.override-masters[1].uri=http://192.168.0.2:8000

## Salt pillar synchronization configuration, quartz cron scheduler format
lcm.inventory.job.sync-collection-pillars.cron.expr=0/10 * * ? * * *

## S3 Salt configuration
lcm.salt-adapter.s3.server-uri=http://localhost:9000
lcm.salt-adapter.s3.access-key-id=s3adminSalt
lcm.salt-adapter.s3.secret-access-key=s3adminSaltPassword
lcm.salt-adapter.s3.region=ru-location-1
lcm.salt-adapter.s3.state-bucket-name=salt-bucket
lcm.salt-adapter.s3.pillar-bucket-name=pillar-bucket

## S3 multimedia content service configuration
lcm.multimedia.s3.server-uri=http://localhost:9000
lcm.multimedia.s3.access-key-id=s3adminMultimedia
lcm.multimedia.s3.secret-access-key=s3adminMultimediaPassword
lcm.multimedia.s3.region=ru-location-1
lcm.multimedia.s3.icons-bucket-name=multimedia-bucket
lcm.multimedia.s3.images-bucket-name=multimedia-bucket
lcm.multimedia.s3.others-bucket-name=multimedia-bucket

## Application log configuration
quarkus.log.file.enable=true
quarkus.log.file.path=application.log
quarkus.log.file.rotation.max-backup-index=5
quarkus.log.file.rotation.max-file-size=10M

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

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

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

quarkus.http.port

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

8081

8081

Параметры настройки аутентификации Kerberos

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

quarkus.kerberos.enabled

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

true

true

quarkus.kerberos.debug

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

true

true

quarkus.kerberos.service-principal-name

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

lcm_backend_svc

lcm_backend_svc

quarkus.kerberos.service-principal-password

(Опциональный параметр) пароль принципала. С точки зрения безопасности рекомендуется не использовать этот параметр, а использовать keytab-файл для аутентификации в домене (см. параметр quarkus.kerberos.keytab-path ниже)

Password123

Password123

quarkus.kerberos.service-principal-realm

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

my.domain.com

LCM.TERRA.INNO.TECH

quarkus.kerberos.keytab-path

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

my_file.keytab

/opt/inno-lcm-core/kerberos.keytab

Параметры настройки подключения к БД

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

quarkus.datasource."lcm-db".username

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

lcm

lcmadmin

quarkus.datasource."lcm-db".password

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

password

qwerty123

quarkus.datasource."lcm-db".reactive.url

Адрес подключения серверной части продукта к БД. Формат: postgresql://{db_host}:{db_port}/{db_name}

postgresql://localhost:5432/lcm

postgresql://10.6.32.156:5432/lcm

При необходимости указать схему, значение параметра будет: postgresql://10.6.32.156:5432/lcm?search_path=lcm_schema

quarkus.datasource."lcm-db".jdbc.url

Адрес подключения к БД. Параметр используется утилитой Liquibase для актуализации схемы БД. Формат: jdbc:postgresql://{db_host}:{db_port}/{db_name}

jdbc:postgresql://localhost:5432/lcm

jdbc:postgresql://10.6.32.156:5432/lcm

quarkus.liquibase."lcm-db".default-schema-name

Имя схемы данных

lcm

lcm

quarkus.liquibase."lcm-db".migrate-at-start

Включение/выключение автоматического обновления структуры БД с помощью утилиты Liquibase. Возможные значения: true и false

True

True

quarkus.datasource."lcm-db-readonly".username

Имя пользователя с правами только на чтение данных (read-only) для подключения к БД

readonly

lcmuser

quarkus.datasource."lcm-db-readonly".password

Пароль пользователя с правами только на чтение данных (read-only) для подключения к БД

password

lcmuserpassword

quarkus.datasource."lcm-db-readonly".reactive.url

Адрес подключения серверной части продукта к БД. Формат: postgresql://{db_host}:{db_port}/{db_name}

postgresql://localhost:5432/lcm

postgresql://localhost:5432/lcm

quarkus.datasource."lcm-db-readonly".jdbc.url

Адрес подключения к БД. Формат: jdbc:postgresql://{db_host}:{db_port}/{db_name}

jdbc:postgresql://localhost:5432/lcm

jdbc:postgresql://10.6.32.156:5432/lcm

Параметры настройки интеграции c LDAP-сервером

Нумерация массива lcm.inventory.ldap.datasource начинается с 0.

Параметры подключения к домену №2 аналогичны параметрам домена №1.

Пример:

  • lcm.inventory.ldap.datasource[1].host=192.168.0.1;

  • lcm.inventory.ldap.datasource[1].name=domain_alias2;

  • lcm.inventory.ldap.datasource[1].port=389;

  • lcm.inventory.ldap.datasource[1].username=username2@domain2_name;

  • lcm.inventory.ldap.datasource[1].ssl=false;

  • lcm.inventory.ldap.datasource[1].base-dn=DC=domain_name2,DC=local.

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

lcm.inventory.ldap.search-page-size

Максимальное количество записей, которое будет возвращаться в ответ на один запрос синхронизации с LDAP-сервером. Чем больше значение, тем больше данных LDAP-серверу необходимо обработать в рамках одного запроса. Чем меньше значение, тем дольше будет выполняться синхронизация

500

500

lcm.inventory.ldap.datasource[0].name

Название источника данных (например, имя домена)

my.domain.com

lcm-1583.terra.inno.tech

lcm.inventory.ldap.datasource[0].base-dn

Базовое имя домена в формате LDAP

DC=my,DC=domain,DC=com

DC=lcm-1583,DC=terra,DC=inno,DC=tech

lcm.inventory.ldap.datasource[0].host

IP-адрес или сетевое имя контроллера домена (сервера LDAP)

localhost

10.6.32.204

lcm.inventory.ldap.datasource[0].port

Порт для соединения по протоколу LDAP. Опциональный параметр

636

389; для LDAP over SSL обычно используется порт 636

lcm.inventory.ldap.datasource[0].username

Имя пользователя для подключения к домену LDAP-сервера.

Может быть указано в одном из следующих форматов:

  • <имя_пользователя>@<имя домена>, например, ivanov@INNO;

  • пользователь в формате LDAP, например, CN=ivanov,CN=Users,DC=inno,DC=local

administrator@my.domain.com

Administrator@lcm-1583.terra.inno.tech

lcm.inventory.ldap.datasource[0].password

Пароль пользователя для подключения к домену LDAP-сервера

Welkom123

Welkom123

lcm.inventory.ldap.datasource[0].ssl

Параметр, отвечающий за соединение по протоколу LDAP over SSL (LDAPS).

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

  • false — соответствует выключенному протоколу LDAPS, используется обычный LDAP;

  • true — соответствует включенному протоколу LDAPS, требует наличия файла с сертификатом для SSL-соединения (задается отдельным параметром);

  • trust_all — соответствует включенному протоколу LDAPS, принимает любые сертификаты без подтверждения.

Опциональный параметр

true

true

lcm.inventory.ldap.datasource[0].ssl-certificate

Относительный или абсолютный путь к файлу с сертификатом для подключения через LDAPS. Опциональный параметр

/opt/inno-lcm-core/samba_cert.pem

/opt/inno-lcm-core/samba_cert.pem

lcm.inventory.ldap.datasource[0].connect-timeout-millis

Максимальная длительность подключения к LDAP-серверу в миллисекундах. Значение 0 означает бесконечное ожидание. Опциональный параметр

10000

10000

lcm.inventory.ldap.datasource[0].response-timeout

Максимальная длительность выполнения запроса к LDAP-серверу в миллисекундах. Значение 0 означает бесконечное ожидание. Опциональный параметр

10000

10000

lcm.inventory.ldap.datasource[0].abandon-on-timeout

Параметр, который отвечает за освобождение соединения в случае превышения максимальной длительности ожидания запроса. Возможные значения: true и false. Опциональный параметр

true

true

lcm.inventory.ldap.datasource[0].allow-concurrent-socket-factory-use

Параметр, указывающий, разрешать ли использование экземпляра фабрики сокетов (который может совместно использоваться несколькими соединениями) для одновременного создания нескольких сокетов. Возможные значения: true и false

true

true

Параметры настройки сбора данных с устройств

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

lcm.inventory.settings.agent.minutes-to-become-offline

Интервал в минутах, в течение которого на агенте (minion) нет активности. По истечению этого интервала сетевой статус агента (minion) будет изменен на неактивный (offline)

5

5

lcm.inventory.settings.agent.user-session-file-path

Путь к файлу на сервере с агентом (minion), в котором хранится информация о сессиях пользователей

/var/log/wtmp

/var/log/wtmp

lcm.inventory.settings.agent.active-user-session-file-path

Путь к файлу на сервере с агентом (minion), в котором хранится информация о текущих сессиях пользователей

/var/run/utmp

/var/run/utmp

Параметры настройки интеграции с Apache Kafka

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

mp.messaging.incoming.salt-events-kafka.bootstrap.servers

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

http://localhost:9092

http://10.6.32.156:9092

mp.messaging.incoming.salt-events-kafka.topic

Топик Apache Kafka, из которого будут поступать сообщения

salt-topic

salt-topic

Параметры настройки интеграции с API SaltStack

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

lcm.salt-adapter.rest-client.password

Пароль, который используется при выполнении запросов к REST API SaltStack

salt123

salt123

lcm.salt-adapter.command-runner.http-scheme

Протокол, который будет использоваться для отправки HTTP-запросов между компонентами Salt Adapter и Command Runner модуля координации. Возможные значения: http или https

http

http

lcm.salt-adapter.command-runner.master-api-port

Порт, на котором будет запущен API-модуль сервера управления (master). Значение параметра задается для всех используемых серверов управления (masters)

8000

8000

lcm.salt-adapter.command-runner.global-auth.eauth

Тип аутентификации для запросов. Значение параметра задается для всех используемых серверов управления (masters). Возможные значения: ldap или pam. ldap — аутентификация через внешний LDAP-сервер, pam — аутентификация с помощью локальной учетной записи на машине, на которой установлен сервер управления (master).

Если установлено значение pam, для сервера управления (master) требуется root-доступ

pam

pam

lcm.salt-adapter.command-runner.global-auth.login

Логин для подключения к серверу управления (master). Значение параметра задается для всех используемых серверов управления (masters)

salt_api

salt_api

lcm.salt-adapter.command-runner.global-auth.password

Пароль для подключения к серверу управления (master). Значение параметра задается для всех используемых серверов управления (masters)

salt123

salt123

lcm.salt-adapter.command-runner.override-masters[0].id

Имя машины, на которой установлен сервер управления (master)

При использовании нескольких серверов управления (masters) значение задается отдельно для каждого; нумерация массива начинается с [0]. Пример: lcm.salt-adapter.command-runner.override-masters[0].id=salt-master1, lcm.salt-adapter.command-runner.override-masters[1].id=salt-master2

salt-master1

salt-master2

lcm.salt-adapter.command-runner.override-masters[0].uri

Полный адрес API-модуль сервера управления (master), указанного в параметре lcm.salt-adapter.command-runner.override-masters[0].id

При использовании нескольких серверов управления (masters) значение задается отдельно для каждого; нумерация массива начинается с [0]. Пример: lcm.salt-adapter.command-runner.override-masters[0].http://192.168.0.1:8000, lcm.salt-adapter.command-runner.override-masters[0].uri=http://192.168.0.2:8000

http://192.168.0.1:8000

http://192.168.0.2:8000

lcm.inventory.job-sync-collection-pillars.cron.expr

Cron-выражение в формате quartz, которое задает частоту синхронизации состава коллекций на бэкенде продутка и на сервере управления (master)

0/10 * * ? * * *

0 0/15 * ? * * *

Параметры настройки интеграции с S3-совместимым хранилищем

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

lcm.salt-adapter.s3.server-uri

URI для подключения к S3-совместимому хранилищу, в котором будут храниться файлы для SaltStack

http://localhost:9000

http://10.6.32.156:9000

lcm.salt-adapter.s3.access-key-id

Идентификатор ключа (access Key) S3-совместимого хранилища

s3adminSalt

minioadmin

lcm.salt-adapter.s3.secret-access-key

Секретный ключ (Secret Key) S3-совместимого хранилища

s3adminSaltPassword

minioadmin123

lcm.salt-adapter.s3.region

Название региона S3

ru-location-1

ru-location-1

lcm.salt-adapter.s3.state-bucket-name

Название бакета S3 для хранения общих файлов конфигураций и файлов состояний

salt-bucket

salt-bucket

lcm.salt-adapter.s3.pillar-bucket-name

Название бакета S3 для хранения данных Pillar

pillar-bucket

pillar-bucket

lcm.multimedia.s3.server-uri

URI для подключения к S3-совместимому хранилищу, в котором будут храниться мультимедиа-файлы продукта (иконки, скриншоты)

http://localhost:9000

http://10.6.32.156:9000

lcm.multimedia.s3.region

Название региона S3 для хранилища мультимедиа-контента

ru-location-1

ru-location-1

lcm.multimedia.s3.access-key-id

Идентификатор ключа (access Key) S3-совместимого хранилища мультимедиа-контента

s3adminMultimedia

minioadmin

lcm.multimedia.s3.secret-access-key

Секретный ключ (Secret Key) S3-совместимого хранилища мультимедиа-контента для доступа к сервису S3 (пароль)

s3adminMultimediaPassword

minioadmin123

lcm.multimedia.s3.icons-bucket-name

Название бакета S3 для хранения иконок

multimedia-bucket

icons-bucket

lcm.multimedia.s3.images-bucket-name

Название бакета S3 для хранения изображений и скриншотов

multimedia-bucket

images-bucket

lcm.multimedia.s3.others-bucket-name

Название бакета S3 для хранения прочего контента

multimedia-bucket

others-bucket

Параметры настройки логирования

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

quarkus.log.file.enable

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

true

true

quarkus.log.file.path

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

qapplication.log

application.log

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

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

5

5

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

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

10М

10М

quarkus.log.level

(Опциональный параметр) настройка уровня логирования. Возможные значения:

  • FATAL — сообщение об ошибке, которая привела к критическому сбою программы;

  • ERROR — сообщение об ошибке, которая привела к некритическому сбою программы;

  • WARN — предупреждение о потенциальной проблеме или необычном состоянии, которое не является ошибкой, но требует внимания;

  • INFO — информационное сообщение о ходе работы программы, которое может быть полезно для мониторинга и отладки;

  • DEBUG — детальная отладочная информация, которая помогает разработчикам выявлять и исправлять проблемы в коде;

  • TRACE — самый низкий уровень важности, предоставляющий еще более детальную информацию о ходе выполнения программы. Обычно используется для отслеживания каждого шага алгоритма или функции.

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

quarkus.log.category.<"system module">

Пример:

quarkus.log.category."tech.inno.lcm.salt.events".level=DEBUG
quarkus.log.category."tech.inno.lcm.inventory.hardware.users.UsersSynchronizer".level=TRACE
quarkus.log.category."tech.inno.lcm.inventory.hardware.ldap.LdapAdapter".level=INFO

INFO

INFO

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

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

mp.messaging.incoming.salt-events-kafka.ssl.protocol

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

SSL

mp.messaging.incoming.salt-events-kafka.ssl.keystore.location

Путь к файлу хранилища ключей (keystore), который содержит закрытые ключи и сертификаты клиента

/opt/inno-lcm-core/keystore.jks

mp.messaging.incoming.salt-events-kafka.ssl.keystore.password

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

keystore@12345

mp.messaging.incoming.salt-events-kafka.ssl.truststore.location

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

/opt/inno-lcm-core/truststore.jks

mp.messaging.incoming.salt-events-kafka.ssl.truststore.password

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

truststore@12345