Настройка приложения#

Порядок настройки#

Все конфигурационные настройки EVPT задаются в файле batch.conf, который необходимо заполнить до запуска процесса установки EVPT. Данный файл заполняется автоматически в процессе установки в соответствии со значениями, указанными в файле vars.yml. Подробнее описано в «Руководстве по установке», раздел «Пример заполненного файла vars.yml для EVPT».

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

Параметры настройки#

В таблице представлены параметры настройки, задаваемые в файле batch.conf. Пример заполненного файла приведен ниже.

Общие настройки компонента#

Название параметра

Рекомендуемые значения параметра

Назначение параметра

Допустимый формат значений параметра

host

{ IP_ADDRESS }

Хост, на котором будет запущен сервис

hostname (любое корректное имя хоста)

port

8081

Порт, на котором будет запущен сервис

8080 (любой корректный порт)

ssl.keystore.location

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

/path/to/keystore.jks

ssl.keystore.password

Пароль от хранилища сертификатов

keystorepassword

ssl.key.password

Пароль от ключа сертификата

keypassword

ssl.truststore.location

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

/path/to/truststore.jks

ssl.truststore.password

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

truststorepassword

ssl.keystore.type

JKS

Тип хранилища сертификатов

JKS

ssl.truststore.type

JKS

Тип хранилища доверенных сертификатов

JKS

ssl.conscrypt

true

Использование библиотеки conscrypt

true, false

ssl.protocol

TLSv1.3

Версия протокола

TLSv1.3, TLSv1.2

ssl.endpoint.identification.algorithm

HTTPs

Алгоритм идентификации endpoint подключения для проверки имени host сервера с использованием сертификата сервера

HTTPs, dn

ssl.allowed.dn

Список разрешенных DN сертификатов

CN=localhost, O=test, C=RU;CN=test, O=test, C=RU

ssl.allowed.dn.file

Расположение файла со списком разрешенных DN сертификатов

/path/to/allowed-dn.txt

secret

Значение «ru.sbt.ss.batch.secret» (если не установлено - «»)

Секрет для расшифровки паролей

secret

useAkka

false

Флаг, отвечающий за использование akka кластера

true, false

timezone

Значение JVM

Используемая таймзона

Europe/London

ssl.vault.address

HashiCorp Vault URL. Если параметр задан, то сертификаты будут из Vault

https://localhost:8200 (корректный url)

ssl.vault.tls.key.password

Пароль от приватного ключа хранилища

vaultkeypassword

ssl.vault.tls.keystore.location

Путь до keystore хранилища

/path/to/vault/keystore.jks

ssl.vault.tls.keystore.password

Пароль от keystore хранилища

vaultkeystorepassword

ssl.vault.tls.truststore.location

Путь до truststore хранилища

/path/to/vault/truststore.jks

ssl.vault.tls.truststore.password

Пароль от truststore хранилища

vaulttruststorepassword

ssl.vault.tls.protocol

TLSv1.2

Для хранилища: тип протокола ssl, который будет получен из vault.

TLSv1.3, TLSv1.2

ssl.vault.tls.keystore.type

JKS

Формат файла keystore хранилища.

JKS

ssl.vault.tls.truststore.type

JKS

Формат файла truststore хранилища.

JKS

ssl.vault.tls.endpoint.identification.algorithm

HTTPs

Для хранилища: алгоритм идентификации endpoint подключения для проверки имени host сервера с использованием сертификата сервера

HTTPs, dn

ssl.vault.tls.conscrypt

false

Для хранилища: использование библиотеки conscrypt

true, false

ssl.vault.tls.allowed.dn

Для хранилища: список разрешенных DN сертификатов

CN=localhost, O=test, C=RU;CN=test, O=test, C=RU

ssl.vault.tls.allowed.dn.file

Для хранилища: расположение файла со списком разрешенных DN сертификатов

/path/to/allowed-dn.txt

ssl.vault.auth.type

approle

Тип аутентификации. Доступные значения: approle, token, password, cert.

approle, token, password, cert

ssl.vault.auth.mount

Путь монтирования аутентификации

path/to/mount

ssl.vault.auth.role.id

Role ID для типа аутентификации approle

значение сгенерированное в vault

ssl.vault.auth.secret.id

Secret ID для типа аутентификации approle

значение сгенерированное в vault

ssl.vault.auth.token

Токен для типа аутентификации token

значение сгенерированное в vault

ssl.vault.auth.username

