Установка#
Установка компонентов технологического ядра Platform V#
Установите компоненты, указанные в разделе «Компоненты технологического ядра Platform V».
Настройка серверов Kafka#
Для своей работы Archiving использует три Kafka:
для обмена данных с КАП;
для обмена данными с источниками данных в 4 поколении (стек k8s или OpenShift (опционально));
для обмена данными с АС Прикладной журнал.
Подключение к каждой Kafka осуществляется через SSL. Для каждой Kafka необходимы собственные сертификаты.
Шифрование трафика осуществляется средствами Kafka.
Настройка интеграционной Kafka#
Интеграционная Kafka Archiving отвечает за обмен данными с КАП. Другие сервисы к ней не подключаются. Исходя из требований безопасности подключение к ней должно осуществляться через SSL. При подключении необходимо выпустить сертификаты, которые дают право:
чтения;
записи данных;
создания топиков.
Генерация сертификата#
При генерации сертификата необходимо указать уникальный пароль, удовлетворяющий требованиям безопасности к его составу. В <CN> вставьте заполненный шаблон:
00CA0000CKafkaPPRBARCH4@kbrb.prom.arch-journal.sbrf.ru
Команда для сертификата:
keytool -genkey -alias serverNode -keystore serverNode.jks -keyalg RSA -keysize 2048 -dname "CN=<CN>, OU=00CA, O=Savings Bank of the Russian Federation, C=RU"
Создание запроса на подпись сертификата#
Запрос на подпись сертификата:
keytool -keystore serverNode.jks -alias serverNode -certreq -file serverNode-certreq.csr
Подпись сертификата#
Для подписи сертификата необходимо сформировать запрос в RLM. Процесс создания запроса может отличаться в зависимости от полигона установки. Подробно процесс формирования запроса описан в документации поддержки сервиса WildFly.
Импорт сертификатов удостоверяющего центра#
Импортируйте в JKS-хранилище сертификаты удостоверяющего центра (УЦ), которым подписаны сертификаты на предыдущем шаге. Это обязательно для последующего импорта подписанного сертификата, так как keytool проверяет корректность всей цепочки сертификации при импорте.
keytool -keystore serverNode.jks -alias "Test Root CA 2" -import -file "Test Root CA 2.cer"
keytool -keystore serverNode.jks -alias "Sberbank Test Issuing CA 2" -import -file "Sberbank Test Issuing CA 2.cer"
Импорт подписанного сертификата#
Импортируйте подписанный сертификат в JKS-хранилище:
keytool -keystore serverNode.jks -alias serverNode -import -file <путь к подписанному сертификату>Проверка корректности созданных сертификатов:
keytool -v --list --keystore serverNode.jks | awk '/Owner:|Issuer:|Your keystore contains|Certificate chain length/'Пример вывода:
Your keystore contains 3 entry Certificate chain length: 3 Owner: CN=000CA0000CKafkaPPRBARCH4@kbrb.prom.arch-journal.sbrf.ru, OU=00CA, O=Savings Bank of the Russian Federation, C=RU Issuer: CN=Sberbank Test Issuing CA 2, DC=ca, DC=sbrf, DC=ru Owner: CN=Sberbank Test Issuing CA 2, DC=ca, DC=sbrf, DC=ru Issuer: CN=Test Root CA 2 Owner: CN=Test Root CA 2 Issuer: CN=Test Root CA 2Вывод должен содержать:
Your keystore contains 3 entry;
Certificate chain length: 3;
Issuer: УЦ банка.
Поместите сертификаты УЦ, полученные через ЗНО, в truststore:
keytool -keystore truststore.jks -alias "Test Root CA 2" -import -file "Test Root CA 2.cer" keytool -keystore truststore.jks -alias "Sberbank Test Issuing CA 2" -import -file "Sberbank Test Issuing CA 2.cer"
Корректировка server.properties#
На каждом узле брокеров Kafka в файле server.properties необходимо отредактировать основные параметры:
Измените:
listeners= PLAINTEXT://<ip_брокера>:9092на
listeners = SSL://<ip_брокера>:9093Добавьте параметры в секции SSL и MAIN:
############################### SSL ################################# security.inter.broker.protocol=SSL sasl.enabled.mechanisms=GSSAPI sasl.mechanism.inter.broker.protocol=GSSAPI sasl.kerberos.service.name =kafka #путь к файлу, скопированному в п.4 ssl.keystore.location = ./ssl/serverNode.jks ssl.truststore.location = ./ssl/trustStore.jks ssl.keystore.password = XXXXX ssl.truststore.password = XXXXX ssl.key.password = XXXX ssl.client.auth = required ssl.enabled.protocols = TLSv1.2 ##########################[ MAIN ]######################### broker.id=1 replica.fetch.max.bytes = 20971520 max.message.bytes = 20971520 message.max.bytes = 20971520Параметр
max.message.bytesустанавливается для каждого топика по отдельности через утилиту./kafka-configs.Пример:
./kafka-configs --zookeeper <ip-адрес-zookeper1>:2181,<ip-адрес-zookeper2>:2181 --entity-name <topic-name> --entity-type topics --alter --add-config max.message.bytes=XXXXXXXПараметр
message.max.bytesустанавливается в конфигурационном файле на уровне брокера.Добавьте параметры в секцию авторизации:
#####################[ AUTHORIZATION ]##################### authorizer.class.name =kafka.security.auth.SimpleAclAuthorizer #здесь указывается сертификат администратора Kafka super.users=User:CN=00CA0001SKAFKAPPRBEFIMOVAV,OU=00CA,O=Savings Bank of the Russian Federation,C=RU zookeeper.set.acl=false allow.everyone.if.no.acl.found=falseПримечание
Каталоги с топиками рекомендуется разместить на SSD-томе (в случае испрользования физического сервера).
Отредактируйте параметры в секции логирования LOGS.
Установите время хранения — 72 часа в параметре
log.retention.hoursи максимальный размер сообщений.#######################[ LOGS ]########################## log.retention.hours = 72 log.retention.check.interval.ms =300000 log.cleaner.enable = True log.dirs =/kafka/ssd/kafka-logs-new log.segment.bytes= 2073741824 log.retention.check.interval.ms =300000 log.cleaner.enable=true
Перезапуск Kafka и ZooKeeper#
Остановить Kafka на всех узлах:
./bin/kafka-server-stop.sh
./bin/zookeeper-server-stop.sh
Запустить Kafka на всех узлах:
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
./bin/kafka-server-start.sh -daemon config/server.properties
Топики, необходимые для работы, создаются при первом подключении Archiving к Kafka полигона.
Создание служебных топиков#
Для работы Archiving в Kafka создаются служебные топики. Существуют два варианта их создания:
автоматически при первом запуске Archiving;
вручную.
Если необходимо автоматическое создание, то в конфигурации Archiving (смотрите раздел «Доработка конфигурации под полигон развертывания») установите pprbod-source-provider-v4@topics.enable.autoconfig = true.
При значении false топики создаются вручную со следующими значениями:
Название топика |
Количество партиций |
Retention ИФТ |
Retention ПРОМ |
Replication ИФТ |
Replication ПРОМ |
Rule Archiving |
Rule КАП |
Примечание |
|---|---|---|---|---|---|---|---|---|
|
равно количеству узлов Archiving |
1ч |
1ч |
1 |
1 |
чтение/запись/описание |
- |
|
|
1 |
1ч |
1ч |
1 |
1 |
чтение/запись/описание |
- |
Archiving 4.6 и выше |
|
равно количеству узлов Archiving |
1ч |
1ч |
1 |
1 |
чтение/запись/описание |
- |
|
|
1 |
1ч |
1ч |
1 |
1 |
чтение/запись/описание |
- |
|
|
равно количеству узлов Archiving |
1ч |
1ч |
1 |
1 |
чтение/запись/описание |
- |
|
|
равно количеству узлов Archiving |
1ч |
1ч |
1 |
1 |
чтение/запись/описание |
- |
Archiving 4.5 и выше |
Создание топиков источника#
Процесс аналогичен созданию служебных топиков. В Kafka создаются топики под каждый источник. Если необходимо автоматическое создание, установите pprbod-source-provider-v4@topics.enable.autoconfig = true.
Название топика |
Количество партиций |
Retention ИФТ |
Retention ПРОМ |
Replication ИФТ |
Replication ПРОМ |
Rule Archiving |
Rule КАП |
Примечание |
|---|---|---|---|---|---|---|---|---|
|
3 |
24ч |
72ч |
1 |
2 |
запись/описание |
чтение/описание |
|
|
1 |
24ч |
24ч |
1 |
1 |
чтение/описание |
запись/описание |
|
|
1 |
24ч |
24ч |
1 |
1 |
чтение/запись/описание |
- |
Archiving 4.5 и выше |
|
равно количеству узлов Archiving |
24ч |
24ч |
1 |
1 |
чтение/описание |
запись/описание |
|
|
1 |
24ч |
24ч |
1 |
1 |
запись/описание |
чтение/описание |
|
|
равно количеству узлов Archiving |
24ч |
24ч |
1 |
1 |
чтение/описание |
запись/описание |
|
|
1 |
24ч |
24ч |
1 |
1 |
запись/описание |
чтение/описание |
|
|
1 |
24ч |
24ч |
1 |
1 |
запись/описание |
чтение/описание |
|
|
1 |
24ч |
72ч |
1 |
2 |
запись/описание |
чтение/описание |
|
|
равно количеству узлов Archiving |
24ч |
24ч |
1 |
1 |
чтение/описание |
запись/описание |
|
|
1 |
24ч |
24ч |
1 |
1 |
запись/описание |
чтение/описание |
|
|
равно количеству узлов Archiving |
2ч |
5ч |
1 |
1 |
чтение/запись/описание |
- |
Создание транспортных топиков источника#
Для источников на DataSpace и Platform V Persistence 4 поколения в транспортной Kafka Archiving создаются транспортные топики. Если необходимо автоматическое создание, установите pprbod-transport-kafka-lib@transport_topics.enable.autoconfig= true.
Название топика |
Количество партиций |
Retention ИФТ |
Retention ПРОМ |
Replication ИФТ |
Retention ПРОМ |
Rule Archiving |
Rule источника |
|---|---|---|---|---|---|---|---|
|
1 |
3ч |
3ч |
1 |
1 |
запись/описание |
чтение/описание |
|
1 |
3ч |
3ч |
1 |
1 |
чтение/описание |
запись/описание |
|
1 |
3ч |
3ч |
1 |
1 |
запись/описание |
чтение/описание |
|
1 |
3ч |
3ч |
1 |
1 |
чтение/описание |
запись/описание |
Настройка Kafka взаимодействия с источниками 4 поколения (Kafka 4-3)#
Данная Kafka служит шиной для взаимодействия с источниками данных, которые находятся в четвертом поколении платформы (стек k8s или OpenShift (опционально)).
Так же, как в случае с интеграционной Kafka, соединение происходит через SSL. Процесс выпуска сертификатов аналогичен интеграцинной Kafka, но шаги выполняются на брокерах данной Kafka.
Настройка Kafka Прикладного Журнала#
Интеграционная Kafka Archiving и Kafka для взаимодействия с источниками 4 поколения являются частью инфраструктуры Archiving и конфигурируются его сопровождением.
Kafka Прикладного журнала относится к инфраструктуре Прикладного журнала. Archiving является для нее клиентом. Поэтому при настройке взаимодействия с данной Kafka выпускаются только клиентские сертификаты (смотрите раздел «Создание клиентских сертификатов»).
Переход с Kafka на Corax#
Для перехода на Corax выполните следующие действия:
Определите все нестандартные (имеющие параметры со значениями, отличающимеся от значений по умолчанию) конфигурации топиков на старой Kafka на каждом узле брокеров Kafka в файле
server.properties.Отключите модули Archiving на всех стендах, связанных с данной Kafka.
Пропишите Corax в Platform V Configuration (описано в разделе Настройка серверов Kafka), установите сертификаты (см. раздел Генерация сертификата).
Запустите модули Archiving (см. Сценарии администрирования.
Сконфигурируйте топики аналогично исходной конфигурации, определенной в пункте «1» (например, увеличьте количество партиций, время хранения и т.д.).
Создание клиентских сертификатов#
Помимо создания сертификата для сервера также необходимо выпустить клиентские сертификаты для каждой Kafka.
Создание клиентского сертификата интеграционной Kafka#
Создайте клиентский сертификат. Он необходим Archiving для чтения и записи в топики. Процедура выпуска аналогична серверному сертификату.
После выпуска сертификата сохраните его DNAME как параметр конфигурации
pprbod-source-provider-v4@kafka.tsa.principalв формате:User:CN=00CA....brf.ru,OU=00CA,O=Savings Bank of the Russian Federation,C=RU. Путь к сертификату сохраните как параметр конфигурацииpprbod-source-provider-v4@kafka.ssl.keystore.location.Получите от КАП клиентский сертификат для чтения и записи в топики интеграционой Kafka Archiving.
Получите DNAME клиентского сертификата КАП и запомните его как параметр конфигурации
pprbod-source-provider-v4@kafka.cap.principalв формате:User:CN=00CA....brf.ru,OU=00CA,O=Savings Bank of the Russian Federation,C=RU.Создайте клиентский сертификат администратора, который необходим Archiving для создания топиков.
Путь к сертификату сохраните как параметр конфигурации
pprbod-source-provider-v4@kafka.admin.ssl.keystore.location.Выдайте клиентскому admin-сертификату SSL для интеграционной Kafka Archiving Devops-права: автосоздание и автоконфиг топиков.
Необходимые права:

Выдайте клиентскому сертификату SSL Archiving для интеграционной Kafka Archiving права all на группу '*'.
Выдайте клиентскому сертификату SSL КАП для интеграционной Kafka Archiving права all на группу '*'.
Сохраните адреса брокеров Kafka как параметр конфигурации:
pprbod-source-provider-v4@integration-environment.bootstrap.servers.Проверьте, что указаны SSL порты Kafka (пример параметра:
<ip-адрес1>:9093,<ip-адрес2>:9093,<ip-адрес3>:9093).
Создание клиентского сертификата Kafka 4-3#
Создайте клиентский сертификат с правами на чтение всех топиков. Он необходим Archiving для чтения из топиков.
Разместите сертификат на каждом из узлов Archiving.
Путь к сертификату запомните как параметр конфигурации
pprbod-transport-kafka-lib@kafka.consumer.ssl.keystore.location.Создайте клиентский сертификат для записи с правами на запись во все топики. Необходим Archiving для записи в любой из топиков.
Разместите сертификат на каждом из узлов Archiving.
Путь к сертификату запомните как параметр конфигурации
pprbod-transport-kafka-lib@kafka.producer.ssl.keystore.location.Создайте клиентский admin-сертификат. Необходим Archiving для создания топиков.
Путь к сертификату запомните как параметр конфигурации
pprbod-source-provider-v4@kafka.aj.ssl.keystore.location.Выдайте клиентскому admin-сертификату SSL для интеграционной Kafka Archiving Devops права: автосоздание и автоконфиг топиков.
Необходимые права:

Выдайте клиентскому сертификату SSL Archiving для интеграционной Kafka 4-3 права all на группу '*'.
Сохраните адреса брокеров Kafka как параметр конфигурации
pprbod-transport-kafka-lib@bootstrap.servers.Проверьте, что указаны SSL порты Kafka (пример параметра:
<ip-адрес1>:9093,<ip-адрес2>:9093,<ip-адрес3>:9093).
Создание клиентского сертификата Kafka Прикладного Журнала#
Осуществляется сопровождением сервиса Прикладной Журнал. Для работы требуются сертификаты с правами на чтение и на запись (разные).
Разместите выпущенные сертификаты на узлах Archiving в каталогах, пути до которых указаны в конфигурации Прикладного журнала в артефакте:
application-journal@kafka.consumer.ssl.keystore.location— сертификат на чтение;application-journal@kafka.producer.ssl.keystore.location— сертификат на запись.
После выполнения всех шагов настройка всех Kafka завершена.
Выпуск сертификата Archiving для Ignite SE 4.2100.6#
Выпуск сертификатов неразрывно связан с безопасным режимом Ignite. Безопасный режим активирует работу через SSL, а также отправку событий в подсистему аудит. Конфигурация безопасного режима начинается с установки JVM параметров на стенде.
Параметр |
Описание |
Значения |
|---|---|---|
|
Отключение управления кластером через MBeans |
|
|
Имя кластера, одинаковое значение у всех узлов кластера |
|
|
Тип (контур) кластера, одинаковое значение у всех узлов кластера. Указывается в зависимости от назначения стенда |
st / ift / psi / prom |
Опции можно указать в конце файла [дирeктория wildfly]/bin/standalone.conf.
Например, для типа кластера CLUSTER (для других стендов изменится только контур):
JAVA_OPTS="$JAVA_OPTS -DIGNITE_CLUSTER_TYPE=CLUSTER -DIGNITE_CLUSTER_NAME=arch-journal -DIGNITE_MBEANS_DISABLED=true"
Хранилище ключей#
Для серверных узлов Ignite необходимо подготовить сертификат. Он будет одинаковый для всех узлов в кластере. На этом этапе важно правильно сформировать CN для сертификата.
Генерация сертификата#
На основе стенда, для которого планируется выпустить сертификат, необходимо определить следующие параметры.
Параметр |
Описание |
Значения |
Особенность |
|---|---|---|---|
|
DNS-имя узла, до появления централизованной системы управления сертификатами проверка не осуществляется |
boston / denon / kb / rb |
Ни на что не влияет, но должен быть |
|
Имя кластера, одинаковое значение у всех узлов кластера |
arch-journal |
Должен совпадать с указанным в JVM опциях |
|
Тип (контур) кластера, одинаковое значение у всех узлов кластера. Указывается в зависимости от назначения стенда |
тип (контур) кластера |
Должен совпадать с указанным в JVM опциях |
Шаблон для CN сертификата:
00CA0000<CERTIFICATE_TYPE><LOGIN>@<IGNITE_NODE_NAME>.<IGNITE_CLUSTER_TYPE>.<IGNITE_CLUSTER_NAME>.sbrf.ru
00CA0000SIgnitePPRBARCH\@arch-journal.ru
00CA0000CIgniteClientPPRBARCH\@arch-journal.ru
CERTIFICATE_TYPE — буква перед логином:
S — серверный сертификат;
C — клиентский сертификат.
IgnitePPRBARCH — логин, под которым узел будет подключаться к кластеру. Должен совпадать с серверным логином в PPRBARCH-security-data.json.
IgniteClientPPRBARCH — логин клиента, который будет подключаться к кластеру. Должен совпадать с клиентским логином в PPRBARCH-security-data.json.
При генерации сертификата укажите уникальный пароль, удовлетворяющий требованиям безопасности к его составу. В <CN> вставьте заполненный выше шаблон.
Команда на создание сертификата:
keytool -genkey -alias serverNode -keystore serverNode.jks -keyalg RSA -keysize 2048 -dname "CN=<CN>, OU=00CA, O=Savings Bank of the Russian Federation, C=RU"
Создание запроса на подпись сертификата#
Выполните запрос на подпись сертификата:
keytool -keystore serverNode.jks -alias serverNode -certreq -file serverNode-certreq.csr
Подпись сертификата через RLM#
Для подписи сертификата необходимо сформировать запрос в RLM. Процесс формирования запроса зависит от полигона выпуска.
Внимание!
В поле Тип сертификата выберите Серверно-клиентский.

Импорт сертификатов удостоверяющего центра#
Импортируйте в JKS-хранилище сертификаты удостоверяющего центра (УЦ), которым подписаны сертификаты на предыдущем шаге. Это обязательно для последующего импорта подписанного сертификата, так как keytool проверяет корректность всей цепочки сертификации при импорте.
keytool -keystore serverNode.jks -alias "Test Root CA 2" -import -file "Test Root CA 2.cer"
keytool -keystore serverNode.jks -alias "Sberbank Test Issuing CA 2" -import -file "Sberbank Test Issuing CA 2.cer"
Импорт подписанного сертификата#
Импортируйте подписанный через ЗНО сертификат в JKS-хранилище командой:
keytool -keystore serverNode.jks -alias serverNode -import -file <путь к подписанному сертификату>
Удаление сертификатов удостоверяющего центра#
Текущая реализация менеджера ключей в Ignite и плагине использует первый встретившийся сертификат. Поэтому сертификат должен быть один.
Удалите из JKS-хранилища сертификаты УЦ, добавленные в разделе «Импорт сертификатов удостоверяющего центра»
keytool -keystore serverNode.jks -alias "Test Root CA 2\" -delete
keytool -keystore serverNode.jks -alias "Sberbank Test Issuing CA 2" --delete
Проверка корректности созданных сертификатов#
Проверьте целостность созданных сертификатов командой:
keytool -v --list --keystore serverNode.jks | awk '/Owner:|Issuer:|Your keystore contains|Certificate chain length/'Пример вывода:
Your keystore contains 1 entry Certificate chain length: 3 Owner: CN=00CA0000SIgnitePPRBARCH\@arch-journal.ru, OU=00CA, O=Savings Bank of the Russian Federation, C=RU Issuer: CN=Sberbank Test Issuing CA 2, DC=ca, DC=sbrf, DC=ru Owner: CN=Sberbank Test Issuing CA 2, DC=ca, DC=sbrf, DC=ru Issuer: CN=Test Root CA 2 Owner: CN=Test Root CA 2 Issuer: CN=Test Root CAВывод должен содержать:
Your keystore contains 1 entry;
Certificate chain length: 3;
Issuer: УЦ банка.
Внимание!
Обязательно проверьте в сертификате наличие поля
ExtendedKeyUsagesс двумя записями -serverAuthиclientAuthкомандой:keytool -v --list --keystore serverNode.jks.Вывод обязательно должен содержать следующие строки:
ExtendedKeyUsages [ serverAuth clientAuth ]Переместите сертификаты, подписанные УЦ, в truststore.
keytool -keystore truststore.jks -alias \"Test Root CA 2\" -import -file \"Test Root CA 2.cer\"\ keytool -keystore truststore.jks -alias \"Sberbank Test Issuing CA 2\" -import -file \"Sberbank Test Issuing CA 2.cer\"
Конфигурирование учетных записей Ignite#
Файл PPRBARCH-security-data.json содержит роли и пользователей Ignite. Файл должен содержать хешированые пароли. Логин пользователя должен совпадать с логином в сертификате.
Получить хеш и соль можно с помощью скрипта ise-user-control.sh, который находится в дистрибутиве Ignite по пути bin/ise-user-control.sh. Предварительно необходимо запустить узел скриптом bin/startServer.sh, а после генерации остановить скриптом bin/stopServer.sh.
Дистрибутив Ignite-SE-4.2100.6: запуск/остановка узла для генерации хеша
./bin/startServer.sh
./bin/stopServer.sh
Команда для генерации хеша
./bin/ise-user-control.sh generate-hash
Результат выполнения:
bash-3.2$ ./bin/ise-user-control.sh generate-hash
User control utility.
Time: 2021-02-09T11:47:57.021
Command [generate-hash] started.
Enter value for --password (password)
Enter value for --confirm-password (confirm password):
Salt: 72C44DCB781208723C177F595986B4A03DF44E23B850A11DF3098691D557CA6A
Salted hash: F18EE9C089DD482DF638DA9407DFA2388165408FAE8EF6895B34FE7051B0BC1DD3438A79351D3BE45F4F47E2A15F5154E8305A8F8A835D801751D83C174C388C
Command [generate-hash] finished successfully.Control utility has completed execution at: 2021-02-09T11:48:07.227
Execution time: 10206 ms
Полученные Salt и Salted hash необходимо разместить в параметрах salt и password соответственно.
{
"creds":
"login": "testUser1",
"password":
"F18EE9C089DD482DF638DA9407DFA2388165408FAE8EF6895B34FE7051B0BC1DD3438A79351D3BE45F4F47E2A15F5154E8305A8F8A835D801751D83C174C388C"
"salt": "72C44DCB781208723C177F595986B4A03DF44E23B850A11DF3098691D557CA6A"
}
Рабочая директория Ignite#
Параметр igniteWorkDir должен указывать на рабочую директорию Ignite. У WildFly должны быть права на чтение и запись в эту папку. Например, когда владельцем файла является user WildFly.
Пример конфигурации (в конфигураторе) с включенным безопасным режимом:
igniteWorkDir=/usr/WF/ignite
addresses=10.XX.XXX.XX:XXXXX..XXXXX;
localPort=47500
secureGrid=true
keyStoreFilePath=/usr/WF/certs/IgnitePPRBARCH-keystore.jks
keyStorePassword=123456
trustStoreFilePath=/usr/WF/certs/truststore.jks
trustStorePassword=123456
sslProtocol=TLSv1.2
keyStoreType=JKS
serverLogin=IgnitePPRBARCH
serverPassword=123456
allCredentialsFilePath=/usr/WF/certs/PPRBARCH-security-data.json
sslClientAuth=true
clientLogin=IgniteClientPPRBARCH
clientPassword=123456
clientKeyStoreFilePath=/usr/WF/certs/IgniteClientPPRBARCH-keystore.jks
clientKeyStorePassword=123456
clientTrustStoreFilePath=/usr/WF/certs/truststore.jks
clientTrustStorePassword=123456
clientTransactionTimeout=300000
Подключение Archiving к ОТТ#
Список модулей Archiving, для которых нужна настройка ОТТ#
arch-journal-cdm-init;
arch-journal-gbk-init;
arch-journal-ucp-consents-init;
arch-journal-dataspace-init;
pprbod-applied-journal-handler;
pprbod-data-quality-processor;
pprbod-offline-dq-collector-v4;
pprbod-source-provider-v4;
pprbod-stream-processor.
Порядок настройки ОТТ для отдельного модуля#
Установка клиентских модулей OTT на сервера приложений Archiving.
Генерация секретных ключей и сертификатов.
Размещение на серверах Archiving секретных ключей.
Размещение на серверах Archiving сертификатов OTT.
Настройки в Конфигураторе.
Перезапуск серверов приложений фабрики.
№ |
Этап |
ИФТ |
НТ |
ПСИ |
ПРОМ |
|---|---|---|---|---|---|
1 |
Установка клиентских модулей OTT на сервера приложений Archiving |
Выполняют администраторы Archiving, актуальную версию OTT можно запросить у администраторов |
Выполняют администраторы Archiving, актуальную версию OTT можно запросить у администраторов |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip адреса на портале |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip-адреса на портале и создать ЗНО |
2 |
Генерация секретных ключей и сертификатов |
Администраторы Archiving создают заявку в Jira. В заявке указать: 1. Проект: Сопровождение <имя системы> 2. Component/s: Infrastructure_ТС 3. В описании: список идентификаторов в ММТ (module.id) всех модулей Archiving (из пункта 4.1), контур ИФТ (КБ/РБ/PCI DSS) |
Администраторы Archiving создают заявку в Jira. В заявке указать: 1. Проект: Сопровождение <имя системы> 2. Component/s: Infrastructure_ТС 3. В описании: список идентификаторов в ММТ (module.id) всех модулей Archiving (из пункта 4.1), контур ИФТ (КБ/РБ/PCI DSS) |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip адреса на портале |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip-адреса на портале и создать ЗНО |
3 |
Размещение на серверах Archiving секретных ключей |
Выполняют администраторы Archiving. Полученные в рамках заявки из п.2 секретные ключи размещаются на серверах фабрики в каталоге /opt/pprb/keystore/ |
Выполняют администраторы Archiving. Полученные в рамках заявки из п.2 секретные ключи размещаются на серверах фабрики в каталоге /opt/pprb/keystore/ |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip адреса на портале |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip-адреса на портале и создать ЗНО |
4 |
Размещение на серверах Archiving сертификатов OTT |
Выполняют администраторы Archiving. Сертификат (пример: ift_ott_public.p12) размещается на серверах технологического сервиса в каталоге /opt/pprb/keystore/ |
Выполняют администраторы Archiving. Сертификат (пример: nt_ott_public.p12) размещается на серверах технологического сервиса в каталоге /opt/pprb/keystore/ |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip адреса на портале |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip-адреса на портале и создать ЗНО |
5 |
Настройки в Конфигураторе |
Администраторы Archiving информируют администраторов и координаторов об успешном выполнении работ по пп. 3 и 4. После согласования координатора администраторы применяют настройки в Конфигураторе для включения OTT |
Администраторы Archiving информируют администраторов об успешном выполнении работ по пп. 3 и 4. После этого администраторы применяют настройки в Конфигураторе для включения OTT |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip адреса на портале |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip-адреса на портале и создать ЗНО |
6 |
Перезапуск серверов приложений фабрики |
Выполняют администраторы Archiving |
Выполняют администраторы Archiving |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip адреса на портале |
Выполняют администраторы. Администратору технологического сервиса необходимо заранее указать module.id и ip-адреса на портале и создать ЗНО |
Настройка PostgreSQL (Platform V Pangolin SE (PSQ))#
Базовая настройка PostgreSQL (рекомендуется использовать Platform V Pangolin SE (PSQ))#
Подготовка БД#
Закажите КТС PostgreSQL (Platform V Pangolin SE (PSQ)) (заявка может отличаться в зависимости от полигона) с указанием компонентов:
имя табличного пространства;
имя базы данных;
владелец БД (указать УЗ администратора/администраторов: кто будет работать с первичной настройкой/подготовкой базы и сопровождать ее);
ТУЗ системы/сервиса;
имя схемы.
Внимание!
Если используется кластерная конфигурация, все дальнейшие команды должны выполняться только на мастер-узле.
Подключение к PostgreSQL (Platform V Pangolin SE (PSQ)) через pgAdmin#
Запустите pgAdmin. Откроется вкладка в браузере с запросом мастер-пароля (нужно ввести и запомнить пароль, так как он будет запрашиваться всегда при открытии pgAdmin).
В разделе Servers выберите Add New Server, далее во вкладке General укажите имя сервера (для отображения в списке серверов).
Откройте вкладку Connection и укажите ip/dns name сервера БД в поле host).
В поле Port укажите порт, который был указан в почте (обычно это 5432 или 5433) .
В поле Maintenance database укажите название базы.
В полях Username/password укажите логин/пароль учетной записи и выполните подключение к базе.
Для выполнения переподключения к базе под другой учетной записью нажмите правой кнопкой на сервер и выберите Disconnect, далее зайдите в Properties и укажите соответствующий логин/пароль.
После получения КТС:
ы1. Подключитесь к БД через pgAdmin (или другой клиент) под УЗ «Владелец БД» с указанным портом в письме (обычно это порт 5432 или 5433). 2. Смените транспортный паролль для ТУЗ (пароль по умолчанию Supertransport$123):
```
alter user "<ТУЗ>" with password '<новый_пароль>';
```
Пароль должен состоять из 15 символов, включая спецсимволы, цифры и заглавные буквы.
Выполните команду:
set role as_admin;Создайте схему
pprbod_cfg. Она требуется БД для работы ТС Архивирование, так как у скриптов Liquibase ТСА отсуствуют права на создание схем. Команда на создание схемы:create schema if not exists pprbod_cfg;Укажите использование схемы по умолчанию командой:
alter role "<ТУЗ>" in database <имя БД> set search_path to <имя схемы данных>;Выдайте привелегии для ТУЗ командой:
grant ALL on schema <имя схемы данных> to "<ТУЗ>";Установите максимальное количество соединений с БД. Рассчитывается по формуле: <количество серверов Archiving> *
jdbc.maxPoolSize(параметр конфигуратора в артефакте pprbod-source-provider-v4, по умолчанию 5) + 10 (на случай необходимости дополнительных подключений).
Возможные проблемы:
Скрипт
liquibaseпри выполненииupdateблокирует параметр в базе. Можно проверить командойselect * from DATABASECHANGELOGLOCK. Если параметр будетLocked true, необходимо выполнить командуTruncate table DATABASECHANGELOGLOCKдля очистки значения в таблице.Баг при выдаче КТС с владельцем группы
db_admin(должна бытьas_admin): необходимо оформлять ЗНО на группу SberInfra УБД Администрирование СУБД PostgreSQL (Platform V Pangolin SE (PSQ)).Если схема не выбралась, укажите схему для сессии командой
SET search_path TO <имя схемы данных>. Посмотреть можно через pgAdmin. Для этого нажмите правой кнопкой мыши по базе htmdb и выберите properties. В поле owner должен бытьas_admin.
Перечисление списка схем:
select schema_name from information_schema.schemata;
Настройка PostgreSQL (рекомендуется использовать Platform V Pangolin SE (PSQ)) для работы через SSL соединение#
Создание центра сертификации для выпуска самоподписанных сертификатов.#
Пропустите данный шаг, если выпуск самоподписанных сертификатов не требуется.
Создайте центр сертификации (CA — Certificate Authority), с помощью которого вы сможете выпускать сертификаты как для серверов, так и для клиентов. CA можно создать с помощью пакета OpenSSL.
Создайте корневой ключ:
openssl genrsa -out rootCA.key 2048
Создайте корневой сертификат:
openssl req -x509 -new -key rootCA.key -days 10000 rootCA.crt
Создание запроса на подпись сертификатов#
Сервер
Создание ключа и сертификата для сервера.
Создайте ключ сервера:
openssl genrsa -out server.key 2048Создайте запрос на сертификат:
openssl req -new server.key -out server.csrПри заполнении полей в поле Common Name (CN) важно указать имя сервера: домен или IP адрес (Например, доменное имя: tkli-pprb3862).
Подпишите запрос на сертификат корневым сертификатом:
openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000Клиент
Создайте клиентский ключ аналогично серверному, только имена файлов измените соответственно на
client.key,client.crt,client.csr. В поле Common Name (CN) укажите логин, под которым будет выполняться подключение к БД.Для выпуска не самодписанных сертификатов создайте запрос на подпись сертификатов в RLM, приложите к нему файлы с расширением "csr".
Создание хранилища ключей и хранилища доверенных сертификатов для клиента#
Создайте хранилище ключей PKCS12 из закрытого ключа и открытого сертификата:
openssl pkcs12 -export -name client-cert -in client.crt -inkey client.key -out client_keystore.p12`Преобразуйте хранилище ключей PKCS12 в хранилище ключей JKS:
keytool -importkeystore -destkeystore client_keystore.jks -srckeystore client_keystore.p12 -srcstoretype pkcs12 -alias client-certИмпортируйте сертификат сервера в доверенное хранилище клиента:
keytool -import -alias server-cert -file rootCA.crt -keystore client_truststore.jks
Настройка конфигурационного файла PostgreSQL (рекомендуется использовать Platform V Pangolin SE (PSQ))#
Скопируйте корневой сертификат CA, ключ и сертификат сервера в каталог БД:
cp server.key /var/opt/rh/rh-postgresql12/lib/pgsql/data cp server.crt /var/opt/rh/rh-postgresql12/lib/pgsql/data cp rootCA.crt /var/opt/rh/rh-postgresql12/lib/pgsql/data chown postgres: /var/opt/rh/rh-postgresql12/lib/pgsql/data/server.{crt,key} /var/opt/rh/rh-postgresql12/lib/pgsql/data/rootCA.crt chmod 600 /var/opt/rh/rh-postgresql12/lib/pgsql/data/server.crtОтредактируйте конфигурацию PostgresSQL SE:
nano /var/opt/rh/rh-postgresql12/lib/pgsql/data/postgresql.conf #(конфигурационный файл может быть custom.conf) ssl = on ssl_ca_file = 'rootCA.crt' ssl_cert_file = 'server.crt' ssl_key_file = 'server.key' ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' nano /var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf hostssl arch_poseydon poseydon all md5 clientcert=verify-fullПосле внесения изменений перезапустите PostgreSQL (Platform V Pangolin SE (PSQ)).
Установка Archiving на стенд#
Загрузите конфигурационные файлы в конфигуратор Platform V (через который осуществляется конфигурирование WildFly) на полигоне. Для этого необходимо сделать следующее:
Импортировать конфигурационные файлы модулей:
arch-journal-cdm-init-config-struct.xml;
arch-journal-gbk-init-config-struct.xml;
arch-journal-ucp-consents-init-config-struct.xml;
arch-journal-dataspace-init-config-struct.xml;
pprbod-applied-journal-handler-config-struct.xml;
pprbod-data-quality-processor-config-struct.xml;
pprbod-grid-lib-v4-config-struct.xml;
pprbod-handler-config-struct.xml;
pprbod-offline-dq-collector-v4-config-struct.xml;
pprbod-source-provider-v4-config-struct.xml;
pprbod-stream-processor-config-struct.xml.
И другие (при наличии их в каталоге
config).Выполните импорт настроек из property-файлов для импортированных конфигураций.
Именование конфигурационных файлов осуществляется по следующему шаблону: <название модуля>.properties.<расширение полигона>.
Общие параметры#
Параметры для всех модулей сохранены в файлах
<module>.properies.<server>
Примеры названия properties файла:
pprbod-applied-journal-handler.properties.server1;pprbod-grid-lib-v4.properties.server2;pprbod-data-quality-processor.properties.server3.
Частный случай для развертывания на стенде ИФТ КБ. Необходимо импортировать настройки:
arch-journal-cdm-init.properties.boston;
arch-journal-gbk-init.properties.boston;
arch-journal-ucp-consents-init.properties.boston;
pprbod-applied-journal-handler.properties.boston;
pprbod-data-quality-processor.properties.boston;
pprbod-grid-lib-v4.properties.boston;
pprbod-offline-dq-collector-v4.properties.boston;
pprbod-source-provider-v4.properties.boston;
pprbod-stream-processor.properties.boston.
Примечание
Некоторые параметры зависят от окружения установки модуля.
Доработка конфигурации под полигон развертывания#
Жирным шрифтом помечены те параметры, которые необходимо настраивать. Если Значение по умолчанию не заполнено, параметр необходимо указать, исходя из конфигурации полигона; если заполнено, рекомендуется заполнить, исходя из комментария в описании, или оставить как есть. Перечень конфигурационных файлов, подлежащих настройке, приведен в разделе «Загрузка новой конфигурации Archiving».
prbod-source-provider-v4#
Настройки БД
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Драйвер JDBC (поддерживается только postgres) |
|
JDBC URL подключение к БД |
|
|
Имя пользователя БД |
|
|
Пароль БД |
|
|
|
Максимальное число одновременных подключений к БД (зависит от количества слотов) |
|
|
Минимальное допустимое количество одновременных подключений к БД |
|
|
Режим подключения к БД с использованием защищенного SSL соединения |
|
|
Версия протокола защиты транспортного уровня |
|
|
Описания режимов SSL |
|
|
Имя класса фабрики |
|
|
Тип keystore хранилища |
|
Путь к keystore, клиентский сертификат, выпущенный в разделе «Настройка PostgreSQL (рекомендуется использовать Platform V Pangolin SE (PSQ)) для работы через SSL соединение». Обязательно к заполнению в случае |
|
|
Пароль от keystore. Обязательно к заполнению в случае |
|
|
|
Тип truststore хранилища |
|
Путь к truststore , хранилищу доверенных сертификатов. Обязательно к заполнению в случае |
|
|
Пароль от truststore, обязательно к заполнению в случае |
Название полигона
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
Название полигона, по шаблону: |
Настройки подключения к Kafka
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
Строка подключения для брокеров Kafka Archiving |
|
|
|
Протокол подключения к Kafka (PLAINTEXT или SSL) |
|
Путь к keystore, клиентскому сертификату. Обязательно к заполнению в случае |
|
|
Пароль к keystore. Обязательно к заполнению в случае |
|
|
Путь к truststore. Обязательно к заполнению в случае |
|
|
Пароль от truststore. Обязательно к заполнению в случае |
|
|
Пароль от ключа. Обязательно к заполнению в случае |
Настройки продюсера
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Префикс для |
|
|
Количество подтверждений от лидера при записи в интеграционную Kafka |
|
|
Количество попыток повторной отправки при неудачной записи в интеграционную Kafka |
|
|
Размер пакета для отправки по сети при записи в интеграционную Kafka |
|
|
Длительность искусственной задержки для группировки отправляемых записей в интеграционную Kafka |
|
|
Таймаут записи в интеграционную Kafka |
|
|
Алгоритм сжатия передаваемых записей при записи в интеграционную Kafka |
|
|
Количество байт в буфере продюсера |
|
|
Максимальное количество байт в одном пакете (большие записи разбиваются на пакеты этого размера) |
|
|
Сериализатор ключей |
|
|
Сериализатор значений |
Настройки консюмера
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Префикс консюмер-группы при чтении интеграционной Kafka |
|
|
Автокоммит при чтении записей |
|
|
Периодичность отправки коммитов при включенном автокоммите |
|
|
Максимальный интервал, когда консюмер может не посылать hearth beat и автокоммитов, после которого он будет считаться неисправным и будет исключен |
|
|
Десериализатор ключей |
|
|
Десериализатор значений |
|
|
Стратегия назначения оффсета при подключении новой консюмер группы: |
Настройки автоматического конфигурирования топиков
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Количество партиций топика данных |
|
|
Фактор репликации топика данных |
|
|
Ретеншн топика данных |
|
|
Количество партиций топика коммитов |
|
|
Фактор репликации топика коммитов |
|
|
Ретеншн топика коммитов |
|
|
Количество партиций топика ТКД |
|
|
Фактор репликации топика ТКД |
|
|
Ретеншн топика ТКД |
|
|
Количество партиций топика оффлайн ТКД |
|
|
Фактор репликации топика оффлайн ТКД |
|
|
Ретеншн топика оффлайн ТКД |
|
|
Количество партиций топика ответов оффлайн ТКД |
|
|
Фактор репликации топика ответов оффлайн ТКД |
|
|
Ретеншн топика ответов оффлайн ТКД |
|
|
Количество партиций топика ответов ТКД |
|
|
Фактор репликации топика ответов ТКД |
|
|
Ретеншн топика ответов ТКД |
|
|
Количество партиций топика ошибок |
|
|
Фактор репликации топика ошибок |
|
|
Ретеншн топика ошибок |
|
|
Количество партиций топика необработанных данных |
|
|
Фактор репликации топика необработанных данных |
|
|
Ретеншн топика необработанных данных |
|
|
Количество партиций системных топиков |
|
|
Фактор репликации системных топиков |
|
|
Ретеншн системных топиков |
|
Принципал КАП, которому будут даны права |
|
|
Принципал Platform V Archiving, которому будут даны права |
|
|
|
Таймаут подключения к Kafka (распространяется только на админ клиент) |
|
|
Ретеншн батч топика |
|
|
Количество партиций батч топика (рекомендованное значение - количество узлов Archiving) |
|
|
Фактор репликации батч топика |
|
|
Ретеншн топика ответов DRP |
|
|
Количество партиций топика ответов DRP (не более значения количества брокеров Kafka) |
|
|
Фактор репликации топика ответов DRP |
|
|
Ретеншн топика запросов DRP |
|
|
Количество партиций топика запросов DRP (не более значения количества брокеров Kafka) |
|
|
Фактор репликации топика запросов DRP |
|
|
Ретеншн топика данных Init |
|
|
Количество партиций топика данных Init (не более значения количества брокеров Kafka) |
|
|
Фактор репликации топика данных Init |
Настройки системных топиков
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
таймаут обработки одной партиции |
Прочие параметры
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Пропускать невалидные источники при старте |
|
|
Интервал обновления данных о источнике |
|
Соль для хеширования атрибутов белого списка |
|
|
|
Автосоздание топиков (в конфигураторе указывать каждый источник в отдельном поле) |
|
default |
(default|mock|prod) - параметр, который определяет какие семафоры вы слушаете |
Параметры админ-клиента транспортной Kafka
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Автосоздание топиков |
|
Путь к хранилищу доверенных сертификатов для интеграционной Kafka |
|
|
Пароль от хранилища доверенных сертификатов для интеграционной Kafka |
|
|
Путь к админскому сертификату для интеграционной Kafka Archiving (набор ключей, который содержится в данном хранилище, используется при создании и настройке интеграционных топиков) |
|
|
Пароль от хранилища ключей и сертификатов для интеграционной Kafka |
|
|
Пароль от ключа для интеграционной Kafka |
|
|
|
Время (таймаут) ожидания подписывания консьюмеров на топики перед началом обработки данных из них. Настройка общая для всех системных и прикладных топиков. Для промышленных сред, сред ИФТ-ПСИ не допускается установка околонулевых значений. Рекомендуемое значение - 1 минута |
|
|
Ограничивающий лимит числа потоков на системной службе отслеживания доставки DeliveryTracker. Допускается его уменьшение или увеличение в ходе тонкой настройки инстанса Archiving |
Параметры, определяющие работу интерцепторов для функционала целостности и полноты в части ЭЦП сообщений
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
Включение интерцепторов для функционала полноты в разрезе источников. Содержит список мнемоник источников, по которым включается функционал подписывания сообщений в интеграционной Kafka. Например |
|
|
|
Имя класса реализации интерцептора продюсера. Не меняется в текущих релизах ТСА относительно значения по умолчанию |
|
|
Имя класса реализации (сервиса) провайдера ЭЦП. Не меняется в текущих релизах ТСА относительно значения по умолчанию — применяется реализация Synapse |
|
Имя заголовка сообщения Kafka, в который помещается ЭЦП. При включении для хотя бы одного источника не может быть пустым. В разрезе отдельных источников не конфигурируется - заголовок всегда одинаковый |
|
|
Префикс атрибутов, используемых для кастомизации формирования ЭЦП. В текущих реализациях используются умолчательные значения реализации Synapse - значение всегда пустое. Возможность кастомизации заложена на будущие реализации |
|
|
|
Признак остановки обработки пакета в случае, если подпись в заголовке не совпала. Всегда должен быть |
|
|
Алгоритм ЭЦП. Не меняется. Допустим любой RSA-алгоритм (если ключ у сертификата RSA), который доступен через security провайдеры jvm, |
|
Имя ключа (алиас) в локальном keystore для формирования подписи. Должно заполняться согласно выпущенному сертификату ЭП |
|
|
Имя заголовка сообщения Kafka, в который помещается имя алгоритма подписи для проверки принимающей стороной. В текущих реализациях используются значения реализации Synapse по умолчанию - значение всегда пустое. Возможность кастомизации заложена на будущие реализации |
|
|
Имя заголовка сообщения Kafka, в который помещается открытый ключ для проверки подписи принимающей стороной. В текущих реализациях используются значения реализации Synapse по умолчанию — значение всегда пустое. Возможность кастомизации заложена на будущие реализации |
|
|
Позволяет переопределить SSL провайдер для взаимодействия с Kafka для работы интерцептора ЭП. Не применяется и не заполняется никогда |
|
|
Путь на ЛФС к хранилищу с сертификатами для формирования ЭЦП сообщений Kafka. Переопределяет базовый путь к хранилищу сертификатов, используемых для подключения к интеграционной Kafka. Применяется и заполняется в случае, если сертификат ЭП не был экспортирован из контейнера и импортирован в базовое хранилище, а был размещен в отдельном keystore |
|
|
Пароль от хранилища сертификатов для формирования ЭЦП сообщений Kafka. Переопределяет базовый пароль от хранилища сертификатов. Используется в паре с параметром cap.interceptor.signature.certificate.ssl.keystore.location в случае, если для ключа ЭП использовано отдельное хранилище |
|
|
Позволяет переопределить SSL клиентский сертификат для взаимодействия с Kafka для работы интерцептора ЭП. Должен соответствовать применяемому Keystore выше |
Параметры, определяющие работу прозрачного шифрования (Transparent Data Encryption, TDE) для функционала целостности и полноты в части шифрования Kafka трафика.
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
Включение Transparent Data Encryption в разрезе источников для интеграционных топиков. Содержит список мнемоник источников, по которым включается функционал прозрачного шифрования сообщений в интеграционной Kafka. Например, |
|
|
Включение Transparent Data Encryption в разрезе источников для топиков сырых данных. Содержит список мнемоник источников, по которым включается функционал прозрачного шифрования сообщений в топиках сырых данных. Например, |
|
|
|
Включение шифрования на топиках доставки сообщений (системных). Повышает устойчивость, но снижает производительность. Для текущих инсталляций рекомендуется |
|
Секрет для алгоритма HMAC для прозрачного шифрования данных. Должен удовлетворять требованиям доменной парольной политики к секретам |
|
|
Соль для алгоритма шифрования. Должна удовлетворять требованиям доменной парольной политики к секретам |
|
|
|
Фабрика, реализующая алгоритм шифрования (имя реализации) JCP |
|
|
Алгоритм шифрования. Допустимые значения ChiperSpec |
|
|
Алгоритм шифрования секрета |
Параметры, определяющие работу модуля контроля задержки на RAW Topic и Data Topic.
| Название | Значение по умолчанию | Описание | |—|—|—|—|—| | cap.cluster.name | | clr1;clr2;clr3 - список кластеров(не стенды) через ';'. При отсутствии КАП может быть произвольным. По информации от КАП, в зонах его присутствия списки кластеров следующие: DEV - стенды: pprbod-source-provider-v4@cap.cluster.name=dev;sdpdevod; IFT - стенды: pprbod-source-provider-v4@cap.cluster.name=ift;iftnrt;sdpiftod ПСИ-стенды: pprbod-source-provider-v4@cap.cluster.name=clatsklod;atdisdpcap ПРОМ-стенды: pprbod-source-provider-v4@cap.cluster.name=clsklhbase;clsklhbase2;clsphbase3;sklsdppprb | | journal.deactivation.mode | | (ALL/MAIN) - выбор варианта остановки чтения - останавливаются все потоки, или остановка основного потока векторов изменений, при этом поток ретраев не останавливается | | lag.watcher.refresh.interval.ms | | Интервал проверки проверки лага в милисекундах. (60000 = 1 минута) | | lag.watcher.activate.on.error | | Реакция на ошибку вычисления лага. true - при любой ошибке вычисления лага включаем поток. false - поток не включаем | | data.lag.watcher.off.threshold | | Верхний порог отключения потока для Data Lag Wathcer | | data.lag.watcher.on.threshold | | Нижний порог включения потока для Data Lag Wathcer | | raw.lag.watcher.off.threshold | | Верхний порог отключения потока для Raw Data Lag Wathcer | | raw.lag.watcher.on.threshold | | Нижний порог включения потока для Raw Data Lag Wathcer |
pprbod-grid-lib-v4#
Настройки для работы с Ignite.
Конфигурация данного артефакта полностью зависит от настроек, выполненных на шаге «Конфигурация Ignite на стенде»
В случае, если secureGrid=false, для заполнения обязательны поля: addresses, Platform V DataGridWorkDir, localPort.
Параметр |
Значение по умолчанию |
Значения для контуров ПСИ / ПРОМ |
Описание |
|---|---|---|---|
|
Список discovery-адресов (все узлы, где установлен Archiving) |
||
|
Пример: 10.XX.XXX.XXX:XXXXX |
||
|
Пример: 10.XX.XXX.XXX:XXXX |
||
|
|
Discovery-порт |
|
|
|
Не в папке tmp! Например: |
Временная директория Ignite |
|
Путь до keystore |
||
|
Пароль от keystore |
||
|
Путь до хранилища доверенных CA |
||
|
Пароль к хранилищу доверенных CA |
||
|
TLSv1.2 |
Протокол SSL, пример: TLSv1.2. Если |
|
|
JKS |
Тип keystore, при |
|
|
Логин серверного узла |
||
|
Нехешированный пароль серверного узла |
||
|
Пример: /usr/WF/certs/PPRBARCH-security-data.json |
||
|
|
|
Безопасная таблица |
|
|
|
Использовать SSL для клиентских подключений |
|
Путь до хранилища клиентских ключей |
||
|
Пароль к хранилищу клиентских ключей |
||
|
Путь до хранилища доверенных CA |
||
|
Пароль от хранилища |
||
|
Логин тонкого клиента |
||
|
Нехешированный пароль для тонкого клиента |
||
|
|
Время на клиентскую транзакцию в миллисекундах |
|
|
|
Количество потоков на серверном узле для одновременной работы клиентских подключений |
pprbod-transport-kafka-lib#
Настройки подключения к Kafka
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
Строка подключения для брокеров Kafka (пример: 10.XXX.XXX.XX:XXXX,10.XXX.XXX.XX:XXXX,10.XXX.XXX.XX:XXXX) |
Настройки подключения к Kafka продюсера
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
PLAINTEXT |
Протокол подключения к Kafka ( |
|
Путь к keystore (сертификаты, созданные при конфигурировании Kafka 4-3 с правами чтения) (заполняется, если |
|
|
Пароль к keystore (заполняется, если |
|
|
Путь к truststore (заполняется, если |
|
|
Пароль от truststore (заполняется, если |
|
|
Пароль от ключа (заполняется, если |
|
|
|
Протокол авторизации |
|
|
Тип хранилища ключей |
|
|
Тип хранилища доверенных |
|
|
Предпочтительный протокол авторизации |
Настройки продюсера
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Кол-во попыток повторной отправки при неудачной записи в интеграционную Kafka |
|
|
Размер пакета для отправки по сети при записи в интеграционную Kafka |
|
|
Длительность искусственной задержки для группировки отправляемых записей в интеграционную Kafka |
|
|
Таймаут записи в интеграционную Kafka |
|
|
Алгоритм сжатия передаваемых записей при записи в интеграционную Kafka |
|
|
Количесбайт в буфере продюсера |
|
|
Максимальное количество байт в одном пакете (большие записи разбиваются на пакеты этого размера) |
|
|
Размер буфера для получаемого сообщения |
|
|
Размер буфера для отправляемого сообщения |
|
|
Период времени, после которого метаданные обновляются принудительно |
Настройки подключения к Kafka консюмера
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Протокол подключения к Kafka ( |
|
Путь к keystore (сертификаты, созданные при конфигурировании Kafka 4-3 с правами чтения) (заполняется, если |
|
|
Пароль к keystore (заполняется, если |
|
|
Путь к truststore (заполняется, если |
|
|
Пароль от truststore (заполняется, если |
|
|
Пароль от ключа (заполняется, если |
|
|
|
Протокол авторизации |
|
|
Тип хранилища ключей |
|
|
Тип хранилища доверенных |
|
|
Предпочтительный протокол авторизации |
Настройки консюмера
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Автокоммит при чтении записей |
|
|
Периодичность отправки коммитов при включенном автокоммите |
|
|
Максимальный интервал, когда консюмер может не посылать харт битов и автокоммитов, после которого он будет считаться неисправным и будет исключен |
|
|
Стратегия назначения оффсета при подключении новой консюмер группы: |
|
|
Максимальное количество времени, которое сервер будет заблокирован, прежде чем ответить на запрос fetch, если нет достаточных данных, чтобы немедленно удовлетворить требование, заданное |
|
|
Минимальный объем данных, которые сервер должен возвращать для запроса |
|
|
Максимальная задержка между вызовами |
|
|
Максимальное количество записей, возвращаемых за один запрос |
|
|
Размер буфера для получаемого сообщения |
|
|
Размер буфера для отправляемого сообщения |
|
|
Период времени, после которого метаданные обновляются принудительно |
Параметры протокола 4-3
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Флаг, включающий и отключающий автоконфигурирование топиков в Kafka протокола 4-3 с использованием admin-client. Целевое значение |
|
|
Таймаут запросов |
|
|
Размер пула потоков обработки ответов |
|
|
Размер пула потоков обработки обратных вызовов |
|
|
Гарантированное время жизни записей в транспортных топиках (устанавливается при создании) |
|
|
Фактор репликации, используемый при создании транспортных топиков. Фактическое значение рекомендуется оставлять |
|
|
Количество партиций, устанавливаемое при создании транспортных топиков. Фактическое значение должно устанавливаться согласно рекомендациям по масштабированию, соответственно числу узлов и КТС полигона |
|
Путь к хранилищу доверенных сертификатов для транспортной Kafka протокола 4-3 |
|
|
Пароль от хранилища доверенных сертификатов для транспортной Kafka протокола 4-3 |
|
|
Путь к админскому сертификату для работы admin-client c транспортной Kafka 4-3 (набор ключей, который содержится в данном хранилище, используется при создании и настройке транспортных топиков) |
|
|
Пароль от хранилища ключей для работы admin-client c транспортной Kafka 4-3 |
|
|
Пароль от закрытого ключа клиентского SSL сертификата для транспортной Kafka протокола 4-3 |
|
|
|
Интервал между повторными попытками настройки транспортных топиков (при ошибках) |
|
|
Количество повторных попыток настройки транспортных топиков (при ошибках) |
pprbod-data-quality-processor#
Параметры процессора оффлайн/онлайн ТКД.
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
5 |
Периодичность проверки грида |
Параметры наполняемости кэша для хранения запрошенных в ходе ТКД ключей
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Абсолютное количество объектов, после которого начнется вытеснение ключей |
|
|
Порог заполнения (в процентах) |
|
|
Указывает предел, до которого происходит очистка хранилища ТКД. Указывается дробным числом, где 1 это хранилище, заполненное на 100%. Например, если maxFillingAfterClean=0.9, то при получении контейнера ТКД проверяется, насколько заполнено хранилище, и, если оно заполнено более, чем на 90%, происходит очистка, т.е. удаление отработанных ключей и их объектов. Очистка будет продолжаться, пока в хранилище не освободится до хотя бы 90% |
|
|
Периодичность попыток очистки кэша от отработанных ключей |
|
|
Количество повторных попыток запроса ключа |
|
|
Таймаут повторной отправки ключей, по которым при взаимодействии с источником не был получен ответ |
|
|
Таймаут, после которого требуется повторная отправка записи в неизвестном статусе |
|
|
Время жизни сессии ТКД (минуты) при неактивности (непоступлении новых запросов) |
|
|
Время ожидания в миллисекундах до получения ключей из хранилища |
pprbod-applied-journal-handler#
Параметры адаптера потока (модуль взаимодействия с АС Прикладной журнал).
Параметр |
Значение по умолчанию |
Описание |
Замечание |
|---|---|---|---|
|
|
Код плагина ПЖ для репликации в Archiving |
|
|
|
Количество переотправок журнала при получении ошибок репликации |
|
|
|
Исключение типов ВИ при обработке потока для миграции данных (физического перемещения) между шардами для dataspace |
Регистр букв не важен, типы указывать через запятую. Параметр для источников на DataSpace. Позволяет игнорировать служебные векторы Прикладного Журнала. Если их не игнорировать - Инит будет завершаться ошибкой при переключении между шардами источника. Необходимо игнорировать типы (указать в параметре): |
Детальнее про настройку механизма ретраев см. «Подключение библиотеки для отправки журналов и перехода в StandIn».
pprbod-stream-processor#
Параметры процессора потока данных.
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
|
|
|
Топик, в который следует отправлять данные для Инита: |
|
|
Период ожидания подтверждения доставки данных в КАП (в сек) |
pprbod-offline-dq-collector-v4#
Параметры коллектора данных Init и ТКД (параметры конфигуратора отсуствуют).
arch-journal-cdm-init/arch-journal-ucp-consents-init/arch-journal-gbk-init/arch-journal-dataspace-init#
Параметры адаптеров Init.
Параметр |
Значение по умолчанию |
Описание |
|---|---|---|
|
|
Логин Технологического пользователя, от имени которого будут выполняться процессы |
|
|
Стартовый размер пула для босс-потоков |
|
|
Максимальный размер пула для босс-потоков |
|
|
Размер очереди пула для босс-потоков |
|
|
Стартовый размер пула для обработчиков |
|
|
Максимальный размер пула для обработчиков |
|
|
Размер очереди пула для обработчиков |
|
|
Задержка (в миллисекундах) перед повторением попыток обновления журналов и других вызовов к агенту/координатору |
После выполения всех перечисленных шагов можно приступать к установке компонентов Archiving на стенд.
Установка модулей на WildFly#
Следующим этапом развертывывания Archiving является установка компонентов сервиса на серверы WildFly.
Установка модулей осуществляется по следующему алгоритму:
Установить на WildFly без запуска компоненты, которые присутствуют в дистрибутиве (не включать):
Наименование компонента
Назначение компонента
pprbod-source-provider-v4
JBoss модуль - хранилище системных компонентов сервиса
pprbod-stream-processor
Обработчик данных, отправляющий данные в интеграционную Kafka Archiving
pprbod-offline-dq-collector-v4
Обработчик данных, присылаемых от источников данных в процессе Init и ТКД
pprbod-data-quality-processor
Модуль, отвечающий за выполнение ТКД и DRP
pprbod-applied-journal-handler
Обработчик данных, получаемых от АС Прикладной журнал
arch-journal-cdm-init, arch-journal-dataspace-init, arch-journal-gbk-init, arch-journal-ucp-consents-init
Модули-адаптеры для инициализирующей выгрузки различных типов источников данных
Прописать все модули Archiving в seap-lib overlay в конфигурации WildFly.
Один из вариантов выполнения с помощью встроенной утилиты WildFly
./jboss-cli.sh. При помощи терминала зайдите в каталог, где установлен WildFly, в подкаталог bin (пример:wildfly/bin), используя команду:./jboss-cli.sh --connect --controller=<адрес сервера>:\<порт WildFly> --user=<имя пользователя> ---password=<пароль пользователя> --command="deployment-overlay link --name=seap-lib-9.2 --deployments=<название модуля>*"--deployments=<название модуля>*— звездочка означает, что overlay прописывается для любой версии данного модуля. Чтобы прописать overlay для конкретной версии,отредактируйте команду следующим образом:--deployments=<название модуля>-<номер версии>.warПример команды для модуля pprbod-source-provider-v4
./jboss-cli.sh --connect --controller=10.XX.XXX.XX:XXXX --user=admin --password=admin --command="deployment-overlay link --name=seap-lib-9.2 --deployments=pprbod-source-provider-v4*"Перезапустите WildFly.
Запустите компонеты Платформы в нужном порядке.
Запустить компоненты Archiving в следующем порядке:
pprbod-source-provider-v4.war;
pprbod-stream-processor.war;
pprbod-data-quality-processor.war;
pprbod-offline-dq-collector-v4.war;
pprbod-applied-journal-handler.war;
Остальные модули Archiving в любом порядке.
Повторите шаги 1-5 на всех серверах приложений WildFly, где необходимо установить Archiving.
Если запуск всех модулей на всех узлах произведен успешно, Archiving установлен на полигон.
В случае возникновения ошибок при развертывании одного из модулей, необходимо проверить корректность выполнения предыдущих шагов развертывания.
Чек-лист установки компонентов Archiving на сервер#
На серверах приложений все модули Archiving установлены успешно.
Если параметр
pprbod-source-provider-v4@topics.enable.autoconfig = true, в интеграционной Kafka появились топики, указанные в разделе «Создание служебных топиков».