Имя пользователя для идентификации типа username

имя пользователя (логин) - для идентификации.

ssl.vault.auth.password

Пароль для аутентификации типа password

пароль пользователя - для аутентификации

ssl.vault.tls.enable

true

Наличие защищенного соединения с HashiCorp Vault.

true, false

ssl.vault.namespace

Vault namespace

namespace

ssl.vault.pki.mount

pki

Путь монтирования Vault PKI API.

pki

ssl.vault.pki.role.name

Имя роли в PKI Engine

rolename

ssl.vault.pki.common.name

Common name для генерации сертификатов

CommonName

ssl.vault.pki.alt.names

Alternative names для генерации сертификатов

AltName

ssl.vault.pki.alt.ip

Alternative ip для генерации сертификатов

127.0.0.1

ssl.vault.pki.ttl

TTL для генерации сертификатов

100

ssl.vault.pki.csr

CSR для генерации сертификатов

сгенерированное значение csr

ssl.vault.pki.trust.only

false

Загружать только trust store.

true, false

ssl.vault.pki.email

Email для генерации сертификатов

test@test.ru

ssl.vault.secret.path

Секретный путь для ключа, keystore и truststore паролей

kv1/certstore

ssl.vault.secret.key

Secret key для пароля ключа

key

ssl.vault.secret.keystore

Secret key для keystore пароля

keystore

ssl.vault.secret.truststore

Secret key для truststore пароля

truststore

ssl.vault.before.expire

PT0S

Время до даты экспирации для обновления сертификатов.

PT15M

ssl.vault.alias.ca

Псевдоним для CA сертификата в truststore

ca

ssl.vault.alias.key

Псевдоним для ключа и сертификата в keystore

key

ssl.vault.engine.version

2

Версия API для key-value машины.

1,2

ssl.vault.retries

5

Количество повторных попыток запроса.

10

ssl.vault.retry.interval

500

Интервал между попытками в миллисекундах.

100

ssl.vault.timeout

3

Тайм-аут запроса в секундах.

10

telemetry.config.path

Путь до файла конфигурации OpenTelemetry.

healthCheck.host

0.0.0.0

Хост для health check

healthCheck.port

8080

Порт для health check, для отключения необходимо задать значение -1

healthCheck.changeLoggersAvailable

false

Возможность изменения уровня незаданных в logback логеров

healthCheck.changeRootAvailable

false

Возможность изменения уровня root логера

batch: {
    host: localhost
    port: 9090
    ssl.keystore.location: "/path/to/keystore.jks"
    ssl.keystore.password: "password"
    ssl.truststore.location: "/path/to/truststore.jks"
    ssl.truststore.password: "password"
}

Настройки задач (task)#

Название параметра

Рекомендуемые значения параметра

Назначение параметра

Допустимый формат значений параметра

ssl.keystore.location

Путь до хранилища сертификатов (Настройки ssl контекста применяются, если url задачи начинается с HTTPs)

/path/to/keystore.jks

ssl.keystore.password

Пароль от хранилища сертификатов

keystorepassword

ssl.key.password

Пароль от ключа сертификата

keypassword

ssl.truststore.location

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

/path/to/truststore.jks

ssl.truststore.password

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

truststorepassword

ssl.keystore.type

JKS

Тип хранилища сертификатов

JKS

ssl.truststore.type

JKS

Тип хранилища доверенных сертификатов

JKS

ssl.conscrypt

true

Использование библиотеки conscrypt

true, false

ssl.protocol

TLSv1.2

Версия протокола

TLSv1.3, TLSv1.2

ssl.endpoint.identification.algorithm

HTTPs

Алгоритм идентификации endpoint подключения для проверки имени host сервера с использованием сертификата сервера

HTTPs, dn

ssl.allowed.dn

Список разрешенных DN сертификатов

CN=localhost, O=test, C=RU;CN=test, O=test, C=RU

ssl.allowed.dn.file

Расположение файла со списком разрешенных DN сертификатов

/path/to/allowed-dn.txt

secret

Значение «ru.sbt.ss.batch.secret» (если не установлено - «»)

Секрет для расшифровки паролей

secret

ssl.vault.address

HashiCorp Vault URL. Если параметр задан, то сертификаты будут из Vault

https://localhost:8200 (корректный url)

ssl.vault.tls.key.password

Пароль от приватного ключа хранилища

vaultkeypassword

ssl.vault.tls.keystore.location

Путь до keystore хранилища

/path/to/vault/keystore.jks

ssl.vault.tls.keystore.password

Пароль от keystore хранилища

vaultkeystorepassword

ssl.vault.tls.truststore.location

Путь до truststore хранилища

/path/to/vault/truststore.jks

ssl.vault.tls.truststore.password

Пароль от truststore хранилища

vaulttruststorepassword

ssl.vault.tls.protocol

TLSv1.2

Для хранилища: тип протокола ssl, который будет получен из vault.

TLSv1.3, TLSv1.2

ssl.vault.tls.keystore.type

JKS

Формат файла keystore хранилища. Значение по умолчанию

JKS

ssl.vault.tls.truststore.type

JKS

Формат файла truststore хранилища. Значение по умолчанию

JKS

ssl.vault.tls.endpoint.identification.algorithm

HTTPs

Для хранилища: алгоритм идентификации endpoint подключения для проверки имени host сервера с использованием сертификата сервера

HTTPs, dn

ssl.vault.tls.conscrypt

false

Для хранилища: использование библиотеки conscrypt

true, false

ssl.vault.tls.allowed.dn

Для хранилища: список разрешенных DN сертификатов

CN=localhost, O=test, C=RU;CN=test, O=test, C=RU

ssl.vault.tls.allowed.dn.file

Для хранилища: расположение файла со списком разрешенных DN сертификатов

/path/to/allowed-dn.txt

ssl.vault.auth.type

approle

Тип аутентификации. Доступные значения: approle, token, password, cert.

approle, token, password, cert

ssl.vault.auth.mount

Путь монтирования аутентификации

path/to/mount

ssl.vault.auth.role.id

Role ID для типа аутентификации approle

значение сгенерированное в vault

ssl.vault.auth.secret.id

Secret ID для типа аутентификации approle

значение сгенерированное в vault

ssl.vault.auth.token

Токен для типа аутентификации token

значение сгенерированное в vault

ssl.vault.auth.username

Имя пользователя для аутентификации типа password

username

ssl.vault.auth.password

Пароль для аутентификации типа password

userpassword

ssl.vault.tls.enable

true

Наличие защищенного соединения с HashiCorp Vault.

true, false

ssl.vault.namespace

Vault namespace

namespace

ssl.vault.pki.mount

pki

Путь монтирования Vault PKI API.

pki

ssl.vault.pki.role.name

Имя роли в PKI Engine

rolename

ssl.vault.pki.common.name

Common name для генерации сертификатов

CommonName

ssl.vault.pki.alt.names

Alternative names для генерации сертификатов

AltName

ssl.vault.pki.alt.ip

Alternative ip для генерации сертификатов

127.0.0.1

ssl.vault.pki.ttl

TTL для генерации сертификатов

100

ssl.vault.pki.csr

CSR для генерации сертификатов

сгенерированное значение csr

ssl.vault.pki.trust.only

false

Загружать только trust store.

true, false

ssl.vault.secret.path

Секретный путь для ключа, keystore и truststore паролей

kv1/certstore

ssl.vault.secret.key

Secret key для пароля ключа

key

ssl.vault.secret.keystore

Secret key для keystore пароля

keystore

ssl.vault.secret.truststore

Secret key для truststore пароля

truststore

ssl.vault.before.expire

PT0S

Время до даты экспирации для обновления сертификатов.

PT15M

ssl.vault.alias.ca

Псевдоним для CA сертификата в truststore

ca

ssl.vault.alias.key

Псевдоним для ключа и сертификата в keystore

key

ssl.vault.engine.version

2

Версия API для key-value машины.

1, 2

ssl.vault.retries

5

Количество повторных попыток запроса.

10

ssl.vault.retry.interval

500

Интервал между попытками в миллисекундах.

100

ssl.vault.timeout

3

Тайм-аут запроса в секундах.

10

Настройки кластера акторов. Настройка для создания кластера (pekko)#

Название параметра

Рекомендуемые значения параметра

Назначение параметра

Допустимый формат значений параметра

cluster.config.source

classpath

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

file,classpath

cluster.config.path

Путь до файла конфигурации кластера акторов, который объединяется с конфигурацией системы акторов кластера по умолчанию

/path/to/cluster-default.conf

cluster.timeout

10000

Тайм-аут обращения к распределенному хранилищу кластера акторов

20000

pekko: {
    cluster.config.source: file
    cluster.config.path: /path/to/cluster-default.conf
}

Настройки quartz. Настройка для работы с базой данных (quartz)#

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

Для работы с базой данных, необходимо указать следующие настройки:

Название параметра

Рекомендуемые значения параметра

Назначение параметра

Допустимый формат значений параметра

org.quartz.threadPool.class

org.quartz.simpl.SimpleThreadPool

Класс ThreadPool, который будет использоваться.

org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount

-1

Количество потоков

1

org.quartz.jobStore.class

Селектор JobStore

org.quartz.impl.jdbcjobstore.JobStoreTX

org.quartz.jobStore.dataSource

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

quartzDataSource

org.quartz.jobStore.tablePrefix

QRTZ_

Строка, равная префиксу, присвоенному таблицам Quartz, которые были созданы в вашей базе данных. У вас может быть несколько наборов таблиц Quartz в одной базе данных, если они используют разные префиксы таблиц.

QRTZ_

org.quartz.jobStore.driverDelegateClass

Конкретный ‘диалект’ различных систем баз данных.

org.quartz.impl.jdbcjobstore.PostgreSQLDelegate

org.quartz.dataSource.NAME.driver

(Вместо NAME указывается значение переданное в «org.quartz.jobStore.dataSource») Имя класса java драйвера JDBC для используемой базы данных.

org.postgresql.Driver

org.quartz.dataSource.NAME.URL

(Вместо NAME указывается значение переданное в «org.quartz.jobStore.dataSource») URL-адрес подключения (хост, порт и т.д.) для подключения к используемой базе данных. При подключении с использованием ssl возможна передача аргументов аналогичным образом, как и в блоке «batch». Для этого в url необходимо передать параметр sslfactory=ru.sbt.ss.batch.utils.DatabaseSslFactory

jdbc:postgresql://localhost:5432/batch

org.quartz.dataSource.NAME.user

(Вместо NAME указывается значение переданное в «org.quartz.jobStore.dataSource») Имя пользователя для подключения к используемой базе данных.

username

org.quartz.dataSource.NAME.password

(Вместо NAME указывается значение переданное в «org.quartz.jobStore.dataSource») Пароль для подключения к используемой базе данных.

password

secret

Значение «ru.sbt.ss.batch.secret» (если не установлено - «»)

Секрет для расшифровки паролей

secret

Пример для работы с postgre#

quartz: {
    org.quartz.threadPool.class: "org.quartz.simpl.SimpleThreadPool"
    org.quartz.threadPool.threadCount: "1"
    secret: "secret"

    # Database properties
    org.quartz.jobStore.class: "org.quartz.impl.jdbcjobstore.JobStoreTX"
    org.quartz.jobStore.dataSource: "quartzDataSource"
    org.quartz.jobStore.tablePrefix: "QRTZ_"
    org.quartz.jobStore.driverDelegateClass: "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"

    org.quartz.dataSource.quartzDataSource.driver: "org.postgresql.Driver"
    org.quartz.dataSource.quartzDataSource.URL: "jdbc:postgresql://localhost:5432/batch"
    org.quartz.dataSource.quartzDataSource.user: "user"
    org.quartz.dataSource.quartzDataSource.password: "password"
}

Настройки хранилища (storage)#

Название параметра

Назначение параметра

type

Тип хранилища (Kafka)

topic

Имя используемого топика

bootstrap.servers и тд

Настройки подключения к транспорту

Пример настройки хранилища#

storage: {
    type: kafka
    bootstrap.servers: "localhost:9092"
    group.id: "test-group"
    auto.offset.reset: "earliest"
    topic: "test"
}

Настройки хранилища для компактного топика (storage)#

Название параметра

Назначение параметра

type

Тип хранилища (compactKafka)

topic

Имя используемого топика

timeout

Тайм-аут для клиента Kafka

bootstrap.servers и тд

Настройки подключения к транспорту

Пример настройки хранилища для компактного топика#

storage: {
    type: compactKafka
    topic: "test"
    timeout: 10000
    bootstrap.servers: "localhost:9092"
    group.id: "test-group"
    auto.offset.reset: "earliest"
}

Пример конфигурационного файла batch.conf#

Пример конфигурационного файла batch.conf представлен в файле example_batch_conf.

Правила эксплуатации#

Специфичных настроек программно-аппаратных средств защиты информации, среды функционирования и используемых смежных продуктов не требуется, кроме тех, что указаны в документе «Руководство по установке».