Руководство по установке#
Введение#
Назначение документа#
Настоящий документ представляет собой набор инструкций для установки компонента Сервис предоставления справочных данных (LNSE).
Документ предназначен для:
установки LNSE при первом развертывании на продуктивной или иной площадке;
обновления LNSE на продуктивной или иной площадке.
Основные понятия#
Обозначения, сокращения, термины и определения приведены в перечне Термины и определения.
Системные требования#
LNSE реализован в виде набора микросервисов, с размещением прикладной логики в контейнерах под управлением среды контейнеризации. Для хранения обрабатываемых LNSE данных используется реляционная БД.
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе, в которую интегрируется компонент LNSE, выбираются при разработке конечной информационной системы, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности, предъявляемых к ней.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента LNSE. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной информационной системы.
Категория ПО |
Обязательность установки |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Описание |
|---|---|---|---|---|---|
Операционная система |
Да |
ОС Альт 8 СП |
10.0 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована ОС — Platform V SberLinux OS Server, см. раздел Платформенные зависимости настоящего Руководства по установке |
ОС контейнеров для запуска модулей компонента |
Red Hat Enterprise Linux |
7.9 и выше |
Опционально. Правообладателем АО «СберТех» также рекомендована ОС — Platform V SberLinux OS Server, см. раздел Платформенные зависимости настоящего Руководства по установке |
|||
Среда контейнеризации |
Да |
1.25 и выше |
Опционально. Правообладателем АО «СберТех» рекомендована среда контейнеризации — Platform V DropApp (K8S), см. раздел Платформенные зависимости настоящего Руководства по установке |
Платформа контейнеризации для запуска компонентов сервиса |
|
Командная строка |
Да |
Kubectl |
Версия, соответствующая версии Kubernetes |
Рекомендовано |
Интерфейс командной строки для управления средой контейнеризации, являющийся его составной частью, устанавливаемой на рабочей станции |
Средство контейнеризации |
Да |
20.10 и выше |
Рекомендовано |
Инструмент для автоматизации работы с контейнерами |
|
Инструмент сборки, тестирования, развертывания контейнеризированных приложений |
Да |
2.387 и выше |
Рекомендовано |
Сервер автоматизации, используемый для внедрения непрерывной интеграции и непрерывной доставки (CI/CD) для проектов программного обеспечения |
|
Java-машина |
Да |
11 |
Рекомендовано |
Окружение для работы модулей компонента |
|
Сервер приложений |
Да |
9.0.41 и выше |
Рекомендовано |
СПО для тестирования, отладки и исполнения веб-приложений на основе Java |
|
Браузер |
Да |
Яндекс Браузер |
16.9 и выше |
Рекомендовано |
Браузер для входа в UI |
Брокер сообщений |
Да |
2.7.2 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел Платформенные зависимости настоящего Руководства по установке |
Событийный обмен сообщениями между модулями компонента, между смежными компонентами |
|
Инструмент управления проектом |
Да |
3.8 и выше |
Рекомендовано |
Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM |
|
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Да |
2.14 и выше |
Рекомендовано |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
|
Nexus Repository Manager PRO |
2 и выше |
Опционально |
|||
Nexus Repository Manager OSS |
2 и выше |
Опционально |
|||
Сервис централизованного хранения репозиториев исходного кода |
Да |
15.0 и выше |
Рекомендовано |
Хранение конфигураций при автоматизированной установке |
|
Bitbucket |
7.6 и выше |
Опционально |
|||
Сервис интеграции и оркестрации микросервисов в облаке |
Да |
1.17 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio, – Platform V Synapse Service Mesh, см. раздел Платформенные зависимости настоящего Руководства по установке |
Сервис интеграции микросервисов в облаке |
|
Система мониторинга (сбор и хранение метрик) |
Нет |
2.31.0 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован cервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения – Объединенный мониторинг Unimon Platform V Monitor, см. раздел Платформенные зависимости настоящего Руководства по установке |
Система для сбора и хранения численных метрик |
|
Система мониторинга (визуализация численных метрик) |
Нет |
2.5.0 и выше |
Опционально |
Система для визуализации численных метрик (предоставленных, например, Prometheus) |
|
Криптографическая библиотека |
Да |
OpenSSL |
1.1.1 и выше |
Рекомендовано |
Криптографическая библиотека |
Программа для обновления данных |
Да |
Liquibase |
4.24.0 и выше |
Рекомендовано |
Библиотека для отслеживания, управления и применения изменений схемы базы данных |
Система управления доступом к информационным ресурсам |
Да |
СУДИР |
Любая актуальная версия |
Опционально. Правообладателем АО «СберТех» также рекомендован компонент IAM Proxy (AUTH) продукта Platform V IAM SE (IAM), см. раздел Платформенные зависимости настоящего Руководства по установке |
Система управления доступом к информационным ресурсам |
Система создания, хранения и распространения секретов |
Нет |
1.11.0 |
Опционально |
Система, обеспечивающая безопасный и надежный способ создания, хранения и распространения секретов |
|
Secret Management System |
1.7.0 |
Опционально |
Пояснения к таблице
*
Да — категория ПО обязательна для функционирования Компонента (это означает, что Компонент не может выполнять свои основные функции без установки данной категории ПО).
Нет — категория ПО необязательна для функционирования Компонента (это означает, что Компонент может выполнять свои основные функции без установки данной категории ПО).
**Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.
Подсказка
Для управления кластером среды контейнеризации необходим установленный клиент среды контейнеризации (Kubectl в составе Kubernetes) версии, соответствующей используемой версии Kubernetes.
Подсказка
Для управления ключами, сертификатами, выполнения шифрования и дешифровки секретов, используемых LNSE, рекомендуется использовать утилиту OpenSSL версии 1.1.1.
Подсказка
Для управления хранилищами ключей и сертификатов рекомендуется использовать утилиту Keytool (входит в состав OpenJDK).
Платформенные зависимости#
Для установки, настройки, контроля и функционирования компонента LNSE реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Обязательность установки |
Код |
Версия продукта |
Код и наименование компонента |
Описание |
Аналог других производителей**** |
|---|---|---|---|---|---|---|
Platform V SberLinux OS Core |
Да |
SLC |
9.2 |
CORE Базовая ОС |
ОС предназначена для безопасного развертывания сред контейнеризации с поддержкой масштабирования |
Альт 8 СП |
Platform V DropApp |
Да |
K8S |
1.2 и выше |
K8SC K8S Core |
Сервис для автоматизации развертывания, масштабирования и управления контейнерными приложениями |
Kubernetes |
Platform V DevOps Tools |
Да |
DOT |
1.4 и выше |
CDJE Deploy tools |
Сервис для развертывания и обновления компонентов, настройки и обслуживания инфраструктуры |
С аналогами других производителей компонент не тестировался |
Platform V Pangolin SE |
Да |
PSQ |
5.5.2, 5.5.3 |
PSQL Pangolin |
Система управления базами данных, основанная на PostgreSQL |
С аналогами других производителей компонент не тестировался |
Platform V Corax |
Да |
KFK |
7.272 и выше |
KFKA Corax |
Программный брокер сообщений, представляющий собой распределенную, отказоустойчивую, реплицированную и легко масштабируемую систему передачи сообщений, рассчитанную на высокую пропускную способность |
Apache Kafka |
Platform V Synapse Service Mesh |
Да |
SSM |
4.3.2 |
POLM Управление политиками |
Сервис для автоматизированной рассылки конфигураций политик управления трафиком, политик безопасности и прочих управляющих команд для сервисов «Граничный прокси» и «Сервисный прокси» |
Istio |
Да |
IGEG Граничный прокси |
Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части |
Istio |
|||
Да |
SVPX Сервисный прокси |
Сервис для маршрутизации и обеспечения безопасности трафика между приложениями |
Istio |
|||
Platform V Monitor |
Нет |
OPM |
4.1 и выше |
LOGA Журналирование |
Сервис для хранения лог-файлов |
С аналогами других производителей компонент не тестировался |
Нет |
MONA Объединенный мониторинг Unimon |
Сервис для сбора метрик и отправки их в целевую систему хранения |
Prometheus |
|||
Platform V Audit SE |
Нет |
AUD |
2.3 и выше |
AUDT Аудит |
Сервис для аудирования событий |
С аналогами других производителей компонент не тестировался |
Platform V IAM SE |
Да |
IAM |
1.4 и выше |
AUTH IAM Proxy |
Набор инструментов для управления доступом пользователей к информационным ресурсам |
СУДИР |
Да |
AUTZ Объединенный сервис авторизации (ОСА) |
Сервис для управления ролевыми моделями доступа пользователей, а также проверки наличия у них прав доступа |
С аналогами других производителей компонент не тестировался |
|||
Platform V Synapse Enterprise Integration |
Нет |
SEI |
2.9 и выше |
SRLS Synapse Rate Limiter |
Cервис ограничения (квотирования) входящих запросов |
С аналогами других производителей компонент не тестировался |
Пояснения к таблице
***
Да — компонент или продукт необходим для функционирования Компонента (это означает, что Компонент не может выполнять свои основные функции без установки данного компонента).
Нет — необязательный для функционирования Компонента компонент или продукт (это означает, что Компонент может выполнять свои основные функции без установки данного компонента).
****Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе Системное программное обеспечение настоящего документа.
У LNSE реализована интеграция со следующими компонентами из состава продукта Platform V Frontend Std (#FS):
Наименование компонента |
Код |
Описание |
|---|---|---|
OTTS One-Time Password (OTP) / OTT |
OTTS |
Сервис для аутентификации и авторизации межсервисных взаимодействий |
OTT Sidecar |
OTSI |
Sidecar реализующий взаимодействие с сервисом OTTS |
PACMAN |
CFGA |
Сервис для хранения, управления и предоставления по запросу параметров конфигурации библиотек, сервисов и прикладных приложений |
ЕФС.Stand In |
STDE |
Сервис для управления топологией |
Клиентский модуль Stand-in |
STDM |
JAVA-API для получения потребителями сервисов топологии и репликации |
Стартовый менеджер |
SMGX |
Сервис является унифицированной точкой доступа к функциям фронтальной части компонентов |
Сессионные данные |
SUSD |
Сервис для создания сессий и хранения сессионных данных |
Библиотеки Сервиса Сессионных Данных |
SUSL |
Клиентский модуль Сессионных данных |
Внутренний шлюз ЕФС |
IAGW |
Сервис является точкой входа в сектор, маршрутизирует HTTP-запрос на определенный shard или реплику |
Журналирование ЕФС |
LOGE |
Сервис для хранения лог-файлов |
Прикладной мониторинг ЕФС |
MONE |
Сервис для сбора прикладных и инфраструктурных метрик |
Мониторинг клиентский модуль |
MONM |
Сервис для отправки полученных метрик |
Аудит ЕФС |
AUDE |
Сервис для регистрации событий информационной безопасности для фронтальных сервисов |
Объединенный клиентский модуль UNION |
AUDM |
Сервис для регистрации событий аудита |
Журналирование КМ |
LOGM |
Сервис для отправки и фильтрации логов |
PV IAM SE КМ Авторизации |
KMAZ |
Клиентский модуль сервиса авторизации |
PV IAM SE КМ Аутентификации |
KMAH |
Клиентский модуль сервиса аутентификации |
Аппаратные требования#
Ниже приведены требования к ресурсам КТС, необходимым для функционирования компонента LNSE.
В требованиях не учтены аппаратные ресурсы, необходимые для компонентов, не входящих в поставку компонента LNSE, но размещаемых внутри namespace LNSE.
Квота на pod компонента LNSE, размещаемые в одном пространстве имен (namespace), без учета sidecar-контейнеров:
Элемент развертывания |
Среда развертывания |
CPU requests (millicores) |
Memory requests (Гб) |
CPU limits (millicores) |
Memory limits (Гб) |
Количество pod на один элемент развертывания |
|---|---|---|---|---|---|---|
data-dictionary-service |
Kubernetes или K8SC |
1600 |
4,8 |
2500 |
4,8 |
3 |
data-dictionary-load |
Kubernetes или K8SC |
1150 |
4,8 |
2300 |
4,8 |
1 |
data-dictionary-manage |
Kubernetes или K8SC |
250 |
2 |
1000 |
4 |
1 |
egress |
Kubernetes или K8SC |
200 |
0,512 |
400 |
0,512 |
2 |
ingress |
Kubernetes или K8SC |
1300 |
0,8 |
1300 |
0,8 |
3 |
unimon-agent |
Kubernetes или K8SC |
500 |
1 |
500 |
1 |
1 |
unimon-sender |
Kubernetes или K8SC |
200 |
1,5 |
700 |
1,5 |
1 |
Характеристики sidecar-контейнеров:
Характеристики sidecar-контейнеров:
Sidecar-контейнер |
Среда развертывания |
CPU requests (millicores) |
Memory requests (Гб) |
CPU limits (millicores) |
Memory limits (Гб) |
Элемент развертывания |
|---|---|---|---|---|---|---|
istio-proxy |
Kubernetes или K8SC |
200 |
0,512 |
600 |
1 |
data-dictionary-service, data-dictionary-load |
Kubernetes или K8SC |
200 |
0,512 |
500 |
1 |
data-dictionary-manage |
|
Kubernetes или K8SC |
200 |
0,512 |
300 |
0,512 |
unimon-agent, unimon-sender |
|
ott-sidecar |
Kubernetes или K8SC |
800 |
0,7 |
800 |
0,7 |
egress |
Kubernetes или K8SC |
1300 |
0,7 |
1300 |
0,7 |
ingress |
|
vault-agent |
Kubernetes или K8SC |
50 |
0,128 |
50 |
0,128 |
data-dictionary-service, data-dictionary-load, data-dictionary-manage, egress, ingress |
ulogger-sidecar |
Kubernetes или K8SC |
300 |
0,4 |
300 |
0,4 |
data-dictionary-service, data-dictionary-load, data-dictionary-manage, egress, ingress |
logger-forwarder-sidecar |
Kubernetes или K8SC |
100 |
0,4 |
300 |
0,4 |
unimon-agent, unimon-sender |
unimon-agent-config-reloader |
Kubernetes или K8SC |
200 |
0,512 |
300 |
0,512 |
unimon-agent |
Квота на pod компонента LNSE, размещаемые в одном namespace, c учетом sidecar-контейнеров:
Элемент развертывания |
Среда развертывания |
CPU requests (millicores) |
Memory requests (Гб) |
CPU limits (millicores) |
Memory limits (Гб) |
|---|---|---|---|---|---|
data-dictionary-service |
Kubernetes или K8SC |
2150*3=6450 |
5,840*3=17,52 |
3450*3=10350 |
6,328*3=18,984 |
data-dictionary-load |
Kubernetes или K8SC |
1700 |
5,840 |
3250 |
6,328 |
data-dictionary-manage |
Kubernetes или K8SC |
800 |
3,040 |
1850 |
5,528 |
egress |
Kubernetes или K8SC |
1350*2=2700 |
1,740*2=3,48 |
1550*2=3100 |
1,740*2=3,48 |
ingress |
Kubernetes или K8SC |
2950*3=8850 |
2,028*3=6,084 |
2950*3=8850 |
2,028*3= 6,084 |
unimon-agent |
Kubernetes или K8SC |
1000 |
2,424 |
1400 |
2,424 |
unimon-sender |
Kubernetes или K8SC |
500 |
2,412 |
1300 |
2,412 |
Требования к ресурсам базы данных:
Название компонента |
Среда развертывания |
CPU (количество ядер) |
RAM (Гб) |
HDD (Tб) |
|---|---|---|---|---|
Системные таблицы LNSE, таблицы справочников |
PSQL |
8 |
32 |
0,3 (/data 0,23; /logs 0,05) |
Важно
При выделении ресурсов БД должен быть учтен прогнозируемый суммарный объем данных справочников.
Максимально возможное количество версий структуры для одного экземпляра справочника задается параметром ufs.dictionary.structure.max.count. Можно задать значение в разрезе кода справочника.
Максимально возможное количество версий данных каждой версии структуры каждого динамически созданного экземпляра справочника — 20.
При наличии в среде установки LNSE компонента IAGW должны быть учтены требования к ресурсам размещения статических файлов:
Название компонента |
Среда развертывания |
HDD (Гб) |
|---|---|---|
|
IAGW |
0,03 |
|
IAGW |
0,03 |
Состав дистрибутива#
Дистрибутив LNSE состоит из нескольких частей:
дистрибутив бинарных артефактов (binaries-D-XX.YYY.ZZ-BUILD-distrib.zip);
дистрибутивы конфигурации развертывания (D-XX.YYY.ZZ-BUILD_suffix-distrib.zip);
файл .pom для каждого дистрибутива;
SBOM-файл
*-cyclonedx-distrib;файл
*.swidtag;дистрибутив с документацией (documentation-D-XX.YYY.ZZ-BUILD-distrib.zip).
Примечание
Для поставляемой версии LNSE предусматривается одна конфигурация развертывания, предназначенная для установки LNSE в окружении продукта Platform V Frontend Std (#FS).
Дистрибутив бинарных артефактов LNSE содержит:
Элемент дистрибутива |
Описание |
|---|---|
|
Сервис чтения данных справочников — сервис BH, обеспечивающий доступ к хранилищу справочников со стороны прикладных модулей |
|
Сервис загрузки данных справочников — сервис BH, обеспечивающий загрузку справочников из внешних источников в хранилище справочников |
|
BH АРМ Администратора LNSE — сервис BH, предоставляющий системному администратору и бизнес-администратору возможность управления и просмотра справочников |
|
Файлы презентационного слоя для размещения на API-шлюзе IAGW — статика АРМ Администратора LNSE для обращения через платформенный компонент SMGX |
|
Файлы презентационного слоя для размещения на API-шлюзе IAGW — статика АРМ Администратора LNSE для обращения по прямой ссылке |
|
Скрипты инициализации для PSQL |
|
Скрипты миграции для системных таблиц для PSQL |
|
Скрипты миграции для таблиц тестовых справочников PSQL |
|
Скрипты отката для системных таблиц PSQL |
|
Инструкции создания образа контейнеров приложений |
Дистрибутив конфигурации развертывания LNSE содержит конфигурационные файлы, использующиеся при автоматизированной установке компонента средствами CDJE.
Файлы *.pom содержат идентификационные параметры дистрибутивов, входящих в дистрибутивный комплект — по одному файлу на каждый дистрибутив.
Дистрибутив |
Содержимое файла .pom |
|---|---|
Дистрибутив бинарных артефактов |
Идентификационные параметры ассоциированного с ним дистрибутива |
Дистрибутив конфигурации развертывания |
Идентификационные параметры ассоциированного с ним дистрибутива |
Идентификационные параметры включенного в дистрибутивный комплект дистрибутива бинарных артефактов |
|
Дистрибутив документации |
Идентификационные параметры ассоциированного с ним дистрибутива |
Дистрибутив документации содержит документацию LNSE в формате Markdown.
Примечание
Образы контейнеров не входят в состав дистрибутивного комплекта LNSE. Образы определяются по правилам конечной ИС, в которую интегрируется компонент LNSE.
Инструкции, необходимые для создания образов прикладных контейнеров LNSE, приведены в соответствующем dockerfile, размещенном в каталоге \conf\openshift\data-dictionary-* дистрибутива бинарных артефактов.
Каждый dockerfile содержит сведения о рекомендованном базовом образе base_image — основы для образа прикладного контейнера.
Выбор способа установки#
Установка LNSE выполняется автоматизированным способом с использованием инструментов CDJE. Обращение к инструментам CDJE осуществляется с помощью интерфейса Jenkins.
Ручная установка LNSE не предусмотрена.
Подготовка окружения#
Для установки LNSE необходимо:
подготовить инструменты развертывания;
подготовить БД;
подготовить namespace в среде контейнеризации;
подготовить сертификаты;
подготовить секреты.
Примечание
До установки LNSE необходимо выполнить установку платформенных компонентов. Перечень платформенных компонентов приведен в разделе Платформенные зависимости настоящего Руководства по установке. Установка платформенных компонентов производится в соответствии с их эксплуатационной документацией.
Подготовка инструментов развертывания#
В процессе установки и настройки CDJE в централизованном хранилище репозиториев исходного кода должны быть созданы:
репозитории Pipeline:
с кодовой базой компонента CDJE;
с общими параметрами среды функционирования компонентов продукта #FS — репозиторий Common;
репозиторий с настройками LNSE в среде функционирования.
Полный перечень репозиториев и их описание приведено в разделе «Подготовка окружения» Руководства по установке CDJE. Также в процессе установки и настройки CDJE должна быть выполнена миграция данных для репозиториев Pipeline. Описание процедуры миграции приведено в разделе «Установка» Руководства по установке CDJE.
Подготовка базы данных#
Для хранения обрабатываемых компонентом LNSE данных используется реляционная БД под управлением PSQL.
Развертывание и настройка серверов баз данных выполняется в соответствии с эксплуатационной документацией конечной ИС, в состав которой интегрируется LNSE. При развертывании серверов баз данных должны быть учтены требования LNSE к выделяемым аппаратным ресурсам (приведены в разделе Аппаратные требования настоящего документа).
При подготовке экземпляра БД с помощью командной строки создайте на сервере баз данных каталоги для размещения табличных пространств LNSE:
lnse_ts_data — табличное пространство для хранения данных;
lnse_ts_idx — табличное пространство для хранения индексов;
lnse_ts_lob — табличное пространство для хранения объектов БД с типом LOB.
Пример команды создания каталогов
sudo su - postgres
mkdir /home/postgres/ts/lnse_ts_data
mkdir /home/postgres/ts/lnse_ts_idx
mkdir /home/postgres/ts/lnse_ts_lob
Создайте БД и пользователя Администратор БД, от имени которого выполняется первичная настройка БД.
Подсказка
Для создания используйте утилиту psql — консольная утилита с помощью которой можно подключится к серверу баз данных PSQL. Psql устанавливается по умолчанию при установке PSQL.
Пример команды подключения к серверу баз данных
$ psql -d postgres -U postgres -h /tmp/ -p 5432
Пример команды создания БД и пользователя
CREATE ROLE super_user_lnse WITH LOGIN SUPERUSER PASSWORD '*********' CREATEROLE;
CREATE DATABASE lnse
WITH
OWNER = "super_user_lnse"
ENCODING = 'UTF8'
LC_COLLATE 'POSIX'
LC_CTYPE 'POSIX'
TEMPLATE template0
GRANT ALL ON DATABASE lnse TO "super_user_lnse";
Создайте в БД схему и две учетные записи пользователей:
Пользовватель БД LNSE — пользователь, от имени которого приложения LNSE обращаются к БД;
Liquibase-пользователь БД LNSE — пользователь, от имени которого исполняются скрипты liquibase для управления объектами БД LNSE.
Подсказка
Если не требуется разделять учетные записи пользователей, используйте учетную запись одного пользователя.
Примечание
Пользователь, от имени которого приложения LNSE обращаются к БД, должен быть наделен правами по созданию новых таблиц БД LNSE.
Если не предполагается динамическое создание справочников, то права могут отсутствовать. Доступность динамического создания справочников регулируется параметром ufs.dictionary.dynamic.create.enable (по умолчанию установлен в false).
Подсказка
Первичную настройку БД рекомендуется выполнять средствами Liquibase — утилита в составе дистрибутива бинарных артефактов LNSE. Приложение Liquibase может быть запущено на любой машине с JVM — входит в состав OpenJDK.
Для первичной настройки БД LNSE средствами Liquibase:
Скачайте дистрибутив бинарных артефактов LNSE.
Распакуйте архив
lnse-dbinit-pg-*.zip, размещенный в каталоге ./db/ дистрибутива LNSE.Перейдите в папку с содержимым распакованного архива
lnse-dbinit-pg-*.zip.Выполните скрипты liquibase с указанием параметров:
lnse_user— логин пользователя БД LNSE. Соответствует первому фасету в наименовании схемы БД, рекомендованное значение — lnse;lnse_user_pass— пароль пользователя БД LNSE;block_suffix— второй фасет в наименовании схемы БД, необязательный параметр;data_ts_name— имя созданного на сервере баз данных каталога для размещения табличного пространства для хранения данных, рекомендованное значение — lnse_ts_data;data_tablespace_path— путь к каталогу для размещения табличного пространстваlnse_ts_data, рекомендованное значение — /home/postgres/ts/lnse_ts_data;index_ts_name— имя созданного на сервере баз данных каталога для размещения табличного пространства для хранения индексов, рекомендованное значение — lnse_ts_idx;index_tablespace_path— путь к каталогу для размещения табличного пространстваlnse_ts_idx, рекомендованное значение — /home/postgres/ts/lnse_ts_idx;lob_ts_name— имя созданного на сервере баз данных каталога для размещения табличного пространства для хранения объектов БД с типом LOB, рекомендованное значение — lnse_ts_lob;lob_tablespace_path— путь к каталогу для размещения табличного пространстваlnse_ts_lob, рекомендованное значение — /home/postgres/ts/lnse_ts_lob;lnse_liq_user— логин Liquibase-пользователя БД LNSE, рекомендованное значение — lnse_liq;lnse_liq_user_pass— пароль Liquibase-пользователя БД LNSE;username— логин Администратора БД;password— пароль Администратора БД;url— полный путь до БД.
Для исполнения скриптов используйте командную строку.
Команда запуска выполнения скриптов liquibase
java \
-Dnew_lnse_user=lnse \
-Dnew_lnse_user_pass='*******' \
-Dnew_lnse_liq_user=lnse_liq \
-Dnew_lnse_liq_user_pass='*******' \
-Dblock_suffix='' \
-Ddata_tablespace=lnse_ts_data \
-Dindex_tablespace=lnse_ts_idx \
-Dlob_tablespace=lnse_ts_lob \
-Ddata_tablespace_path=/home/postgres/ts/lnse_ts_data \
-Dindex_tablespace_path=/home/postgres/ts/lnse_ts_idx \
-Dlob_tablespace_path=/home/postgres/ts/lnse_ts_lob \
-jar liquibase-core-3.5.5.9.jar \
--classpath=postgresql-42.2.16.jar \
--changeLogFile=0001_changelog.xml \
--username=super_user_lnse \
--password='*******' \
--url=jdbc:postgresql://00.00.00.0:0000/lnse \
--liquibaseSchemaName=lnse \
--logLevel=INFO \
--logFile=lnse_db_init.log \
--databaseChangeLogTableName=liq_databasechangelog \
--databaseChangeLogLockTableName=liq_databasechangeloglock \
update
Пример сообщения об успешном выполнении команды
Liquibase Update Successful
Подсказка
Если выполнение команды завершилось ошибкой, проверьте лог-файл lnse_db_init.log, который размещается в папке с содержимым распакованного архива lnse-dbinit-pg-*.zip .
Проверьте результат выполнения скриптов liquibase. Для этого последовательно выполните SQL-запросы к БД LNSE.
Подсказка
Для выполнения SQL-запросов допускается использование любого клиента для работы с БД, совместимого с СУБД, с используемой LNSE.
Пример SQL-запросов
SELECT spcname FROM pg_tablespace WHERE spcname IN ('lnse_ts_data', 'lnse_ts_idx', 'lnse_ts_lob');
SELECT usename FROM pg_catalog.pg_user WHERE usename IN ('super_user_lnse', 'lnse', 'lnse_liq');
SELECT datname FROM pg_database WHERE datname = 'lnse';
SELECT nspname FROM pg_catalog.pg_namespace WHERE nspname LIKE('lnse%');
Подготовка системы контейнеризации#
В качестве системы контейнеризации используется K8SC/Kubernetes.
Развертывание и настройка кластеров системы контейнеризации выполняется в соответствии с эксплуатационной документацией конечной ИС, в состав которой интегрируется LNSE.
Если в качестве системы управления секретами используется Secret Management System (далее — SecMan), то кластер среды контейнеризации должен быть подключен к SecMan. Подключение осуществляется в соответствии с эксплуатационной документацией SecMan.
Для LNSE в кластере среды контейнеризации должен быть создан namespace. При создании namespace среды контейнеризации должны быть учтены требования LNSE к выделяемым аппаратным ресурсам (приведены в разделе Аппаратные требования настоящего Руководства по установке). Также должны быть учтены требования к выделяемым аппаратным ресурсам компонентов, не входящих в поставку LNSE, но размещаемых внутри namespace LNSE.
Для подключения инструментов развертывания LNSE к namespace LNSE в среде контейнеризации должна быть создана и настроена сервисная учетная запись ServiceAccount с правами на загрузку артефактов. Рекомендованное имя сервисной учетной записи — deploy. Получите токен сервисной учетной записи для дальнейшей настройки CDJE:
Примеры команд получения токена
kubectl get serviceaccounts <имя сервисной учетной записи> -o yaml --namespace=<имя пространства имен>
kubectl get secret <имя сервисного аккаунта>-token-* -o yaml --namespace=<имя пространства имен> --namespace=<имя пространства имен>
Пример ответного сообщения с токеном
apiVersion: v1
data:
ca.crt: (APISERVER'S CA BASE64 ENCODED)
---
token: (BEARER TOKEN BASE64 ENCODED)
kind: Secret
metadata:
...
type: kubernetes.io/service-account-token
Подсказка
Для выполнения команд используйте Kubectl — составную часть Kubernetes, устанавливаемую на рабочей станции. Версия Kubectl не должна отличаться от используемой версии Kubernetes. Для выполнения команд требуются права администратора кластера среды контейнеризации.
Namespace LNSE должен быть подключен к сервисной сетке service mesh — Istio. В качестве сервисной сетки рекомендуется использовать продукт SSM. Подключение осуществляется в соответствии с эксплуатационной документацией продукта, предоставляющего инфраструктуру сервисной сетки в кластере среды контейнеризации.
Подготовка сертификатов#
В поставляемой конфигурации LNSE требуются следующие ключи и сертификаты генерируются автоматически в Secret Management System:
сертификат и ключ клиента для шлюза Egress;
корневой и промежуточные сертификаты удостоверяющего центра для шлюза Egress;
сертификат и ключ сервера для шлюза Ingress;
корневой и промежуточные сертификаты удостоверяющего центра для шлюза Ingress;
клиентский ключ и сертификат для подключения к topic (Kafka) (транспорт для обмена с LOGE, AUDT, MONE, LNSE в смежных блоках, клиентской библиотекой LNSE составе приложений-потребителей данных справочников);
корневой сертификат удостоверяющего центра, выпустившего сертификат для подключения к topic (Kafka);
клиентский ключ и сертификат для подключения к topic (Kafka) для обмена с LOGA;
корневой сертификат удостоверяющего центра, выпустившего сертификат для подключения к topic (Kafka) для обмена с LOGA;
сертификат и ключ клиента для подключения к PSQL в SSL-режиме;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к PSQL в SSL-режиме;
сертификат и ключ клиента для обмена с OTTS;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для обмена с OTTS.
Процедура выпуска сертификатов регламентируется эксплуатационной документацией конечной ИС, в состав которой интегрируется LNSE.
Ключи и сертификаты, используемые для подключения к topic Kafka, должны быть размещены в JKS-хранилище типа keystore. Пароль шифрования каждого размещенного в хранилище закрытого ключа должен совпадать с паролем доступа к этому хранилищу. Для управления JKS-хранилищем используйте JAVA-утилиту Keytool.
Корневые сертификаты должны быть размещены в JKS-хранилище типа truststore. В truststore допускается размещение нескольких корневых сертификатов разных УЦ.
При подготовке клиентских ключа и сертификата для подключения к БД должны быть учетны следующие требования:
клиентский сертификат должен быть выпущен в формате PEM (файл ASCII в кодировке bas64);
атрибут CN (Common Name) клиентского сертификата должен совпадать с логином пользователя БД LNSE;
файл клиентского ключа должен быть сконвертирован в двоичный формат DER.
Подготовка секретов#
Помимо ключей, сертификатов и их хранилищ (приведены в разделе Подготовка сертификатов настоящего Руководства по установке) в поставляемой конфигурации LNSE используются секреты:
логин и пароль пользователя, от имени которого приложения обращаются к БД;
логин и пароль пользователя, от имени которого исполняются скрипты liquibase для управления объектами БД. Секрет используется в процессе установки LNSE.
Для хранения секретов, используемых LNSE в процессе функционирования, может использоваться Secret Management System (SecMan).
При подготовке к установке секреты, используемые LNSE в процессе функционирования, должны быть размещены в KV-хранилище SecMan. Описание подготовки KV-хранилища SecMan приведено в разделе Настройка интеграции настоящего Руководства по установке.
Установка#
Автоматизированная установка сервиса с использованием Deploy Tools#
Установка LNSE производится путем создания объектов в среде контейнеризации на основе поставляемых в дистрибутиве компонента конфигурационных YAML-файлов. В процессе установки для указанных в YAML-файлах параметров устанавливаются значения, соответствующие среде функционирования LNSE.
Перед установкой выполните следующие действия:
Проверьте соответствие версии скриптов установки ПО (pipeline) версии, указанной в файле
/package/conf/version.confдистрибутива конфигурации развертывания LNSE;Проверьте наличие нужных playbook в списке сценариев сборки в Jenkins.
Проверка конфигурации:
Подсказка
Функциональностью CDJE предусмотрена проверка конфигураций компонентов перед их установкой. Проверка заключается в проверке доступности инфраструктуры и наличия в конфигурационных файлах некорректно настроенных параметров.
Набор playbook для выполнения проверки задается в разделе playbooks_default файла distrib.ym дистрибутивного комплекта устанавливаемого компонента.
По умолчанию проверка выполняется при запуске job Jenkins, предназначенной для установки компонентов.
Проверку можно отключить, установив в false параметр forcePreCheck в файле environment.json репозитория Common.
Для ручного запуска проверки конфигурации LNSE выполните следующие действия:
Перейдите к job Jenkins, предназначенной для установки компонентов платформы — JOB Deploy.
В меню слева выберите опцию Собрать с параметрами.
Установите параметры сборки:
SUBSYSTEM: DICTIONARY;DISTRIB_VERSION: версия дистрибутива конфигурации развертывания;OSE_CLUSTERS: кластер K8S;Репозиторий/ветка с настройками: основная ветка конфигурации в соответствии с настройками CDJE;Playbook: FP_CONF_CHECK;
Запустите сборку с помощью кнопки Собрать.
После завершения сборки проанализируйте лог-файл на предмет наличия ошибок в конфигурационных файлах LNSE.
Установка:
Перейдите к job Jenkins, предназначенной для установки компонентов платформы — JOB Deploy.
В меню слева выберите опцию Собрать с параметрами;
Установите параметры сборки:
SUBSYSTEM: DICTIONARY;DISTRIB_VERSION: версия дистрибутива конфигурации развертывания;OSE_CLUSTERS: кластер K8S;Репозиторий/ветка с настройками: основная ветка конфигурации в соответствии с настройками CDJE;Playbook:CLEANUP_FP_CONFIG;
MIGRATION_FP_CONF;
DB_UPDATE;
OPENSHIFT_DEPLOY;
OPENSHIFT_INGRESS_EGRESS_DEPLOY;
KAFKA_UPDATE_FP;
IMPORT_ALL_PARAMS — при первичной установке этот playbook необходимо выполнить отдельно, после предыдущих в списке;
Запустите сборку с помощью кнопки Собрать.
После завершения сборки проанализируйте лог-файл на предмет наличия ошибок.
Примечание
При наличии в среде установки LNSE компонента IAGW дополнительно выберите playbook:
NGINX_DEPLOY;
NGINX_II_DEPLOY;
NGINX_MM_DEPLOY.
При смене СУБД компонента LNSE обязательно выберите playbook CLEANUP_FP_CONFIG. Сценарий CLEANUP_FP_CONFIG должен быть исполнен до сценария MIGRATION_FP_CONF.
При наличии в среде установки LNSE компонента SRLS дополнительно выберите playbook PROVIDE_SRLS_CONFIGS.
Краткое описание playbook, исполняемых при установке LNSE:
Сценарий (playbook) |
Описание |
|---|---|
MIGRATION_FP_CONF |
Миграция настроек из дистрибутива LNSE в промежуточный репозиторий |
DB_UPDATE |
Запуск Liquibase-скриптов миграции БД |
OPENSHIFT_DEPLOY |
Установка приложений LNSE. Для K8SC/Kubernetes название playbook то же |
OPENSHIFT_INGRESS_EGRESS_DEPLOY |
Установка шлюзов IGEG — Ingress и Egress — в namespaсe LNSE. Для K8SC/Kubernetes название playbook то же |
KAFKA_UPDATE_FP |
Создание объектов Kafka/KFKA |
NGINX_DEPLOY |
Импорт конфигурационных файлов и установка PL-компонентов на группы серверов nginx/nginx_ui (IAGW) |
NGINX_II_DEPLOY |
Импорт конфигурационных файлов на группы серверов nginx_ii (IAGW) |
NGINX_MM_DEPLOY |
Импорт конфигурационных файлов на группы серверов nginx_mm (IAGW) |
IMPORT_ALL_PARAMS |
Импорт наполнения тестовых справочников, импорт настроек в платформенные компоненты |
PROVIDE_SRLS_CONFIGS |
Импорт в среду функционирования LNSE настроек подключения к SRLS |
CLEANUP_FP_CONFIG |
Очистка репозитория с настройками LNSE в среде функционирования |
Подсказка
Набор возможных playbook зависит от конфигурации инструментов CDJE.
Переключение трафика
Для переключения трафика между LNSE текущей версии, развернутой в среде контейнеризации K8S, и LNSE предыдущей версии, развернутой в другой среде контейнеризации, выполните следующие действия:
В файле
_global.resources.confрепозитория Common измените значение параметраglobal.platform.iag.default.route:
значение
dropapp— маршрутизация трафика в K8SC;значение
ocp— маршрутизация трафика в OpenShift;
Запустите job Jenkins, предназначенную для установки компонентов платформы — JOB Deploy. Выберите playbook:
NGINX_DEPLOY;
NGINX_II_DEPLOY;
NGINX_MM_DEPLOY.
После завершения job Jenkins проанализируйте лог-файл на предмет наличия ошибок.
Настройка интеграции#
Важно
В LNSE подключен HTTPClient, в котором отключен проброс заголовка LoginId. При работе с LNSE учитывайте, что HTTP-запросы, выполняемые в рамках клиентской сессии, не содержат информацию о логине пользователя.
Параметры интеграции с PSQL#
Предупреждение
Из-за особенностей реализации функциональности партиционирования таблиц, LNSE не совместим с PostgreSQL. Для хранения обрабатываемых LNSE данных используйте реляционную БД под управлением PSQL.
Для получения доступа к БД LNSE используется набор программных интерфейсов JDBC.
При подключении приложений LNSE к CУБД PSQL рекомендуется использовать протокол mTLS 1.2, обеспечивающий взаимную аутентификацию сторон, участвующих в передаче данных.
Описание параметров для безопасной передачи логина, пароля и SSL-сертификатов доступа к БД в среду функционирования LNSE приведено в разделе Интеграция с Secret Management System настоящего Руководства по установке.
Параметры подключения LNSE к СУБД устанавливаются путем определения их значений в файлах \conf\config\parameters\dictionary.all.conf и \conf\config\parameters\dictionary.istio.all.conf дистрибутива конфигурации развертывания LNSE:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Список серверов БД. Рекомендованное значение — |
|
Путь к БД, включая порт. Используется при выполнении запросов к БД. Рекомендованное значение — |
|
|
Режим взаимодействия с СУБД. Рекомендованное значение — |
|
|
Имя табличного пространства для хранения данных. Рекомендованное значение — |
|
|
Имя табличного пространства для хранения индексов. Рекомендованное значение — |
|
|
Имя табличного пространства для хранения объектов БД с типом LOB. Рекомендованное значение — |
|
|
Имя класса с драйвером. Рекомендованное значение — |
|
|
Проверка корректности соединения, измеряется в миллисекундах. Рекомендованное значение — |
|
|
Частота с которой выполняется поиск idle соединений в пуле, измеряется в миллисекундах. Рекомендованное значение — |
|
|
Время, в течение которого должен выполниться запрос на валидацию соединения, измеряется в миллисекундах. Рекомендованное значение — |
|
|
Минимальное количество соединений в пуле. Рекомендованное значение — |
|
|
Время, по истечении которого соединение будет удалено, измеряется в миллисекундах. Рекомендованное значение — |
|
|
Максимальное количество соединений в пуле. Рекомендованное значение — |
|
|
Время, в течение которого соединение может не обслуживать запросы прежде чем может быть удален по idle timeout, измеряется в миллисекундах. Рекомендованное значение — |
|
|
Время, в течение которого пользователь должен получить соединение, измеряется в миллисекундах. Рекомендованное значение — |
|
|
SQL-запрос, который будет выполняться для проверки соединения с СУБД, если значение не задано, то проверка будет осуществлена с помощью драйвера. Рекомендованное значение — |
|
|
Время, в течение которого соединение может быть вне пула, прежде, чем в лог-файл будут отправляться сообщения о возможной утечке соединений. Рекомендованное значение — |
|
|
Определяет поведение при первом соединении, измеряется в секундах. Рекомендованное значение — |
|
|
Время, в течение которого sql запрос пользователя должен выполниться, измеряется в секундах, рекомендованное значение — |
|
|
SQL-запрос, выполняемый при создании соединения с СУБД для проверки соединения. Рекомендованное значение — |
|
|
Включение механизма ротации секрета с логином и паролем доступа к БД. Рекомендованное значение — |
|
|
Путь к секрету с логином и паролем доступа к БД в среде контейнеризации. Рекомендованное значение — |
|
|
Ключ для получения логина доступа к БД. Рекомендованное значение — |
|
|
Ключ для получения пароля доступа к БД. Рекомендованное значение — |
|
|
Путь к volume с секретом доступа к БД в среде контейнеризации. Рекомендованное значение — |
При определении параметров подключения к СУБД используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Логин пользователя для выполнения запросов к БД. Используется секрет из SecMan |
|
|
Пароль пользователя для выполнения запросов к БД. Используется секрет из SecMan |
|
|
Путь к БД, включая порт. Используется при выполнении запросов к БД, значение указывается в файле |
|
|
Список серверов БД для трафика через egress, значение указывается в файле |
|
|
Проверка корректности соединения (мс). Рекомендованное значение — 500, значение указывается в файле |
|
|
Частота поиска idle-соединений в пуле (мс). Рекомендованное значение — 30000, значение указывается в файле |
|
|
Тип шифрования. Рекомендованное значение — verify-full, значение указывается в файле |
|
|
Режим взаимодействия с БД. Рекомендованное значение — true, значение указывается в файле |
|
|
Запрос для проверки соединения, выполняемый при создании соединения с БД. Не заполняется. Значение указывается в файле |
|
|
Имя класса с драйвером. Рекомендованное значение — |
|
|
Время выполнения запроса на валидацию соединения (мс). Рекомендованное значение — 5000, значение указывается в файле |
|
|
Минимальное количество соединений в пуле. Рекомендованное значение — 1, значение указывается в файле |
|
|
Время, по истечении которого соединение удаляется (мс). Рекомендованное значение — 1800000, значение указывается в файле |
|
|
Максимальное количество соединений в пуле. Рекомендованное значение — 10, значение указывается в файле |
|
|
Время, в течение которого соединение не обслуживает запросы прежде чем удалиться по idle тайм-ауту (мс). Рекомендованное значение — 600000, значение указывается в файле |
|
|
Время, в течение которого пользователь должен получить соединение (мс). Рекомендованное значение — 30000, значение указывается в файле |
|
|
SQL-запрос для проверки соединения с БД. Если значение не задано, проверка осуществляется с помощью драйвера. Рекомендуется не заполнять. Значение указывается в файле |
|
|
Время, в течение которого соединение может быть вне пула, прежде, чем в лог-файл отправятся сообщения о возможной утечке соединений. Рекомендованное значение — 0, значение указывается в файле |
|
|
Определяет поведение при первом соединении (сек). Рекомендованное значение — 1, значение указывается в файле |
|
|
Время, в течение которого SQL-запрос пользователя должен выполниться (сек). Рекомендованное значение — 0, значение указывается в файле |
Значения параметров подключения к PSQL для исполнения liquibase-скриптов, входящих в состав дистрибутивного комплекта LNSE, устанавливаются:
в секции
dbscriptsфайла\conf\distrib.yml;в файле
custom_property.conf.ymlдистрибутива конфигурации развертывания.
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
distrib.yml |
|
Каталог дистрибутива LNSE со скриптами liquibase. Значение — |
|
Путь к БД, значение — |
|
|
JDBC Driver, значение — |
|
|
Первый фасет в наименовании схемы БД, значение — |
|
|
Логин liquibase-пользователь БД LNSE, значение — |
|
|
Пароль liquibase-пользователь БД LNSE, значение — |
|
|
Имя табличного пространства для хранения данных, значение — |
|
|
Имя табличного пространства для хранения индексов, значение — |
|
|
Имя табличного пространства для хранения объектов БД с типом LOB, значение — |
При определении параметров подключения к СУБД используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Путь к БД, используется секрет из SecMan |
|
|
Логин liquibase-пользователь БД LNSE, используется секрет из SecMan |
|
|
Пароль liquibase-пользователь БД LNSE, используется секрет из SecMan |
Интеграция с Secret Management System#
Для работы с секретами LNSE может быть интегрирован с SecMan (решение на базе HashiCorp Vault, не входит в состав Платформы) — инструментом, который обеспечивает безопасный способ хранения и распространения секретов.
SecMan предоставляет средства создания, отзыва (удаления) и ротации секретов, а также обеспечивает безопасную доставку секретов на ресурсы LNSE в процессе его функционирования без необходимости прерывания сервиса LNSE.
Одними из основных компонентов SecMan являются движки секретов различных типов — компоненты, которые хранят, генерируют или шифруют данные. Некоторые движки секретов просто хранят и считывают данные, другие подключаются к другим сервисам и генерируют динамические учетные данные по требованию.
Для секретов LNSE возможно использование движков следующих типов:
kv — универсальное хранилище ключ-значение, используемое для хранения произвольных секретов в сконфигурированном физическом хранилище;
database — генерирует пароли доступа к базе данных для предварительно настроенных ролей;
PKI — генерирует динамические сертификаты X.509, не предусматривает хранение сертификатов. Верификация сертификатов обеспечивается механизмами аутентификации и авторизации HashiCorp Vault, отправка сертификатов в центр сертификации не требуется.
Для интеграции с SecMan используются sidecar-приложения vault-agent либо оператор External Secrets Operator. Способ интеграции определяется в конфигурации развертывания LNSE.
В LNSE c конфигурацией развертывания в окружении продукта #FS используется vault-agent sidecar.
Приложение vault-agent — дополнение SecMan, которое обеспечивает доставку секретов в файловую систему среды функционирования приложений LNSE.
При организации информационного обмена с SecMan должно быть подготовлено kv-хранилище SecMan, для размещения следующих секретов, используемых LNSE:
логин и пароль доступа к БД;
сертификат и ключ клиента;
сертификат и ключ сервера для шлюза Ingress;
сертификат и ключ для обмена с OTTS;
корневые сертификаты удостоверяющих центров.
В KV-хранилище должны быть размещены корневые сертификаты.
Примечание
В LNSE реализована загрузка контейнеров с несколькими корневыми сертификатами разных удостоверяющих центров из KV-хранилища секретов SecMan.
Для секретов в хранилище SecMan должны быть определены ключи:
Секрет/пароль |
Ключ |
Описание |
|---|---|---|
|
|
Логин пользователя БД LNSE |
|
Пароль доступа к БД LNSE |
|
В соответствии со значением переменной |
|
Сертификат клиента. Используется для подключения к БД в SSL-режиме, для шлюза Egress, для обмена с OTTS |
|
Ключ сертификата клиента |
|
|
Ключевая фраза хранилища JKS c сертификатом клиента |
|
|
Серийный номер сертификата клиента |
|
В соответствии со значением переменной |
|
Сертификат сервера для шлюза Ingress |
|
Ключ сертификата сервера для шлюза Ingress |
|
|
Серийный номер сертификата сервера для шлюза Ingress |
|
В соответствии со значением переменной |
|
Сертификат для обмена с OTTS |
|
Ключ сертификата для обмена с OTTS |
|
|
Серийный номер сертификата для обмена с OTTS |
|
В соответствии со значением переменной |
|
Корневой сертификат (ключ издателя) |
|
Корневой сертификат (ключ издателя) |
|
|
Хранилище JKS c корневым сертификатом |
|
|
Ключевая фраза хранилища JKS c корневым сертификатом |
Для обеспечения доступа к секретам из приложений vault-agent, развернутых в pod LNSE, в SecMan должна быть настроена роль. Требуется доступ из namespace LNSE к kv-хранилищу SecMan на чтение секретов и их списка.
При конфигурировании PKI движков в SecMan должны быть настроены роль для выпуска сертификатов методом fetch. Имя роли должно соответствовать значению переменной global.platform.annotations.hashicorp.cert.client.secretName репозитория Common.
Настройки подключения vault-agent к pod LNSE определяются в файлах
\conf\openshift\data-dictionary-*\dc.yaml,\conf\openshift\istio\deployments\ingress\ingress-dc.yaml,\conf\openshift\istio\deployments\egress\egress-dc.yamlдистрибутива конфигурации развертывания. Файлы, в том числе, содержат инструкции выпуска сертификатов и извлечения секретов из SecMan. Секреты извлекаются из внешнего кластера SecMan с использованием аннотацийsecman-injectorв YAML-файлах. Аннотации представляют собой инструкции по конфигурации дляsecman-injector, добавляющего sidecar-контейнер vault-agent в pod приложения.Порт для обращения к SecMan через egress определяется в файле
\conf\openshift\istio\config\egress\se-egress-secman.yamlдистрибутива конфигурации развертывания LNSE.Параметры интеграции с SecMan устанавливаются в файлах дистрибутива конфигурации развертывания LNSE:
минимальная конфигурация аппаратного обеспечения среды контейнеризации для vault-agent устанавливается в файле
\conf\config\parameters\dictionary.vault.all.conf;настройки функционирования vault-agent задаются в файлах
\conf\config\parameters\dictionary.vault.all.conf,\conf\config\parameters\dictionary.istio.all.conf;список файлов с секретами, доставку которых прикладные pod LNSE будут ожидать перед своим стартом, содержится в файле
\conf\openshift\configmaps\dictionary-secman.yaml.
Параметры интеграции с SecMan:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Namespace, которое используется при запросе секретов из SecMan |
|
Роль, используемая методом автоматической аутентификации vault-agent. Рекомендованное значение — |
|
|
Базовый путь до kv-движка. Если значение задано, то в конце пути обязателен символ |
|
|
Базовый путь до pki-движка. Не заполняется |
|
|
Полный URL до монтирования secret engine с корневыми сертификатами. Рекомендованное значение — |
|
|
Ключ в секрете с корневыми сертификатами для получения сертификата |
|
|
Ключ в секрете с корневыми сертификатами для получения сертификата |
|
|
Ключ в секрете с корневыми сертификатами для получения |
|
|
Ключ в секрете с корневыми сертификатами для получения |
|
|
Количество повторений при ошибочных запросах. Рекомендованное значение — |
|
|
CN серверного сертификата для LNSE. Используется в ingress. Значение должно совпадать с наименованием route. Рекомендованное значение — |
|
|
CN клиентского сертификата для LNSE. Рекомендованное значение — |
|
|
Путь к volume с секретом |
|
|
Путь к секрету |
|
|
Путь к секрету |
|
|
Путь до секрета с именем |
|
|
Путь к volume с секретом |
|
|
Путь к секрету |
|
|
Путь до секрета с именем |
|
|
Полный URL до монтирования secret engine для |
|
|
Наименование роли PKI движка для выпуска сертификата с ключом |
|
|
Путь к volume с секретом |
|
|
Путь к секрету |
|
|
Путь до секрета с именем |
|
|
Полный URL до монтирования secret engine для |
|
|
Имя секрета |
|
|
Путь к volume с секретом |
|
|
Полный URL до монтирования secret engine для |
|
|
Имя секрета |
|
|
Полный URL до монтирования secret engine для |
|
|
Полный URL до монтирования secret engine для |
|
|
Наименование роли PKI-движка для выпуска сертификата |
|
|
Наименование роли PKI-движка для выпуска сертификата |
|
|
Путь к volume с секретом |
|
|
Путь до секрета с именем |
|
|
Полный URL до монтирования secret engine для |
|
|
Наименование роли PKI-движка для выпуска сертификата |
|
|
Путь к volume с секретом |
|
|
Путь до секрета с именем |
|
|
Имя секрета |
|
|
Включение функциональности журналирования vault-agent. |
|
|
Определяет путь к папке для лог-файлов c с |
|
|
Определяет путь к папке для лог-файлов c с |
|
|
Имя лог-файла с |
|
|
Имя лог-файла с |
|
|
Имя контейнера в который монтируется объект типа |
|
|
Период ротации лог-файлов с |
|
|
Максимальный размер лог-файла с |
|
|
Уровень логировния VaultAgent с выводом в stdout (консоль). Рекомендованное значение — |
|
|
Уровень логирования VaultAgent с |
|
|
Формат записи лог-сообщений c |
|
|
Формат записи лог-сообщений с |
|
|
Хост и порт |
|
|
Настройка securityContext контейнеров. Идентификатор непривилегированного пользователя. Рекомендованное значение — |
|
|
Настройка securityContext контейнеров. Идентификатор непривилегированной группы. Рекомендованное значение — |
|
|
Настройка securityContext контейнеров. Идентификатор непривилегированной группы указанной в образе. Рекомендованное значение — |
|
|
|
Список файлов с секретами, доставку которых прикладные pod LNSE будут ожидать перед своим стартом |
|
|
Использование egress протокола HTTPS в режиме passthrough (пропуск трафика в зашифрованном виде). Рекомендованное значение — |
Параметры интеграции с SSM#
Сервисная сетка (service mesh) — слой инфраструктуры, который позволяет управлять связью между сервисами. Service mesh состоит из двух зон:
Control Plane или Istiod (управляющий уровень). Отвечает за назначение и распространение политик маршрутизации трафика, артефакты, безопасности, токены, ключи, сертификаты.
Data Plane (передающий уровень). Размещается непосредственно с приложениями и исполняет политики, которые получает от Control Plane.
LNSE интегрирован с сервисной сеткой (service mesh) Istio. Рекомендуется использование следующих компонентов продукта SSM, которые, помимо доставки запросов через топологию сервисов, обеспечивают средства мониторинга и валидации сервиса и его конфигураций:
SVPX;
IGEG;
POLM.
В разделе описана интеграции с компонентами продукта Platform V Synapse Service Mesh (SSM) — POLM, SVPX, IGEG.
SVPX#
SVPX добавляется в каждый прикладной pod LNSE в виде sidecar-контейнера istio-proxy. Istio-proxy используется для маршрутизации трафика между приложениями.
Минимальная конфигурация аппаратного обеспечения среды контейнеризации для sidecar-контейнера istio-proxy устанавливается в файлах дистрибутива конфигурации развертывания LNSE:
\conf\config\parameters\data-dictionary-load.conf;\conf\config\parameters\data-dictionary-manage.conf;\conf\config\parameters\data-dictionary-service.conf.
Для запуска приложений LNSE c sidecar-контейнерами istio-proxy в файлах \conf\k8s\base\data-dictionary-*\dc.yaml дистрибутива конфигурации развертывания LNSE добавлены аннотации sidecar.istio.io.
IGEG#
IGEG добавляется в namespace LNSE в виде контейнера istio-proxy с приложением ingress gateway и контейнера istio-proxy с приложением egress gateway. IGEG выполняют роль управляемого маршрутизатора трафика, приходящего и исходящего из namespace LNSE.
ingress gateway
Ingress gateway предназначен для добавления правил маршрутизации трафика из внешних источников во внутренние службы среды контейнеризации. Весь входящий трафик должен аккумулироваться в ingress gateway.
Параметры функционирования ingress gateway устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
минимальная конфигурация аппаратного обеспечения среды контейнеризации для istio-proxy устанавливается в файле
\conf\config\parameters\dictionary.istio.all.conf;настройки istio-proxy задаются в файлах:
\conf\k8s\base\istio\config\egress\cm-istio-basic.yaml;\conf\config\parameters\dictionary.istio.all.conf;
настройки ingress gateway задаются в файле
\conf\k8s\base\istio\deployments\ingress\dc-ingress.yaml;квоты количества неработающих pod устанавливаются в файле
\conf\k8s\base\istio\deployments\ingress\pdb-ingress.yaml;настройки информационного обмена между смежными АС и ingress gateway задаются в файлах:
\conf\k8s\base\istio\deployments\ingress\route-ingress.yaml;\conf\k8s\base\istio\config\ingress\gw-ingress.yaml;\conf\k8s\base\istio\deployments\ingress\svc-ingress.yaml;
настройки информационного обмена между ingress gateway и прикладными контейнерами LNSE задаются в файлах:
\conf\k8s\base\istio\deployments\ingress\vs-ingress.yaml.
Описание взаимосвязей объектов, описанных в yaml-файлах:
Внешний ресурс отправляет запрос на host, указанный в Route. Host должен быть уникален в рамках кластера.
Route перенаправляет запрос на определенный в нем Service и его порт. Этот Service должен быть привязан к pod ingress gateway.
Service перенаправляет трафик на указанный порт pod ingress gateway, при этом объект Gateway (является частью ingress gateway) разрешает либо запрещает входящий трафик согласно указанной в нем конфигурации, а EnvoyFilter фильтрует трафик.
VirtualService (является частью ingress gateway) перехватывает трафик, выходящий с Gateway, и отправляет его на прикладной Service. После маршрутизации трафика DestinationRule определяет, что происходит с трафиком для конкретного пункта назначения.
Service перенаправляет трафик на указанный порт прикладного pod.
Схема взаимосвязей объектов:

egress gateway
Egress gateway предназначен для маршрутизации трафика из внутренних служб/приложений среды контейнеризации во внешние ресурсы — весь исходящий трафик должен идти через egress gateway.
Параметры функционирования ingress gateway устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
минимальная конфигурация аппаратного обеспечения среды контейнеризации для istio-proxy устанавливается в файле
\conf\config\parameters\dictionary.istio.all.conf;настройки istio-proxy задаются в файлах
\conf\k8s\base\istio\config\egress\cm-istio-basic.yaml,\conf\config\parameters\dictionary.istio.all.conf;квоты количества неработающих pod устанавливаются в файле
\conf\k8s\base\istio\deployments\egress\pdb-egress.yaml;настройки egress gateway задаются в файле
\conf\k8s\base\istio\deployments\egress\dc-egress.yaml;настройки информационного обмена между прикладными контейнерами LNSE и egress gateway и egress gateway и смежными АС и БД задаются в файлах:
\conf\k8s\base\istio\config\egress\dictionary.federation-monitoring-service-entry.yaml;\conf\k8s\base\istio\config\egress\dictionary.kubernetes-service-entry.yaml;\conf\k8s\base\istio\config\egress\dictionary.targets-into-namespace-service-entry.yaml;\conf\k8s\base\istio\config\egress\dictionary-*-egress-kafka-se.yaml;\conf\k8s\base\istio\config\egress\dictionary.federation-monitoring-virtual-service.yaml;\conf\k8s\base\istio\config\egress\dictionary.kubernetes-virtual-service.yaml;\conf\k8s\base\istio\config\egress\dictionary-*-egress-kafka-vs.yaml;\conf\k8s\base\istio\config\egress\vs-ott.yaml;\conf\k8s\base\istio\config\egress\egress-integration-db-dict.yaml;\conf\k8s\base\istio\config\egress\egress-integration-tls-audit2.yaml;\conf\k8s\base\istio\config\egress\egress-integration-tls-iag.yaml;\conf\k8s\base\istio\config\egress\egress-integration-tls-public-key-locations.yaml;\conf\k8s\base\istio\config\egress\egress-integration-tls-sgw.yaml;\conf\k8s\base\istio\config\egress\egress-integration-tls-vault.yaml;\conf\k8s\base\istio\config\egress\gw-ott.yaml;\conf\k8s\base\istio\config\egress\dictionary.unimon-client-gateway.yaml;\conf\k8s\base\istio\config\egress\dictionary.federation-monitoring-gateway.yaml;\conf\k8s\base\istio\config\egress\dictionary-*-egress-kafka-gw.yaml;\conf\k8s\base\istio\config\egress\dictionary.federation-monitoring-destination-rule.yaml;\conf\k8s\base\istio\config\egress\dictionary.kubernetes-destination-rule.yaml;\conf\k8s\base\istio\config\egress\dictionary-*-egress-kafka-dr.yaml;\conf\k8s\base\istio\config\egress\dictionary.targets-into-namespace-envoy-filter.yaml;\conf\k8s\base\istio\config\egress\ufs-extensions.ulogger-egress-access-log-envoyFilter.yaml;\conf\k8s\base\istio\config\egress\ufs-extensions.ulogger-ingress-access-log-envoyFilter.yaml;\conf\k8s\base\istio\config\egress\ufs-extensions.ulogger-istio-config.yaml;\conf\k8s\base\istio\config\egress\ufs-extensions.ulogger-istio-controller-config.yaml;\conf\k8s\base\istio\config\egress\unimon-vault-scrap-ef.yaml;
Описание взаимосвязей объектов, описанных в yaml-файлах:
Прикладное приложение отправляет запрос к внешнему ресурсу, при этом указываются host и port внешнего ресурса. Трафик попадает на ServiceEntry.
Весь внутренний трафик, проходящий через ServiceEntry, перенаправляется на gateway mesh (внутренний gateway Istio).
VirtualService перехватывает трафик от gateway mesh и направляет его на Service, привязанный к pod egress gateway.
Service перенаправляет трафик на указанный порт pod egress gateway, при этом объект Gateway (является частью egress gateway) разрешает либо запрещает входящий трафик согласно указанной в нем конфигурации.
VirtualService направляет трафик на внешний ресурс — на целевые host и port ресурса, заданные ранее в ServiceEntry. После маршрутизации трафика DestinationRule определяет, что происходит с трафиком для конкретного пункта назначения.
Схема взаимосвязей объектов:

POLM#
POLM служит для автоматизированной рассылки конфигураций политик управления трафиком, политик безопасности и прочих управляющих команд для IGEG и SVPX.
Параметры интеграции с POLM устанавливаются путем определения их значений в файле \conf\config\parameters\dictionary.istio.all.conf дистрибутива конфигурации развертывания LNSE.
Общие параметры для интеграции с компонентами SSM#
Параметр |
Описание |
|---|---|
|
Namespace компонента. Значение — |
|
Параметр для настройки ConfigMap |
|
Образ для настройки ingress/egress. Рекомендованное значение — |
|
Внутренний порт для ingress. Рекомендованное значение — |
|
Время, в течение которого High Availability Proxy будет ожидать ответа на запрос, измеряется в миллисекундах. High Availability Proxy — это открытый балансировщик нагрузки TCP/HTTP и прокси-сервер, он позволяет улучшить производительность и ошибкоустойчивость серверного окружения путем распределения рабочей нагрузки между несколькими серверами, например, между веб-сервером, сервером баз данных и сервером приложений. Рекомендованное значение — |
|
Внутренний порт для egress. Рекомендованное значение — |
|
Порт для обращения через egress к Kafka. Рекомендованное значение — |
|
Максимальное количество pod egress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — |
|
Максимальное количество pod egress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — |
|
Максимальное количество pod ingress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — |
|
Максимальное количество pod ingress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — |
|
Клиентский CN, для которого разрешен вызов. Рекомендованное значение — |
|
Время принудительного завершения процесса после начала остановки pod egress. Рекомендованное значение — |
|
Время принудительного завершения процесса после начала остановки pod ingress. Рекомендованное значение — |
|
Адрес сервиса istiod Control Plane. Рекомендованное значение — |
|
Метка podAntiAffinity egress. Рекомендованное значение — |
|
Значение метки |
|
Метка podAntiAffinity ingress. Рекомендованное значение — |
|
Значение метки |
|
Использование egress протокола HTTPS в режиме |
|
FQDN сервиса. Рекомендованное значение — |
|
Максимальное количество |
|
Уровень логирования Envoy Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Уровень логирования pilot-agent Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Путь к лог-файлу. Рекомендованное значение — |
|
Наименования проекта Control plane. Рекомендованное значение — |
|
Адрес сервиса istiod Control Plane. Рекомендованное значение — |
|
Порт сервиса istiod Control Plane. Рекомендованное значение — |
|
Уровень логирования pilot-agent для Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Имя лог-файла pilot-agent для Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Уровень логирования для Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Имя лог-файла Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Имя лог-файла с access_logs pilot-agent для Ingress Gateway, Egress Gateway. Рекомендованное значение — |
|
Раз в минуту pilot-agent проверяет размеры указанных ротируемых файлов и копирует их содержимое в новый файл с именем в формате |
|
Число бэкап-файлов, сохраняющихся при ротации. |
|
Число дней, которое хранятся файлы бэкапов. Целое число. Рекомендованное значение — |
|
Предсказуемое окончание работы, когда все запущенные процессы корректно завершают работу без потери данных или негативного пользовательского опыта. Рекомендованное значение — |
|
Включение распределения экземпляров компонента по разным нодам среды исполнения для каждого компонента. Рекомендованное значение — |
|
Метка |
|
Значение метки |
|
Метка |
|
Значение метки |
|
Максимальное количество pod egress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — |
|
Максимальное количество pod ingress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — |
|
Время принудительного завершения процесса после начала остановки pod ingress, рекомендованное значение — |
|
Максимальное количество |
|
Максимальное количество pod egress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — |
|
Максимальное количество pod egress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — |
|
Максимальное количество |
|
Время принудительного завершения процесса после начала остановки pod egress. Рекомендованное значение — |
|
Порт встроенного интрефейса администрирования egress и ingress. Рекомендованное значение — |
|
Метка |
|
Метка |
|
Метка |
|
Метка |
|
Адрес сервиса |
|
Порт сервиса |
|
Настройка внешнего взаимодействия посредством Istio с провайдером аутентфикации — адрес IAM. Рекомендованное значение — |
|
Настройка внешнего взаимодействия посредством Istio с провайдером аутентфикации — порт IAM. Рекомендованное значение — |
|
Время, в течение которого High Availability Proxy будет ожидать ответа на запрос, измеряется в миллисекундах (High Availability Proxy – это открытый балансировщик нагрузки TCP/HTTP и прокси-сервер, он позволяет улучшить производительность и ошибкоустойчивость серверного окружения путем распределения рабочей нагрузки между несколькими серверами, например, между веб-сервером, сервером баз данных и сервером приложений). Рекомендованное значение — |
|
Внутренний порт для ingress. Рекомендованное значение — |
|
Маршрутизация между релизами для возможности «горячего отката» в рамках пилотирования DropApp |
|
Версия предыдущего релиза, необходима для отката в случае проблем при раскатке. Рекомендованное значение — |
|
Версия текущего релиза. Рекомендованное значение — |
|
Путь для обращения к приложению (route). Рекомендованное значение — |
|
Версия релиза LNSE в формате для IAGW. Рекомендованное значение — |
|
Fqdn для IAGW. Рекомендованное значение — |
|
Тип прокси Ingress-контроллера (nginx/haproxy). Рекомендованное значение — |
|
Тайм-аут при чтении ответа проксированного сервера. Тайм-аут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени проксируемый сервер ничего не передаст, соединение закрывается. Рекомендованное значение — |
|
Тайм-аут для установления соединения с проксированным сервером. Рекомендованное значение — |
|
Тайм-аут при передаче запроса проксированному серверу. Рекомендованное значение — |
|
Тайм-аут запроса проксированного сервера. Рекомендованное значение — |
|
Порт подключения к HTTP endpoint с метриками мониторинга. Рекомендованное значение — |
|
Правило извлечения образов из реестров контейнеров: |
|
Хост logger. Рекомендованное значение — |
|
Правило по обработке неизвестного исходящего трафика от приложения: |
|
Период ротации токена сервисного аккаунта. Рекомендованное значение — |
|
Адрес сервиса istiod Control Plane. Рекомендованное значение — |
|
Адрес порта egress. Рекомендованное значение — |
|
Внутренний порт SSM, через который проходит трафик внутри mesh. Рекомендованное значение — |
|
Путь к PKI хранилищу SecMan. Рекомендованное значение — |
|
Максимальное количество |
|
Время ожидания перед отключением Istio для возможности корректно завершить все установленные соединения. Рекомендованное значение — |
|
Включение механизма контроля количества Pod приложения, которые могут быть недоступны в момент времени. Рекомендованное значение — |
|
Настройки |
|
Количество секунд от старта контейнера до начала readiness проб. Минимальное значение 0. Рекомендованное значение — |
|
Количество секунд ожидания пробы. Минимальное значение 1. Рекомендованное значение — |
|
Длительность времени (в секундах) между двумя последовательными проведениями проб. Минимальное значение 1. Рекомендованное значение — |
|
Минимальное количество последовательных проверок, чтобы проба считалась успешной после неудачной. Рекомендованное значение — |
|
Количество попыток получения readiness пробы. Рекомендованное значение — |
|
Настройка |
|
Настройка |
|
Настройка |
|
Путь к PKI хранилищу SecMan. Рекомендованное значение — |
|
Время ожидания перед отключением Istio, для возможности корректно завершить все установленные соединения. Значение — |
|
Включение распределения экземпляров компонента по разным нодам среды исполнения для каждого компонента. Рекомендованное значение — |
|
Включение механизма контроля количества Pod приложения, которые могут быть недоступны в момент времени. Рекомендованное значение — |
|
Настройки PodDisruptionBudget. Минимальное количество pod egress, которые должны быть доступны одновременно. Рекомендованное значение — |
|
Количество секунд от старта контейнера до начала readiness проб. Минимальное значение 0. Рекомендованное значение — |
|
Количество секунд ожидания пробы. Минимальное значение 1. Рекомендованное значение — |
|
Длительность времени (в секундах) между двумя последовательными проведениями проб. Минимальное значение 1. Рекомендованное значение — |
|
Минимальное количество последовательных проверок, чтобы проба считалась успешной после неудачной. Рекомендованное значение — |
|
Количество попыток получения readiness пробы. Рекомендованное значение — |
|
Настройка |
|
Настройка |
|
Настройка |
|
Путь для обращения к приложению (route). Рекомендованное значение — |
|
Внутренний порт для ingress. Рекомендованное значение — |
|
Тип прокси Ingress-контроллера (nginx/haproxy). Рекомендованное значение — |
|
Алгоритм балансировки нагрузки. Рекомендованное значение — |
|
Прием SSL-трафика без его терминации на Ingress. Рекомендованное значение — |
|
Тайм-аут запроса проксированного сервера. Рекомендованное значение — |
|
Тайм-аут при чтении ответа проксированного сервера. Тайм-аут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени проксируемый сервер ничего не передаст, соединение закрывается. Рекомендованное значение — |
|
Тайм-аут для установления соединения с проксированным сервером. Рекомендованное значение — |
|
Тайм-аут при передаче запроса проксированному серверу. Рекомендованное значение — |
|
Включение механизма перенаправления подключенного по HTTP пользователя на тот же URL с HTTPS. Рекомендованное значение — |
|
Клиентский CN, для которого разрешен вызов. Рекомендованное значение — |
|
Параметр circuit breaker. Максимальная продолжительность извлечения для pod из пула балансировки нагрузки. Рекомендованное значение — |
|
Количество ошибок до того, как pod будет удален из пула. Применяются все ошибки 5ХХ. Рекомендованное значение — |
|
Интервал времени для анализа. Например, сервисы проверяются каждые 10 секунд, после истечения указанного времени подсчет ошибок начнется с 0. Рекомендованное значение — 1s |
|
Максимальный процент pod, которые могут быть извлечены из пула балансировки нагрузки. Рекомендованное значение — |
|
Параметр circuit breaker. Максимальная продолжительность извлечения для pod из пула балансировки нагрузки. Рекомендованное значение — |
|
Количество ошибок до того, как pod будет удален из пула. Применяются все ошибки 5ХХ. Рекомендованное значение — |
|
Интервал времени для анализа. Например, сервисы проверяются каждые 10 секунд, после истечения указанного времени подсчет ошибок начнется с 0. Рекомендованное значение — |
|
Максимальный процент pod, которые могут быть извлечены из пула балансировки нагрузки. Рекомендованное значение — |
|
Настройки липкой сессии SUSD к узлам сервиса-потребителя. Имя cookie, которая используется в алгоритме балансировки consistentHash. Рекомендованное значение — |
|
Настройки липкой сессии SUSD к узлам сервиса-потребителя. URL-адрес, к которому применяется cookie. Рекомендованное значение — |
|
Настройки липкой сессии SUSD к узлам сервиса-потребителя. TTL cookie, которая используется в алгоритме балансировки consistentHash. Рекомендованное значение — |
|
Параметр circuit breaker. Максимальная продолжительность извлечения для pod из пула балансировки нагрузки. Рекомендованное значение — |
|
Количество ошибок до того, как под будет удален из пула. Применяются все ошибки 5ХХ. Рекомендованное значение — |
|
Интервал времени для анализа. Например, сервисы проверяются каждые 10 секунд, после истечения указанного времени подсчет ошибок начнется с 0. Рекомендованное значение — |
|
Максимальный процент подов, которые могут быть извлечены из пула балансировки нагрузки. Рекомендованное значение — |
|
Наименование роли PKI движка SecMan для серверного сертификата (используется для ingress). Рекомендованное значение — |
|
Наименование роли PKI движка для клиентского сертификата (используется для egress). Рекомендованное значение — |
|
CN серверного сертификата для компонента. Используется в ingress. Значение должно совпадать с наименованием route. Рекомендованное значение — |
|
CN клиентского сертификата для компонента. Используется в |
|
Список серверов БД. Значение — |
|
Хост прокси приложения AUDT. Значение — |
|
Порт для подключения к AUDT. Значение — |
|
Протокол безопасности, по которому происходит подключение к AUDT. Значение — |
|
Способ tls-подключения к AUDT: DISABLED (по HTTP без авторизации) либо MUTUAL (с использованием сертификатов). Значение — |
|
Способ разрешения имени хоста AUDT. Значение — |
|
|
|
|
|
HTTP тайм-аут для исходящего вызова AUDT. Значение — |
|
|
|
|
|
|
|
|
|
Включение/отключение подключения к Kafka LOGE. Значение — |
|
Строка подключения к boostrap серверам кластера Kafka LOGE. Значение — |
|
Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka LOGE. Значение — |
|
Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka LOGE. Значение — |
|
Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka LOGE. Значение — |
|
Порт для обращения к сервису для доступа к кластеру Kafka LOGE. Значение — |
|
Имя сервиса для доступа к кластеру Kafka LOGE. Значение — |
|
Включение/отключение подключения к Kafka LOGA. Значение — |
|
Строка подключения к boostrap серверам кластера Kafka LOGA. Значение — |
|
Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka LOGA. Значение — |
|
Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka LOGA. Значение — |
|
Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka LOGA. Значение — |
|
Порт для обращения к сервису для доступа к кластеру Kafka LOGA. Значение — |
|
Имя сервиса для доступа к кластеру Kafka LOGA. Значение — |
|
Включение/отключение подключения к Kafka Logsys. Значение — |
|
Строка подключения к boostrap серверам кластера Kafka Logsys. Значение — |
|
Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka Logsys. Значение — |
|
Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka Logsys. Значение — |
|
Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka Logsys. Значение — |
|
Порт для обращения к сервису для доступа к кластеру Kafka Logsys. Значение — |
|
Имя сервиса для доступа к кластеру Kafka Logsys. Значение — |
|
Включение/отключение подключения к Kafka Monsys. Значение — |
|
Строка подключения к boostrap серверам кластера Kafka Monsys. Значение — |
|
Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka Monsys. Значение — |
|
Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka Monsys. Значение — |
|
Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka Monsys. Значение — |
|
Порт для обращения к сервису для доступа к кластеру Kafka Monsys. Значение — |
|
Имя сервиса для доступа к кластеру Kafka Monsys. Значение — |
|
Включение/отключение подключения к Kafka Platform. Значение — |
|
Строка подключения к boostrap серверам кластера Kafka Platform. Значение — |
|
Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka Platform. Значение — |
|
Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka Platform. Значение — |
|
Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka Platform. Значение — |
|
Порт для обращения к сервису для доступа к кластеру Kafka Platform. Значение — |
|
Имя сервиса для доступа к кластеру Kafka Platform. Значение — |
|
Включение/отключение подключения к Kafka MONE. Значение — |
|
Строка подключения к boostrap серверам кластера Kafka MONE. Значение — |
|
Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka MONE. Значение — |
|
Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka MONE. Значение — |
|
Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka MONE. Значение — |
|
Порт для обращения к сервису для доступа к кластеру Kafka MONE. Значение — |
|
Имя сервиса для доступа к кластеру Kafka MONE. Значение — |
Параметры интеграции с OTTS#
В части аутентификации и авторизации межсервисных взаимодействий LNSE может быть интегрирован с OTTS.
Для включения информационного обмена с OTTS в файле openShift.conf репозитория Common параметр global.ott.ose_deploy должен быть установлен в true.
Подсказка
OTTS предоставляет средства для удостоверения субъекта доступа и разграничения доступа к API LNSE на транспортном уровне, а также контроля целостности получаемого сообщения. С помощью OTTS обеспечивается защищенное взаимодействие за границами namespace LNSE.
Для интеграции с OTTS используются sidecar-приложения ott-sidecar, которые размещаются в pod шлюзов Ingress и Egress LNSE.
Примечание
Взаимодействие с OTTS должно осуществляться с использованием шифрованного протокола обмена данными. Для выпуска сертификатов предполагается использование PKI-движка секретов SecMan.
Параметры интеграции с OTTS устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
минимальная конфигурация аппаратного обеспечения среды контейнеризации для ott-sidecar устанавливается в файле
\conf\config\parameters\dictionary.ott-sidecar-ufs.all.conf;настройки подключения ott-sidecar к pod шлюзов Ingress и Egress и путь к используемому образу ott-sidecar задаются в файлах:
\conf\k8s\base\istio\deployments\egress\dc-egress.yaml;\conf\k8s\base\istio\deployments\ingress\dc-ingress.yaml;
настройки ott-sidecar задаются в файлах:
\conf\config\parameters\dictionary.ott-sidecar.all.conf;\conf\config\parameters\dictionary.ott-sidecar-ufs.all.conf;\conf\k8s\base\istio\config\egress\cm-ott-all-conf.yaml;\conf\k8s\base\istio\config\ingress\cm-ott-ingress.yaml;\conf\k8s\base\istio\config\egress\cm-ott-egress.yaml;
настройки фильтра авторизации ott-sidecar задаются в файлах:
\conf\k8s\base\istio\config\egress\ef-egress-ott-auth-filter.yaml;\conf\k8s\base\istio\config\ingress\ef-ingress-ott-auth-filter.yaml;
настройки виртуальной службы шлюза Egress, в том числе набор политик, применяемый при пересылке HTTP-трафика в службу, задаются в файле
\conf\k8s\base\istio\config\egress\egress-integration-tls-sgw.yaml;настройки виртуальной службы шлюза Egress для перенаправления HTTP-трафика с использованием ott-sidecar задаются в файле
\conf\k8s\base\istio\config\egress\vs-ott.yaml;настройки дополнительного шлюза для перенаправления HTTP-трафика через шлюз Egress с использованием ott-sidecar задаются в файле
\conf\k8s\base\istio\config\egress\gw-ott.yaml;настройки дополнительного порта для службы шлюза Egress задаются в файле
\conf\k8s\base\istio\deployments\egress\svc-egress.yaml;настройки журналирования ott-sidecar задаются в файле
\conf\k8s\base\istio\config\egress\ufs-extensions.ulogger.ott-sidecar-logback-xml.yaml;настройки аудита ott-sidecar задаются в файле
\conf\k8s\base\istio\config\egress\ott-union-audit-cm.yaml;настройки мониторинга ott-sidecar задаются в файлах:
\conf\k8s\base\istio\deployments\egress\ott-sidecar-unimon-agent-svc.yaml;\conf\k8s\base\istio\deployments\egress\ott-unimon-agent-svc.yaml;\conf\k8s\base\istio\deployments\ingress\ott-sidecar-unimon-agent-svc.yaml;\conf\k8s\base\istio\deployments\ingress\ott-unimon-agent-svc.yaml;
настройки виртуальной службы шлюза Ingress для приема запросов к прикладным pod LNSE с использованием ott-sidecar задаются в файле
\conf\k8s\base\istio\config\ingress\vs-ingress.yaml;настройки отдельного фильтра ott-sidecar для запросов самодиагностики LNSE (healthcheck), для которых требуется отключить фильтр авторизации ott-sidecar задаются в файле
\conf\k8s\base\istio\config\ingress\ingress-ott-skip-ext-authz-filter.yaml.
Параметры интеграции с OTTS:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Включение информационного обмена с OTTS. Рекомендованное значение — |
|
Тип хранилища сертификатов для OTTS. Рекомендованное значение — |
|
|
Период обновления кеша сертификатов серверов OTTS, сек. Рекомендованное значение — |
|
|
Шаблон URL OTTS. Рекомендованное значение — |
|
|
Список серверов с указанием портов OTTS для балансировки нагрузки. Рекомендованное значение — |
|
|
Порт для GRPC-запросов ott-sidecar. Рекомендованное значение — |
|
|
Порт для HTTP-запросов ott-sidecar. Рекомендованное значение — |
|
|
Протокол, по которому происходит подключение к Kafka. Рекомендованное значение — |
|
|
Время задержки страта ott-sidecar. Рекомендованное значение — |
|
|
Режим совместимости с ММТ 3 поколения. Рекомендованное значение — |
|
|
Область авторизации OTTS. Рекомендованное значение — |
|
|
Версия метода авторизации, рекомендованное значение — |
|
|
Логическая область, автономная с точки зрения авторизации доступов к ресурсам, контролируемых в OTTS. Отвечает на авторизацию доступа к ресурсу — вызова API. Рекомендованное значение — |
|
|
Путь к клиентскому сертификату. Рекомендованное значение — |
|
|
Путь к ключу клиентского сертификата. Рекомендованное значение — |
|
|
Путь к сертификату OTTS. Рекомендованное значение — |
|
|
Включение механизма ротации секретов. Рекомендованное значение — |
|
|
Доступные endpoint. Рекомендованное значение — |
|
|
Анонимный режим. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Тип хранилища сертификатов keystore. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Тип хранилища сертификатов truststore. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Псевдоним закрытого ключа сертификата. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Тип транспорта. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Время задержки считывания секретов. Рекомендованное значение — |
|
|
Включение механизма ротации секретов ott-sidecar. Рекомендованное значение — |
|
|
Параметр аудита ott-sidecar. Идентификатор элемента развертывания ott-sidecar. Рекомендованное значение — |
|
|
Параметр аудита ott-sidecar. Код АС, в состав которой интегрируется LNSE. Рекомендованное значение — |
|
|
Идентификатор компонента LNSE в OTTS с учетом регистра. Рекомендованное значение — |
|
|
CN сертификата. Рекомендованное значение — |
|
|
CN сертификата. Рекомендованное значение — |
|
|
Имя параметра секрета с паролем. Рекомендованное значение — |
|
|
Имя параметра секрета с JKS, сгенерированным vault-agent. Рекомендованное значение — |
|
|
Имя атрибута секрета с серийным номером. Рекомендованное значение — |
|
|
Путь к pki-engine в SecMan. Рекомендованное значение — |
|
|
Путь к pki-engine в SecMan. Рекомендованное значение — |
|
|
Имя секрета в SecMan. Рекомендованное значение — |
|
|
Имя параметра с сертификатом, сгенерированным vault-agent. Рекомендованное значение — |
|
|
Имя параметра с паролем доступа сертификату, сгенерированному vault-agent. Рекомендованное значение — |
|
|
Путь к сертификату клиента для обмена с OTTS. Рекомендованное значение — |
|
|
Сертификат клиента для обмена с OTTS. Рекомендованное значение — |
|
|
Сертификат клиента для обмена с OTTS. Рекомендованное значение — |
|
|
Включение envoyFilter для авторизации ott-sidecar. Рекомендованное значение — |
|
|
Если установлено значение |
|
|
Если размер тела сообщения превысит указанное значение, то тело сообщения будет урезано до заданного значения, либо фильтр вернет ошибку 413 (см. описание параметра |
|
|
Если установлено значение true, то фильтр ott-sidecar будет воспринимать тело сообщения, как двоичные данные, иначе — как данные в кодировке UTF-8. Рекомендованное значение — |
|
|
|
Шаблон URL OTTS. Рекомендованное значение — |
|
Список серверов с указанием портов OTTS для балансировки нагрузки, или аналогичный список nginx OTTS, рекомендованное значение — |
|
|
Порт для GRPC-запросов ott-sidecar. Рекомендованное значение — |
|
|
Идентификатор компонента LNSE в OTTS (с учетом регистра). Рекомендованное значение — |
|
|
Период обновления кеша сертификатов серверов OTTS, измеряется в секундах. Рекомендованное значение — |
|
|
Время задержки страта ott-sidecar, рекомендованное значение — |
|
|
Включение механизма ротации секретов ott-sidecar. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Тип транспорта. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Время задержки считывания секретов. Рекомендованное значение — |
|
|
Область авторизации OTTS, рекомендованное значение — |
|
|
Режим совместимости с ММТ 3 поколения. Рекомендованное значение — |
|
|
Версия метода авторизации, рекомендованное значение — |
|
|
Анонимный режим. Рекомендованное значение — |
|
|
Логическая область, автономная с точки зрения авторизации доступов к ресурсам, контролируемых в OTTS. Отвечает за авторизацию доступа к ресурсу — вызову API. Рекомендованное значение — |
|
|
Порт для readiness probe ott-sidecar. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Уровень логирования. Рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Тип хранилища сертификатов keystore, рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Тип хранилища сертификатов truststore, рекомендованное значение — |
|
|
Параметр логирования ott-sidecar. Псевдоним закрытого ключа сертификата, рекомендованное значение — |
|
|
Параметр аудита ott-sidecar. Код АС, в состав которой интегрируется компонент LNSE. Рекомендованное значение — |
|
|
Параметр аудита ott-sidecar. Идентификатор элемента развертывания ott-sidecar. Рекомендованное значение — |
|
|
Включение envoyFilter для авторизации ott-sidecar. Рекомендованное значение — |
|
|
Если установлено значение |
|
|
Если размер тела сообщения превысит указанное значение, то тело сообщения будет урезано до заданного значения, либо фильтр вернет ошибку 413 (см. описание параметра |
|
|
Если установлено значение |
|
|
|
Включение/отключение развертывания OTTS-sidecar. Рекомендованное значение — |
При определении параметров интеграции с OTTS используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Переключатель, активирующий работу OTTS. Рекомендованное значение — |
|
|
Тип хранилища сертификатов. Рекомендованное значение — |
|
|
Шаблон URL OTTS. При балансировке значения будут подставляться из |
|
|
Список серверов с указанием порта OTTS для балансировки нагрузки. Значение указывается в |
|
|
Порт для GRPC-запросов ott-sidecar. Рекомендованное значение — |
|
|
Протокол безопасности, по которому происходит подключение к Kafka: |
|
|
Область авторизации OTTS. Рекомендованное значение — |
|
|
Код АС, в состав которой интегрируется компонент LNSE. Рекомендованное значение — |
|
|
Путь к pki-engine в SecMan |
|
|
Наименование роли PKI движка для клиентского сертификата egress |
|
|
Наименование роли PKI движка для клиентского сертификата OTTS |
|
|
Уровень логирования для ott-sidecar. Рекомендованное значение — |
|
|
Идентификатор инсталляции, в которую интегрируются компонент. Пример значения — |
Параметры интеграции с SRLS#
Средствами SRLS реализуется ограничение прикладной нагрузки со стороны потребителя на сервисы LNSE, исполняемые в рамках SSM.
Для LNSE в поставляемой конфигурации рекомендован централизованный вариант установки SRLS, который предполагает размещение клиентских приложений SRLS в отдельном namespace среды контейнеризации. При централизованном варианте установки SRLS прикладная нагрузка на интегрированные с ним сервисы ограничивается на основании квот, установленных в объектах типа GlobalRateLimit. Объекты GlobalRateLimit размешаются в namespace компонентов, квоты для которых они содержат. Объекты GlobalRateLimit разворачиваются при исполнении playbook OPENSHIFT_DEPLOY. Описание формирования объектов GlobalRateLimit приведено в Руководстве по установке компонента SRLS.
Примечание
Квоты на запросы к сервисам LNSE не задаются в файлах его дистрибутивного комплекта.
Настройка квот компонента LNSE в поставляемой конфигурации осуществляется путем установки их значений в файле globalRateLimitCommon.yaml репозитория Common.
Для обеспечения интеграции с SRLS в файл pipeline.yml дистрибутива конфигурации развертывания LNSE добавлено расширение quotingByRateLimiter.
Расширение добавляет в среду функционирования LNSE конфигурационный файл dictionary.extensions.quotingByRateLimiter.all.conf. Файл разворачивается при исполнении playbook OPENSHIFT_DEPLOY.
Также расширение добавляет envoy-фильтры, которые разворачиваются при исполнении playbook OPENSHIFT_INGRESS_EGRESS_DEPLOY:
extensions.rate-limiter-cluster-envoyFilter.yaml;
extensions.rate-limiter-header-envoyFilter.yaml.
Параметры интеграции с SRLS:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Адрес для подключения к SRLS. Рекомендованное значение — |
|
Порт для подключения к SRLS. Рекомендованное значение — |
|
|
Namespace централизованного SRLS, развернутого в кластере среды контейнеризации. Рекомендованное значение — |
|
|
Тайм-аут для соединения с SRLS по GRPC. Рекомендованное значение — |
|
|
Наименование заголовка идентифицирующего потребителя сервиса. Рекомендованное значение — |
|
|
Использование версии 3.11 SRLS. Рекомендованное значение — |
|
|
Наименование кластера SRLS. Рекомендованное значение — |
|
|
Тип кластера SRLS. Рекомендованное значение — |
|
|
Политика балансировки кластера SRLS. Рекомендованное значение — |
|
|
Метка принадлежности артефакта к SRLS. Рекомендованное значение — |
|
|
Лимит для платформенных тенантов. Рекомендованное значение — |
|
|
Путь к доверенному (корневому) сертификату. Рекомендованное значение — |
|
|
Путь к клиентскому сертификату. Рекомендованное значение — |
|
|
Путь к приватному ключу сертификата. Рекомендованное значение — |
При определении параметров интеграции с SRLS используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Адрес для подключения к SRLS. Значение указывается в |
|
|
Порт для подключения к SRLS. Рекомендованное значение — |
|
|
Namespace централизованного SRLS, развернутого в кластере среды контейнеризации. Рекомендованное значение — |
|
|
Тайм-аут для соединения с SRLS по GRPC. Пример значения — |
|
|
Наименование заголовка идентифицирующий потребителя сервиса. Рекомендованное значение — |
|
|
Использование версии 3.11 SRLS. Рекомендованное значение — false. Значение указывается в |
|
|
Метка принадлежности артефакта к SRLS. Рекомендованное значение — |
|
|
Лимит для платформенных тенантов. Рекомендованное значение — |
Параметры интеграции с KFKA#
Функциональностью LNSE предусмотрен информационный обмен между его прикладными приложениями:
внутриблочный (тип
INNER_UNIT):сброс внутриблочного кеша (topic
lnse-reset-dictionary-cache.001.${INNER_ZONE},lnse-reset-permission-cache.001.${INNER_ZONE});
межблочный (тип
INTER_UNIT):синхронизация внутренних справочников между блоками (topic
lnse-notify-dictionary.001);получение статуса синхронизации справочника в блоках (topic
lnse-replication-dictionary.001,lnse-replication-reply-dictionary.001);получение версии метамодели в смежных блоках (topic
lnse-replication-dictionary.001,lnse-replication-reply-dictionary.001).
Информационный обмен организуется с помощью брокера сообщений Apache Kafka/KFKA.
Настройки интеграции с Kafka/KFKA задаются в файле \conf\config\parameters\dictionary.all.conf дистрибутива конфигурации развертывания LNSE.
Создаваемые объекты Kafka описываются в файлах \conf\config\parameters\kafka_fp.dictionary.conf и \conf\config\definitions\kafka_fp.dictionary.json дистрибутивного комплекта LNSE.
Параметры настройки:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Подключение к topic Kafka для отправки внутриблочных уведомлений о необходимости сброса кеша. Рекомендованное значение — |
|
|
Подключение к topic Kafka для отправки и получения запросов при синхронном межблочном обмене. Рекомендованное значение — |
|
|
Подключение к topic Kafka для отправки и получения запросов при синхронном межблочном обмене. Рекомендованное значение — |
|
|
Подключение к topic Kafka для отправки нотификаций при межблочном обмене. Рекомендованное значение — |
|
|
Подключение к topic Kafka для отправки нотификаций при межблочном обмене. Рекомендованное значение — |
|
|
Тип транспорта для межблочного и внутриблочного обмена: |
|
Включает поддержку ротации секрета подключения к Kafka. Рекомендованное значение — |
|
|
Список брокеров для инициализации подключения к Kafka для внутриблочного обмена, параметр общий для Producer и Consumer. Рекомендованное значение — |
|
|
Список брокеров для инициализации подключения к Kafka для межблочного обмена, параметр общий для Producer и Consumer. Рекомендованное значение — |
|
|
Протокол безопасности, по которому происходит подключение к Kafka: |
|
|
Алгоритм идентификации точки подключения: |
|
|
Путь до JKS-хранилища сертификатов типа keystore с клиентским сертификатом LNSE и закрытым ключом в среде контейнеризации. Рекомендованное значение — |
|
|
Путь до JKS-хранилища сертификатов типа truststore с корневым сертификатом в среде контейнеризации. Рекомендованное значение — |
|
|
Topic Kafka для отправки внутриблочных уведомлений о необходимости сброса кеша данных справочника. Рекомендованное значение — |
|
|
Topic Kafka для отправки внутриблочных уведомлений о необходимости сброса кеша разрешений. Рекомендованное значение — |
|
|
Topic Kafka для отправки запросов при синхронном межблочном обмене. Рекомендованное значение — |
|
|
Topic Kafka для получения ответов при синхронном межблочном обмене. Рекомендованное значение — |
|
|
Topic Kafka для отправки нотификаций при межблочном обмене. Рекомендованное значение — |
|
|
Автоматическая фиксация смещения Kafka Consumer. Рекомендованное значение — |
|
|
Политика сброса смещения Kafka Consumer (latest/earliest). Рекомендованное значение — |
|
|
Список брокеров для инициализации подключения к Kafka для внутриблочного обмена, параметр общий для Producer и Consumer. |
|
|
Протокол безопасности, по которому происходит подключение к Kafka: |
|
|
Алгоритм идентификации точки подключения, используемый клиентом: |
|
|
Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной |
|
|
Максимальное количество данных, возвращаемое сервером. Рекомендованное значение — |
|
|
Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — |
|
|
Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — |
|
|
Максимально допустимый интервал между poll-запросами. Рекомендованное значение — |
|
|
Heartbeat-сигналы в рамках сессии длиной |
|
|
Максимальное количество данных, получаемых с партиции. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа. Рекомендованное значение — |
|
|
Время ожидания результата записи в Kafka. Рекомендованное значение — |
|
|
Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — |
|
|
Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — |
|
|
Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения, байты. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных, байты. Рекомендованное значение — |
|
|
Максимальный размер запроса (сообщения). Рекомендованное значение — |
|
|
Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений, мс. Рекомендованное значение — |
|
|
Тайм-аут закрытия неиспользуемых подключений, мс. Рекомендованное значение — |
|
|
Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — |
|
|
Сжатие данных. Рекомендованное значение — |
|
|
|
Флаг управления созданием topic pubsub. Допустимые значения: |
|
Число партиций для pubsub topic. Рекомендованное значение — |
|
|
Фактор репликации для pubsub topic. Рекомендованное значение — |
|
|
Время хранения сообщения в топике в миллисекундах для pubsub topic. Рекомендованное значение — |
|
|
Максимальный размер партиции, до которого он может вырасти до того момента, как будут отброшены старые сегменты журнала для pubsub topic. Рекомендованное значение — |
|
|
Максимальный размер сообщения в байтах для pubsub topic. Рекомендованное значение — |
|
|
Topic для отправки внутриблочных уведомлений о необходимости сброса кеша данных справочника. Рекомендованное значение — |
|
|
Topic для отправки внутриблочных уведомлений о необходимости сброса кеша разрешений. Рекомендованное значение — |
|
|
Topic для отправки запросов при синхронном межблочном обмене. Рекомендованное значение — |
|
|
Topic для получения ответов при синхронном межблочном обмене. Рекомендованное значение — |
|
|
Topic для отправки нотификаций при межблочном обмене. Рекомендованное значение — |
При определении параметров используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Идентификатор локации, внутри которой осуществляется рассылка (блок, сегмент) |
|
|
Протоколы, доступные для подключения к Kafka. Рекомендованное значение — |
|
|
Алгоритм идентификации точки подключения, используемый клиентом. Рекомендуется не заполнять. Значение указывается в |
|
|
Время ожидания результата записи в Kafka. Рекомендованное значение — |
|
|
Максимальных размер пакета с сообщениями (в байтах). Рекомендованное значение — |
|
|
Фиксация времени, затрачиваемого на сбор пакета (в мс). Рекомендованное значение — |
|
|
Объем буфера, хранящего сообщения перед отправкой (в байтах), рекомендованное значение — |
|
|
Максимальное время ожидания ответа от сервера на запрос, рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения (в байтах), рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных (в байтах), рекомендованное значение — |
|
|
Максимальный размер запроса (сообщения), рекомендованное значение — |
|
|
Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений (в мс), рекомендованное значение — |
|
|
Тайм-аут закрытия неиспользуемых подключений (в мс), рекомендованное значение — |
|
|
Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — |
|
|
Сжатие данных. Рекомендованное значение — |
|
|
Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной |
|
|
Максимальное количество данных, возвращаемое сервером. Рекомендованное значение — |
|
|
Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — |
|
|
Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — |
|
|
Максимально допустимый интервал между poll-запросами. Рекомендованное значение — |
|
|
Heartbeat-сигналы в рамках сессии длиной session.timeout.ms. Рекомендованное значение — |
|
|
Максимальное количество данных, получаемых с партиции. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа. Рекомендованное значение — |
Параметры интеграции с CFGA#
Для интеграции с CFGA используется встраиваемый клиентский модуль CFGM, который обеспечивает прикладным модулям LNSE получение их актуальных настроек.
Начальные настройки LNSE, в том числе встроенного в каждый прикладной модуль LNSE CFGM, задаются в файлах \conf\k8s\base\configmaps\data-dictionary-*\data-dictionary-*-config-cm.yaml дистрибутива конфигурации развертывания LNSE.
Файлы с целевыми настройками прикладных модулей LNSE размещаются в каталоге conf\data\sup2 дистрибутива конфигурации развертывания LNSE.
В общем случае целевые значения параметров совпадают с начальными.
Файлы из каталога conf\data\sup2 предназначены для импорта в компонент CFGA средствами CDJE. Импорт выполняется при запуске playbook IMPORT_SUP_PARAMS, входящего в состав сценария IMPORT_ALL_PARAMS.
Описание настроек LNSE приведено в Руководстве по системному администрированию в разделе «Настройки».
Файлы с настройками LNSE содержат параметр data, по которому config-agent компонента CFGA идентифицирует настройки:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Идентификатор экземпляра файла с настройками |
|
|
Идентификатор экземпляра файла с настройками |
|
|
Идентификатор экземпляра файла с настройками |
|
|
Определение способа обновления файлов с настройками в среде функционирования LNSE. Рекомендованное значение — |
|
Идентификатор набора значений параметров CFGA, зависимых от инсталляции. Рекомендованное значение — |
При определении параметра data используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Ключ конфигурации. Рекомендованное значение — |
|
||
|
Значение ключа конфигурации указывается в common.conf.yml.
Значение переменной application.deploymentUnit подставляется из переменной deploymentUnit, заданной в distrib.yaml дистрибутива конфигурации развертывания LNSE.
Правила монтирования системы хранения файлов с настройками к файловой системе прикладных контейнеров LNSE задаются в файлах \conf\k8s\base\data-dictionary-*\dc.yaml.
Способ обновления файлов с настройками в среде функционирования LNSE устанавливается в файле \conf\config\parameters\dictionary.all.conf.
Параметр lnse.external.parameter.type, рекомендованное значение — sup.
Параметры интеграции с STDE#
По запросу LNSE — STDE предоставляет информацию об узле, на котором развернут LNSE.
Для интеграции с STDE используется встроенный клиентский модуль STDE ufs-si-spring-boot-starter, который предоставляет JAVA-API для получения по запросу компонента его топологической информации.
Параметры интеграции с STDE устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
настройки, общие для всех прикладных приложений LNSE, задаются в файле
\conf\config\parameters\dictionary.all.conf;начальные настройки клиентского модуля STDE задаются в файлах
\conf\k8s\base\data-dictionary-*\configmaps\data-dictionary-*-config-cm.yaml;целевые настройки клиентского модуля STDE задаются в файлах
\conf\data\sup2\definitions\data-dictionary-*.json. В общем случае целевые значения настроек совпадают с начальными;значения переменных определяются в файлах
\conf\data\sup2\parameters\data-dictionary-*.conf.
Параметры интеграции с STDE
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Механизм получения сведений о физической топологии, используемый в инсталляции продукта, в окружении которого устанавливается LNSE. Рекомендованное значение — |
|
Механизм управления доступностью узлов компонентов, используемый в инсталляции продукта, в окружении которого устанавливается LNSE. Рекомендованное значение — |
|
|
Тип БД STDE. Рекомендованное значение — |
|
|
Список брокеров для инициализации подключения к Kafka для внутриблочного обмена, параметр общий для Producer и Consumer. Рекомендованное значение — |
|
|
Протокол безопасности, по которому происходит подключение к Kafka: |
|
|
Алгоритм идентификации точки подключения, используемый клиентом: |
|
|
Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной |
|
|
Максимальное количество данных, возвращаемое сервером. Рекомендованное значение — |
|
|
Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — |
|
|
Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — |
|
|
Максимально допустимый интервал между poll-запросами. Рекомендованное значение — |
|
|
Heartbeat-сигналы в рамках сессии длиной |
|
|
Максимальное количество данных, получаемых с партиции. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа. Рекомендованное значение — |
|
|
Время ожидания результата записи в Kafka. Рекомендованное значение — |
|
|
Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — |
|
|
Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — |
|
|
Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения, байты. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных, байты. Рекомендованное значение — |
|
|
Максимальный размер запроса (сообщения). Рекомендованное значение — |
|
|
Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений, мс. Рекомендованное значение — |
|
|
Тайм-аут закрытия неиспользуемых подключений, мс. Рекомендованное значение — |
|
|
Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — |
|
|
Сжатие данных. Рекомендованное значение — |
При определении параметров используются переменные, значения которых устанавливаются в файлах репозитория Common. Описание переменных приведено в разделе Интеграция с KFKA.
Описание настроек клиентского модуля STDE приведено в Руководстве администратора.
Примечание
Настройки подключения STDE к topic Kafka не входят в поставку LNSE. Добавление файлов настроек и манифестов, необходимых для подключения к topic Kafka обеспечивает расширение injectAuditKafka, описанное в файле pipeline.yml дистрибутива конфигурации развертывания LNSE.
Расширение injectEgressKafka добавляет файлы:
/conf/k8s/base/istio/config/egress/dictionary-platform-egress-kafka-se.yaml;/conf/k8s/base/istio/config/egress/dictionary-platform-audit-egress-kafka-vs.yaml;/conf/k8s/base/istio/config/egress/dictionary-platform-audit-egress-kafka-gw.yaml;/conf/k8s/base/istio/config/egress/dictionary-platform-audit-egress-kafka-dr.yaml.
Параметры интеграции с SMGX#
В состав дистрибутива конфигурации развертывания LNSE включены файлы, предназначенные для публикации в SMGX. SMGX агрегирует в себе АРМ интегрированных с ним компонентов. LNSE встраивается в SMGX в виде операции или приложения.
Операция описывается JSON-файле buttons.json, включенный в дистрибутив конфигурации развертывания LNSE. Файл размещается в каталоге \conf\data\sm\operation.
В файле с описанием операции LNSE заданы параметры:
Параметр |
Описание |
|---|---|
|
Уникальный идентификатор, не заполняется |
|
Привилегия доступа к операции, рекомендованное значение — UFS_DICTIONARY.STMAN.DICTIONARY_MANAGE |
|
Канал, в рамках которого доступна операция, рекомендованное значение — SUPPORT |
|
Уникальное наименование операции, рекомендованное значение — UFS_DICTIONARY |
|
Заголовок операции, отображаться в каталоге операций и на плитке, если его длина не превышает 48 символов, рекомендованное значение — Справочники |
|
Короткий заголовок операции, отображаться в каталоге операций и на плитке, если длина полного заголовка превышает 48 символов, рекомендованное значение — Справочники |
|
Наименование компонента для передачи во внешний компонент аудита событий безопасности, рекомендованное значение — Справочники |
|
Цвет фона плитки, рекомендованное значение — #4b1ea6 |
|
Ключевые слова для поиска, должны разделяться символом |
|
Синонимы ключевых слов, должны разделяться символом |
|
Вес операции, влияет на расположение плиток, рекомендованное значение — 0 |
|
Контекст операции |
|
Контекст операции |
|
Ссылка на операцию, рекомендованное значение — |
|
Варианты открытия приложений, возможные значения: |
|
Наименование параметра, содержащего URL операции |
|
Флаг необходимости вызова процесса идентификации для данной операции, рекомендованное значение — false |
|
Доступна ли операция в режиме StandIn, рекомендованное значение — true |
|
Флаг, показывающий, что операция недоступна в зоне промышленной эксплуатации и доступна только в зоне опытной эксплуатации, рекомендованное значение — false |
Приложение описывается в JSON-файле UFS_DICTIONARY_amw.json , который включен в дистрибутив конфигурации развертывания LNSE.
Файл размещается в каталоге \conf\data\smgx_amw\templates\UFS_DICTIONARY_amw.json.
В файле с описанием приложения LNSE задаются параметры:
Параметр |
Описание |
|---|---|
|
Приложение для загрузки интегрируемого приложения, рекомендованное значение — SMGX_AMW |
|
Уникальное наименование интегрируемого приложения, рекомендованное значение — UFS_DICTIONARY |
|
Описание интегрируемого приложения, рекомендованное значение — Сервис предоставления справочных данных |
|
Краткое описание интегрируемого приложения, выводится на всплывающих подсказках, рекомендованное значение — Справочники |
|
Привилегия для получения доступа к интегрируемому приложению, рекомендованное значение — UFS_DICTIONARY.STMAN.DICTIONARY_MANAGE |
|
Значок для отображения на плашке интегрируемого приложения, рекомендованное значение — GLOBE |
|
Режим отклытия приложения, допустимые значения: BUNDLE, EMBEDDED, рекомендованное значение — EXTERNAL |
|
Условная версия интегрируемого приложения в системе SMGX, рекомендованное значение — 01.00 |
|
Описание версии интегрируемого приложения в системе SMGX, рекомендованное значение — Сервис предоставления справочных данных |
|
Ссылка на |
|
UI Framework, на котором написано интегрируемое приложение, допустимые значения: REACT, VUE, SVELTE, ANGULAR, рекомендованное значение — REACT |
|
Флаг активации приложения, рекомендованное значение — true |
При установке LNSE средствами CDJE файл buttons.json импортируется в SMGX при запуске playbook IMPORT_SM_PARAMS.
Файл UFS_DICTIONARY_amw.json импортируется в SMGX при запуске playbook IMPORT_SMGX_AMW_PARAMS.
Для получения доступа к созданной в SMGX операции или приложению LNSE учетной записи пользователя должны быть сопоставлены привилегии, заданные в параметре permission JSON-файла с описанием операции, и стандартные привилегии SMGX:
ManagePermissions.ManageLayouts.MainSupportLayout— доступ к основному системному макету для платформенных компонентов SUPPORT, который загружается при входе в SMGX;ManagePermissions.ManageLayouts.ComponentSupportLayout— доступ к макету SUPPORT;ManagePermissions.ManageApplication.DashboardApp— доступ к значку, предназначенному для перехода на стартовую страницу с виджетами;ManagePermissions.ManageApplication.OperationCatalogApp— доступ к значку, предназначенному для перехода на страницу каталога операций;ManagePermissions.ManageApplication.FeedBackApp— доступ к значку, предназначенному для перехода на страницу обратной связи.
Подсказка
Перечисленные привилегии включены в рекомендованную модель авторизации LNSE.
Параметры интеграции с AUTH#
Параметры интеграции с AUTH устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
настройки интеграции c AUTH задаются в файлах
\conf\config\parameters\dictionary.all.conf,\conf\config\parameters\dictionary.istio.all.conf;начальные настройки клиентского модуля AUTH задаются в файле
\conf\k8s\base\configmaps\data-dictionary-manage-config-cm.yaml;целевые настройки клиентского модуля AUTH задаются в файле
\conf\data\sup2\definitions\data-dictionary-manage.json. В общем случае целевые значения настроек совпадают с начальными.
Параметры интеграции с AUTH:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Профиль, используемый при аутентификации пользователей. Рекомендованное значение — |
|
Путь к открытому ключу провайдера аутентификации. Рекомендованное значение — |
|
|
Включение/отключение валидации JWT-токена в фильтре аутентификации. Рекомендованное значение — |
|
|
URL для logout при работе с IAM Proxy. Рекомендованное значение — |
|
|
|
Хост провайдера аутентификации. Рекомендованное значение — |
|
Порт провайдера аутентификации. Рекомендованное значение — |
|
|
|
Название cookie токена аутентификации. Рекомендованное значение — |
|
Размер пула потоков для обновления токена маршрутизации. Рекомендованное значение — |
|
|
Ожидаемое время выполнения задачи по обновлению токена маршрутизации. Рекомендованное значение — |
|
|
Список разрешенных значений для aud в JWT-токене |
|
|
Название заголовка HTTP-запроса с идентификатором (логином) пользователя от СУДИР. Рекомендованное значение — |
|
|
Название мета-атрибута сессии с идентификатором (логином) пользователя. Рекомендованное значение — |
|
|
Признак проверки идентификатора сотрудника. Рекомендованное значение — |
|
|
Признак разрешения работы с компонентом для неклиентов. Рекомендованное значение — |
|
|
Название мета-атрибута сессии с идентификатором типа клиента для неклиентов. Рекомендованное значение — |
|
|
Значение типа клиента для неклиентов. Рекомендованное значение — |
|
|
Конфигурации тайм-аута на соединение, мс. Рекомендованное значение — |
|
|
Максимальное число соединений в пуле. Рекомендованное значение — |
|
|
Тайм-аут, мс. Рекомендованное значение — |
Параметры интеграции с AUTZ#
Для интеграции с AUTZ используется встроенный клиентский модуль AUTZ — ufs-security-spring-boot-starter. Клиентский модуль AUTZ является фасадом, который вычисляет привилегии пользователя в зависимости от его сессионных атрибутов и прикладных ролей, полученных от компонента, реализующего функциональность идентификации и аутентификации. Клиентский модуль AUTZ для обращений к компоненту AUTZ использует распределенную сессию SUSD.
Параметры интеграции с AUTZ устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
настройки интеграции c AUTZ задаются в файле
\conf\config\parameters\dictionary.all.conf;начальные настройки клиентского модуля AUTZ задаются в файле
\conf\k8s\base\configmaps\data-dictionary-manage-config-cm.yaml;целевые настройки клиентского модуля AUTZ задаются в файле
\conf\data\sup2\definitions\data-dictionary-manage.json. В общем случае целевые значения настроек совпадают с начальными.
Параметры интеграции с AUTZ:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Условное обозначение библиотеки, используемой для обмена с провайдером аутентификации. Рекомендованное значение — |
|
Включение режима мультитенантности при получении ролей и привилегий пользователя. Рекомендованное значение — |
|
|
Включение получения тенантов, доступных пользователю, из JWT-токена. Рекомендованное значение — |
|
|
|
Путь до сервиса авторизации AUTZ. Рекомендованное значение — |
При определении параметров интеграции с AUTZ используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Путь до сервиса авторизации AUTZ в среде контейнеризации. Значение указывается в |
Модель авторизации АРМ Администратора LNSE содержится в файле \conf\data\security\security-data.xml дистрибутива конфигурации развертывания LNSE.
В файл \conf\data\security\all-privileges.xml дистрибутивного комплекта LNSE включены привилегии доступа к тестовым справочникам.
Файлы из каталога \conf\data\security\ предназначены для импорта в AUTZ средствами CDJE. Импорт выполняется при запуске playbook IMPORT_SECURITY_PARAMS, входящего в состав playbook IMPORT_ALL_PARAMS.
Параметры интеграции с SUSD#
Для интеграции с SUSD используется встроенный клиентский модуль SUSL — sds-spring-boot-starter, который обеспечивает доступ и управление сессионными данными пользователей АРМ Администратора LNSE.
Параметры интеграции с SUSD и SUSL устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания LNSE:
используемая библиотека и URL API SUSD определяется в файле
\conf\config\parameters\dictionary.all.conf;начальные настройки SUSL задаются в файлах
\conf\k8s\base\configmaps\data-dictionary-manage-config-cm.yaml;целевые настройки SUSL задаются в файле
\conf\data\sup2\definitions\data-dictionary-manage.json. В общем случае целевые значения настроек совпадают с начальными.
Параметры интеграции с SUSD:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Условное обозначение библиотеки и режима ее функционирования, используемой для управления сессионными данными пользователей АРМ Администратора LNSE. Рекомендованное значение — |
|
URL API SUSD для Kubernetes/OpenShift. Рекомендованное значение — |
При определении параметров используются переменные, значения которых устанавливаются в файлах репозитория Common:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Путь до библиотеки |
Описание настроек функционирования SUSL приведено в Руководстве администратора.
Параметры интеграции с компонентом Журналирования#
Интеграция с LOGM#
LOGM предназначен для обогащения, фильтрации и передачи событий журналирования в систему сбора и хранения таких событий. Также LOGM предоставляет возможность запроса сохранения файла JFR на файловую систему с последующей передачей на удаленный сервис для проведения диагностики и разбора.
События журналирования могут публиковаться в несколько каналов:
локальный — сохранение в локальный лог-файл;
удаленный — отправка в удаленный компонент журналирования, по умолчанию не используется.
LOGM подключается в JAVA-приложение LNSE как maven-зависимость. Детальное описание процесса подключения LOGM приведено в Руководстве прикладного разработчика LOGM в разделе «Подключение и конфигурирование».
Параметры интеграции с LOGM:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Библиотека для локального логирования прикладных приложений LNSE. Рекомендованное значение — |
|
|
Библиотека для локального логирования работы прикладных приложений LNSE. Рекомендованное значение — |
Функциональностью LOGM предусматривается несколько взаимоисключающих режимов работы:
FRONTEND — режим подразумевает использование платформенных FIlters и Appenders, обеспечивающих специализированную функциональность в части управления фильтрацией и форматом сообщения. В этом режиме управление LOGM осуществляется получением конфигурации посредством REST-API. Сообщения с записями журналирования отправляются в topic Kafka или сохраняются в локальный лог-файл;
FRONTEND_LOCAL — отличается от режима FRONTEND тем, что использует локальный конфигурационный провайдер. Все фильтры сохраняются, как и в режиме FRONTEND. В этом режиме управление LOGM осуществляется при помощи файла конфигурации
logger.properties;CUSTOM — в данном режиме конфигурация осуществляется штатными средствами Logback. Режим использует методы Logback напрямую, запись событий журналирования осуществляется в зависимости от:
собранного env.properties, который содержит информацию для идентификации приложения;
файла конфигурации logback.xml, путь к которому передается в качестве параметра при запуске сервиса.
Примечание
В LNSE c конфигурацией развертывания в окружении продукта #FS LOGM сконфигурирован для работы в режиме FRONTEND. Режим устанавливается в файле logger.ufs.yml дистрибутива бинарных артефактов LNSE
Данные, идентифицирующие приложения LNSE, содержатся в файлах env.properties дистрибутива бинарных артефактов LNSE:
Содержимое env.properties
subsystem=@environment.subsystem@ -- код компонента, пример значения DICTIONARY или LNSE
channel=@environment.channel@ -- канал, пример значения — SUPPORT
release=@release@ -- релиз, пример значения — R90
deploymentUnit=@environment.deploymentUnit@ -- имя приложения, пример значения — data-dictionary-manage
version=@project.version@ -- версия приложения без номера сборки
distribVersion=@distrib.version@ -- версия приложения с номером сборки
Настройки функционирования LOGM задаются в файлах дистрибутива конфигурации развертывания LNSE:
/conf/k8s/base/data-dictionary-*/dc.yaml— в файле задана переменная окруженияufs.tenant.code, которую использует LOGM;/conf/data/logger/dictionary_logger.json— содержит данные для регистрации LNSE в консоли администратора компонента журналирования. Файл импортируется в компонент журналирования средствами CDJE при установке LNSE;/conf/data/logger/dictionary_logger_filters.properties— содержит исходные настройки функционирования LOGM. Файл импортируется в компонент журналирования средствами CDJE при установке LNSE;/conf/config/parameters/dictionary.all.conf— содержит:путь к API компонента журналирования — используется для получения настроек LOGM;
настройки подключения LOGM к topic Kafka для передачи событий журналирования — по умолчанию не используются.
Настройки функционирования LOGM:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Код проекта (тенанта). Рекомендованное значение — |
|
|
Код компонента. Пример значения — DICTIONARY или LNSE |
|
Описание компонента. Пример значения — Справочники |
|
|
|
Включение/отключение записи лог-сообщений в локальное хранилище в формате JSON. Рекомендованное значение — |
|
Имя и расположение файлов c настройками локального логирования в среде контейнеризации. Рекомендованное значение — |
|
|
Код целевого проекта (тенанта). Рекомендованное значение — |
|
|
Включение/отключение отправки лог-сообщений в удаленный компонент журналирования. Рекомендованное значение — |
|
|
Протоколы SSL, доступные для подключения к topic Kafka, использующихся для обмена с компонентом журналирования. Рекомендованное значение — |
|
|
Адреса серверов Kafka, использующихся для обмена с компонентом журналирования, по умолчанию не заполняется. Пример значения — |
|
|
Topic Kafka, использующийся для обмена с компонентом журналирования. Рекомендованное значение — |
|
|
Параметр включает SSL при подключении к topic Kafka, использующихся для обмена с компонентом журналирования. Рекомендованное значение — PLAINTEXT |
|
|
Путь к API для получения настроек LOGM. Рекомендованное значение — |
|
|
Включение/отключение обработки запросов на формирование файлов JFR. Рекомендованное значение — |
|
|
Путь для отправки файлов JFR. Рекомендованное значение — |
|
|
Путь к лог-файлу Ulogger. Рекомендованное значение — |
|
|
Название лог-файла. Рекомендованное значение — |
Пример содержимого файла dictionary_logger_filters.properties
[DICTIONARY]
logger.local.enabled=true
logger.local.stdout.appender.enabled=false
logger.local.level=ERROR
logger.local.fileMaxSize=50
logger.local.fileMaxHistory=60
logger.local.totalSizeCap=20
logger.remote.level=ERROR
logger.config.timeout=30
logger.name.level=\
ru.sbrf.ufs.integration.module.transport.jms:OFF,\
ru.sbrf.ufs.monitoring.session.SessionImpl:INFO,\
org.apache.kafka:INFO,\
org.springframework.kafka:INFO,\
ru.sbrf.ufs.healthcheck.environment.ConfigServiceHelper:ERROR,\
ru.sbrf.ufs.healthcheck.service.LoggerMetricService:ERROR
Конфигурационный файл dictionary_logger_filters.properties содержит не все настройки, регулирующие функционирование LOGM, так как допускается не указывать параметры, для которых используются значения, установленные по умолчанию.
В файле dictionary_logger_filters.properties может отсутствовать параметр logger.local.filePath, в котором задается путь к локальному лог-файлу.
Если параметр отсутствует, то лог-файлы LNSE по умолчанию размещаются в каталоге logs. Также часть настроек может быть задана только средствами АРМ используемого компонента журналирования.
Подсказка
С полным перечнем параметров можно ознакомиться в документации компонента журналирования.
Файлы dictionary_logger.json и dictionary_logger_filters.properties из дистрибутива LNSE предназначены для импорта непосредственно в компонент журналирования.
При установке LNSE средствами CDJE импорт конфигурационных файлов в компонент журналирования выполняется при запуске playbook IMPORT_LOGGER_PARAMS.
При определении настроек LOGM используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Код проекта (тенанта), пример значения — DICTPF. Значение указывается в |
|
|
Включение/отключение записи в локальный лог-файл в формате JSON. Рекомендованное значение — true. Значение указывается в |
|
|
Включение/отключение отправки лог-сообщений в удаленный компонент журналирования. Рекомендованное значение — false. Значение указывается в |
|
|
Адреса серверов Kafka, использующихся для обмена с удаленным компонентом журналирования. Значение указывается в |
|
|
Topic Kafka, использующихся для обмена с удаленным компонентом журналирования. Пример значения — |
|
|
Протоколы, доступные для подключения к topic Kafka удаленного компонента журналирования. Рекомендованное значение — TLSv1.2. Значение указывается в файлах |
|
|
Путь к REST-API для получения настроек LOGM. Значение указывается в |
|
|
Включение/отключение обработки запросов на формирование файлов JFR. Значение указывается в |
|
|
Путь для отправки файлов JFR. Значение указывается в |
Интеграция с LOGA/LOGE#
В части сбора и хранения событий журналирования LNSE может быть интегрирован с LOGА.
Примечание
Также в части сбора и хранения событий журналирования LNSE может быть интегрирован с LOGE. Интеграция с LOGE опциональна и используется на усмотрение пользователя LNSE.
Для интеграции LNSE с компонентом журналирования используются клиентский модуль LOGM и sidecar-приложение fluent-bit-sidecar.
Через LOGM производится запись событий прикладными приложениями LNSE. В зависимости от своих настроек LOGM отфильтровывает или публикует события, фиксируемые прикладными приложениями LNSE, в локальные лог-файлы или удаленный компонент журналирования, используя topic Kafka. Описание настроек LOGM приведено в разделе Интеграция с LOGM.
Fluent-bit-sidecar вычитывает события из лог-файлов, формируемых LOGM и sidecar-приложениями, шлюзами ingress gateway и egress gateway, и передает их в один или несколько удаленных компонентов журналирования для дальнейшей обработки, используя topic Kafka.
Примечание
Fluent-bit-sidecar не входит в поставку LNSE. Добавление файлов настроек и манифестов, необходимых для развертывания в namespace LNSE fluent-bit-sidecar, обеспечивают расширения injectUloggerSidecar и injectEgressKafka, описанные в файле pipeline.yml дистрибутива конфигурации развертывания LNSE.
Расширение injectUloggerSidecar добавляет файлы:
/config/parameters/dictionary.ufs-extensions.ulogger-sidecar-config.all.conf;/conf/k8s/base/configmaps/ufs-extensions.ulogger-config.yaml;/conf/k8s/base/configmaps/ufs-extensions.ulogger-controller-config.yaml;/conf/k8s/base/istio/config/egress/ufs-extensions.ulogger.ott-sidecar-logback-xml.yaml;/conf/k8s/base/istio/config/egress/ufs-extensions.ulogger-egress-access-log-envoyFilter.yaml;/conf/k8s/base/istio/config/egress/ufs-extensions.ulogger-ingress-access-log-envoyFilter.yaml;/conf/k8s/base/istio/config/egress/ufs-extensions.ulogger-istio-config.yaml;/conf/k8s/base/istio/config/egress/ufs-extensions.ulogger-istio-controller-config.yaml.
Расширение injectEgressKafka добавляет файлы:
/conf/k8s/base/istio/config/egress/dictionary-loga-egress-kafka-se.yaml;/conf/k8s/base/istio/config/egress/dictionary-loga-egress-kafka-vs.yaml;/conf/k8s/base/istio/config/egress/dictionary-loga-egress-kafka-gw.yaml;/conf/k8s/base/istio/config/egress/dictionary-loga-egress-kafka-dr.yaml;/conf/k8s/base/istio/config/egress/dictionary-loge-egress-kafka-se.yaml;/conf/k8s/base/istio/config/egress/dictionary-loge-egress-kafka-vs.yaml;/conf/k8s/base/istio/config/egress/dictionary-loge-egress-kafka-gw.yaml;/conf/k8s/base/istio/config/egress/dictionary-loge-egress-kafka-dr.yaml;/conf/k8s/base/istio/config/egress/dictionary-logsys-egress-kafka-se.yaml;/conf/k8s/base/istio/config/egress/dictionary-logsys-egress-kafka-vs.yaml;/conf/k8s/base/istio/config/egress/dictionary-logsys-egress-kafka-gw.yaml;/conf/k8s/base/istio/config/egress/dictionary-logsys-egress-kafka-dr.yaml.
Используемый для отправки лог-файлов кластер Kafka определяется по значению параметра global.platform.istio.logger.backend.
Значение указывается в _global.kafka.conf репозитория Common.
Для передачи полного пути элементов топологии добавьте секцию FILTER в конфигурационный файл fluent-bit.conf и пропишите правило обогащения данных:
Пример fluent-bit.conf
[FILTER]
Name modify
Match *
Add nodePath {{NODE_PATH}}
Примечание
Передача полного пути элементов топологии осуществляется при передаче атрибута nodePath. Атрибут nodePath будет доступен для отображения и фильтрации на dashboards Журналирования АС «Тенгри» для пользователей.
Параметры интеграции с компонентом мониторинга#
Интеграция с MONA#
В части сбора и хранения данных о производительности, доступности и работоспособности LNSE может быть интегрирован с MONA. MONA обеспечивает сбор прикладных, инфраструктурных метрик и метрик биллинга по стандарту мониторинга Prometheus. В процессе сбора MONA обогащает метрики дополнительными служебными данными и сохраняет их в свое хранилище.
Для интеграции с MONA используется встроенный в LNSE MONM и клиентские приложения MONA.
Для обеспечения интеграции с MONA — MONM агрегирует зафиксированные компонентом LNSE события в метрики мониторинга в формате, используемом в MONA, и реализует программный интерфейс для сбора метрик. В процессе передачи метрик биллинга компонент не участвует.
Передача метрик биллинга реализуется средствами LNSE путем выставления HTTP-endpoint, которые предоставляют метрики биллинга в формате Prometheus, что позволяет настроить их сбор средствами клиентских приложений MONA.
Параметры интеграции с MONA устанавливаются путем определения их значений в файле
\conf\config\parameters\dictionary.all.confдистрибутива конфигурации развертывания LNSE.Адреса программных интерфейсов для сбора метрик задаются в файлах
\bh\*.jar\BOOT-INF\classes\application.ymlдистрибутива бинарных артефактов LNSE и в файлах\conf\k8s\base\data-dictionary-*\svc.yamlдистрибутива конфигурации развертывания LNSE.Порты для доступа к интерфейсам для сбора метрик устанавливаются в файлах
\conf\k8s\base\data-dictionary-*\svc.yaml,\conf\k8s\base\data-dictionary-*\dc.yamlдистрибутива конфигурации развертывания LNSE.
Сбор метрик и публикацию их в хранилище обеспечивают клиентские приложения MONA, которые рекомендуется размещать в namespace каждого из интегрированных с MONA компонентов:
Unimon-agent — для сбора метрик;
Unimon-sender — для отправки метрик в хранилище.
При отправке метрик в хранилище клиентские приложения MONA используют topic Kafka. Рекомендованная стандартная частота сбора метрик клиентским приложением мониторинга — 15 секунд (задается в клиентском приложении MONA).
Для сбора Unimon-agent событий и метрик с прикладных приложений компонента LNSE — в файлах \conf\openshift\data-dictionary-*\svc.yaml добавлены аннотации prometheus.io.
Примечание
Перед установкой клиентских приложений MONA рекомендуется убедиться в наличии в пространстве имен компонента LNSE достаточного количества аппаратных ресурсов. Требования к выделяемым аппаратным ресурсам компонентов, устанавливаемых отдельно, приведены в документе «Руководство по установке» этих компонентов.
Задекларируйте атрибут nodePath как метку в манифестах DC_mona среды контейнеризации. В шаблоне манифеста в качестве значения используйте глобальную переменную {{NODE_PATH}}.
Пример файла DC_mona
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
labels:
app: <deployment_unit>.${distrib.release.version}
nodePath: {{NODE_PATH}}
name: <deployment_unit>-<version>
Интеграция с MONM#
MONM предназначен для передачи событий и метрик мониторинга в систему их сбора и хранения.
MONM подключается в java-приложение LNSE как maven-зависимость monitoring-spring-boot-starter.
Детальное описание процесса подключения MONM приведено в Руководстве прикладного разработчика MONM, раздел «Подключение и конфигурирование».
Функциональностью MONM предусматривается несколько взаимоисключающих режимов работы:
публикация событий и метрик (кроме инфраструктурных) в topic Kafka для их сбора внешним компонентом мониторинга (эксплуатируется в #FS);
отправка событий и метрик во внешний компонент мониторинга;
публикация HTTP-endpoint, которые предоставляют события и метрики мониторинга для их вычитки клиентским приложением мониторинга или внешним компонентом мониторинга (эксплуатируется в #FS).
Настройки функционирования клиентский модуль MONM может получать по HTTP-запросу.
Интеграция с MONE#
Также в части сбора и хранения данных о производительности, доступности и работоспособности LNSE может быть интегрирован с MONE. MONE предназначен для сбора прикладных и инфраструктурных событий и метрик мониторинга фронтальных сервисов.
Интеграция с MONE опциональна и используется на усмотрение пользователя LNSE.
Для интеграции с MONE также используется встроенный в LNSE MONM, который публикует события и метрики мониторинга, используя topic Kafka.
Параметры интеграции с MONE устанавливаются путем определения их значений в файле \conf\config\parameters\dictionary.all.conf дистрибутива конфигурации развертывания LNSE.
Параметры для интеграции с компонентом мониторинга#
При фиксации метрик биллинга на стороне LNSE определяются значения меток для метрик в соответствии со значениями параметров:
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Условное обозначение конфигурации развертывания. Рекомендованное значение — |
|
Условное обозначение компонента. Рекомендованное значение — |
|
|
Способ определения проекта (тенанта), обращающегося к LNSE компонента: |
Параметры интеграции с MONA
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Включение/отключение отправки метрик в буфер для предоставления их для вычитки клиентскими приложениями MONA либо для дальнейшей их публикации в Prometheus средствами компонента. Рекомендованное значение — |
|
Включение/отключение отправки событий мониторинга в micrometer (при значении |
|
|
Включение/отключение обнуления значений метрик после их сбора клиентскими приложениями MONA. Рекомендованное значение — |
|
|
Включение/отключение публикации метрик в Prometheus методом PUSH. Рекомендованное значение — |
|
|
Включает поддержку ротации секрета подключения к Kafka мониторинга. Рекомендованное значение — |
Параметры интеграции с MONE
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Включение/отключение отправки метрик в topic Kafka MONE. Рекомендованное значение — |
|
Адреса серверов Kafka. Рекомендованное значение — |
|
|
Имя topic Kafka для отправки метрик. Рекомендованное значение — |
|
|
Имя topic Kafka для общих настроек. Рекомендованное значение — |
|
|
Имя topic Kafka для отправки метаданных. Рекомендованное значение — |
|
|
Имя topic Kafka для настроек фильтров. Рекомендованное значение — |
|
|
Протоколы, доступные для подключения к Kafka. Рекомендованное значение — |
|
|
Протокол, по которому происходит подключение к Kafka. Рекомендованное значение — |
|
|
Алгоритм идентификации точки подключения, используемый клиентом. Рекомендованное значение — |
|
|
Время ожидания результата записи в Kafka, рекомендованное значение — |
|
|
Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — |
|
|
Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — |
|
|
Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения, байты. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных, байты. Рекомендованное значение — |
|
|
Максимальный размер запроса (сообщения). Рекомендованное значение — |
|
|
Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений, мс. Рекомендованное значение — |
|
|
Тайм-аут закрытия неиспользуемых подключений, мс. Рекомендованное значение — |
|
|
Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — |
|
|
Сжатие данных. Рекомендованное значение — |
|
|
Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной |
|
|
Максимальное количество данных, возвращаемое сервером, рекомендованное значение — |
|
|
Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — |
|
|
Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — |
|
|
Максимально допустимый интервал между poll-запросами. Рекомендованное значение — |
|
|
Heartbeat-сигналы в рамках сессии длиной |
|
|
Максимальное количество данных, получаемых с партиции. Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных, рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных. Рекомендованное значение — |
|
|
Максимальное время ожидания ответа. Рекомендованное значение — |
|
|
Период сбора инфраструктурных метрик, рекомендованное значение — |
|
|
Включение/отключение использования в передаче метрик JMS. Рекомендованное значение — |
|
|
Включает поддержку ротации секрета подключения к Kafka мониторинга. Рекомендованное значение — |
При определении параметров используются переменные, значения которых устанавливаются в файлах репозитория Common:
Параметр репозитория Common |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
|
Включение/отключение отправки метрик в буфер для предоставления их для вычитки клиентскими приложениями MONA либо для дальнейшей их публикации в Prometheus средствами компонента. Рекомендованное значение — |
|
|
Включение/отключение обнуления значений метрик после их сбора клиентскими приложениями MONA. Рекомендованное значение — |
|
|
Включение/отключение отправки метрик в topic Kafka MONE. Рекомендованное значение — |
|
|
Адреса серверов Kafka. Значение указывается в |
|
|
Имя topic Kafka для отправки метрик. Значение указывается в |
|
|
Имя topic Kafka для общих настроек. Значение указывается в |
|
|
Имя topic Kafka для отправки метаданных. Значение указывается в |
|
|
Имя topic Kafka для настроек фильтров. Значение указывается в |
|
|
Включение/отключение использования в передаче метрик JMS. Рекомендованное значение — |
Описание переменных, использующихся при определении параметров подключения к Kafka приведено в разделе Интеграция с KFKA.
Примечание
Клиентские приложения MONA не входят в поставку LNSE. Добавление файлов настроек и манифестов, необходимых для развертывания в namespace LNSE pod с клиентскими приложениями MONA обеспечивают расширения injectUnimon и injectEgressKafka, описанные в файле pipeline.yml дистрибутива конфигурации развертывания LNSE.
Расширение injectEgressKafka добавляет файлы:
/conf/k8s/base/istio/config/egress/dictionary-monsys-egress-kafka-se.yaml;/conf/k8s/base/istio/config/egress/dictionary-monsys-egress-kafka-vs.yaml;/conf/k8s/base/istio/config/egress/dictionary-monsys-egress-kafka-gw.yaml;/conf/k8s/base/istio/config/egress/dictionary-monsys-egress-kafka-dr.yaml;/conf/k8s/base/istio/config/egress/dictionary-mone-egress-kafka-se.yaml;/conf/k8s/base/istio/config/egress/dictionary-mone-egress-kafka-vs.yaml;/conf/k8s/base/istio/config/egress/dictionary-mone-egress-kafka-gw.yaml;/conf/k8s/base/istio/config/egress/dictionary-mone-egress-kafka-dr.yaml.
Параметры интеграции с компонентом аудита (AUDT, AUDE, AUDM)
В части сбора и хранения событий информационной безопасности LNSE может быть интегрирован с AUDT. AUDT обеспечивает сбор и долгосрочное хранение событий информационной безопасности с доступом к их просмотру.
Также в части сбора и хранения событий информационной безопасности LNSE может быть интегрирован с AUDE. AUDE обеспечивает сбор и хранение событий информационной безопасности для фронтальных сервисов. Интеграция с AUDE опциональна и используется на усмотрение пользователя LNSE.
Для интеграции LNSE с компонентом аудита используются клиентский модуль AUDM, который передает зафиксированные LNSE события аудита используя topic Kafka. Также AUDM отправляет в topic Kafka метамодель событий аудита прикладных приложений LNSE при их старте.
AUDM предназначен для регистрации событий информационной безопасности в одном или нескольких приемниках. AUDM подключается в java-приложение LNSE как maven-зависимость. Детальное описание процесса подключения AUDM приведено в Руководстве прикладного разработчика AUDM, раздел «Подключение и конфигурирование».
При интеграции LNSE с AUDT используется протокол передачи событий (eventProtocol) — AVRO либо UNION. При интеграции с AUDE протокол передачи событий — UFS.
Параметры интеграции с компонентом аудита устанавливаются в файлах дистрибутива конфигурации развертывания LNSE:
настройки каждого из прикладных приложений LNSE задаются в файлах
\conf\config\parameters\data-dictionary-*.conf;настройки, общие для всех прикладных приложений LNSE, задаются в файле
\conf\config\parameters\dictionary.all.conf;начальные настройки AUDM задаются в файлах
\conf\k8s\base\configmaps\data-dictionary-*-config-cm.yaml;целевые настройки AUDM задаются в файлах
\conf\data\sup2\definitions\data-dictionary-*.json. В общем случае целевые значения настроек совпадают с начальными.
Параметры интеграции с компонентом аудита
Файл дистрибутива LNSE |
Параметр дистрибутива LNSE |
Описание |
|---|---|---|
|
lnse.external.audit.type |
Условное обозначение библиотеки, используемой для обмена с компонентом аудита. Рекомендованное значение — |
|
|
Условное обозначение библиотеки, используемой для обмена с компонентом аудита. Рекомендованное значение — |
|
|
Идентификатор элемента развертывания компонента LNSE. Рекомендованное значение — |
|
|
Идентификатор элемента развертывания компонента LNSE. Рекомендованное значение — |
|
|
Код проекта (тенанта) LNSE. Рекомендованное значение — |
|
Код целевого проекта (тенанта). Рекомендованное значение — |
|
|
Код АС, в состав которой интегрируется LNSE. Рекомендованное значение — |
|
|
Режим работы главного балансировщика запросов. |
|
|
Использование квотирования запросов. Рекомендованное значение — |
|
|
Для каждого подключаемого кластера Kafka из списка внутренний порт доступа инкрементируется начиная с указанного порта, внутренние порты интеграций кластеров Kafka не должны повторяться. Рекомендованное значение — |
|
|
Путь доступа к корневому сертификату на Egress. Рекомендованное значение — |
|
|
Путь доступа к клиентскому сертификату на Egress. Рекомендованное значение — |
|
|
Путь доступа к приватному ключу клиентского сертификата на Egress. Рекомендованное значение — |
|
|
Список брокеров для инициализации подключения к Kafka. Рекомендованное значение — |
|
|
Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — |
|
|
Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — |
|
|
Сжатие данных. Рекомендованное значение — |
|
|
Тайм-аут закрытия неиспользуемых подключений (в мс). Рекомендованное значение — |
|
|
Время ожидания результата записи в Kafka. Рекомендованное значение — |
|
|
Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — |
|
|
Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — |
|
|
Максимальный размер запроса (сообщения) producer AUDM (в байтах). Рекомендованное значение — |
|
|
Максимальный размер запроса (сообщения). Рекомендованное значение — |
|
|
Размер TCP-буфера на чтение данных (в байтах). Рекомендованное значение — |
|
|
Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — |
|
|
Размер TCP-буфера на отправку сообщения (в байтах). Рекомендованное значение — |
|
|
Протокол, по которому происходит подключение к Kafka. Рекомендованное значение — |
|
|
Алгоритм идентификации точки подключения, используемый клиентом. Рекомендованное значение — |
|
|
Протоколы, доступные для подключения к Kafka. Рекомендованное значение — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Протокол передачи событий — |
|
|
Флаг, определяющий основную группу. Может быть только одна основная группа. Рекомендованное значение — |
|
|
Имя класса провайдера. Рекомендованное значение — |
|
|
Приоритет отправки сообщений. Рекомендованное значение — |
|
|
Протокол передачи событий. Рекомендованное значение — |
|
|
Имена провайдеров через запятую. Используется для связывания провайдеров с группой. Рекомендованное значение — |
|
|
Время восстановления после сбоя, мс. Рекомендованное значение — |
|
|
Количество успешных отправок для перехода из состояния half-open в close. Рекомендованное значение — |
|
|
Режим балансировки. Возможные значения: |
|
|
Режим работы главного балансировщика запросов. Рекомендованное значение — |
|
|
Режим работы главного балансировщика запросов — |
Параметры интеграции с IAGW
IAGW предназначен для управления трафиком между различными компонентами Platform V. При наличии в среде функционирования компонента IAGW, HTTP-запросы к конкретному программному интерфейсу сначала отправляются на IAGW, а затем IAGW осуществляет маршрутизацию и балансировку запросов по серверам, на которых развернут компонент.
В состав дистрибутива конфигурации развертывания LNSE включены файлы, предназначенные для публикации в IAGW. Файлы находятся в каталогах дистрибутива:
\conf\global;\conf\global\iag;\conf\limits.
Файлы предназначены для импорта в IAGW средствами CDJE. Импорт в IAGW выполняется при запуске playbook NGINX_
MM — IAG_MM;
II — IAG_II;
без указания
— IAG_UI.
Стендозавимые параметры
Стендозависимые параметры LNSE приведены в конфигурационных файлах дистрибутива:
Конфигурационные параметры интеграции с компонентом мониторинга
Конфигурационные параметры интеграции и функционирования компонентов SSM
Конфигурационные параметры интеграции с компонентом журналирования
Конфигурационные параметры интеграции с Secret Management System
Обновление
Для обновления LNSE на текущую версию необходимо выполнить его установку в соответствии с разделом Установка.
Перед обновлением рекомендуется сделать резервную копию БД.
Примечание
LNSE поддерживает партиционное хранение версий данных справочников. При включенном партиционировании каждая версия данных справочника создается в отдельной секции partition. При создании резервной копии таблиц компонента LNSE с использованием утилиты pg_dump необходимо дополнительно выгрузить системный каталог pg_autopartition в файл. Порядок переноса системного каталога pg_autopartition приведен в Руководстве по системному администрированию в разделе «Сценарии администрирования» → «Резервное копирование данных».
Примечание
Так как в поставляемой конфигурации LNSE для хранения данных используется БД PSQL, после обновления LNSE версии 04.X00.00 (20.1) на текущую требуется миграция данных. Описание рекомендуемых инструментов миграции данных LNSE приведено в Руководстве по миграции данных.
Приложения data-dictionary-load, data-dictionary-manage неверсионируемые. Одновременная работа нескольких версий этих приложений не предполагается.
Чтобы избежать ошибок, перед установкой остановите и удалите неверсионируемые приложения предыдущего релиза.
Удалять таблицы БД не требуется. Остановка и удаление неверсионируемых приложений выполняется средствами CDJE в процессе установки LNSE.
Приложение data-dictionary-service версионируемое. При установке LNSE приложения data-dictionary-service предыдущих релизов не удаляются средствами CDJE.
Если предполагается одновременная эксплуатация нескольких версий приложения data-dictionary-service, то при подготовке к обновлению LNSE учитывайте требования к аппаратным ресурсам для каждой версии этих приложений.
Требования к КТС приведены в разделе «Аппаратные требования» Руководства по установке компонента LNSE соответствующей версии.
Если же с установкой нового релиза LNSE предполагается вывод из эксплуатации приложений data-dictionary-service предыдущих релизов, то их необходимо удалить вручную.
Удаление выполняется перед установкой LNSE текущей версии.
Для удаления неиспользуемого приложения data-dictionary-service подключитесь к среде контейнеризации через терминал и выполнить команду:
Команда для удаления приложения
kubectl -n <namespace> delete deploy data-dictionary-service
Подсказка
Для подключения рекомендуется использовать Kubectl версии, соответствующей версии Kubernetes.
Для удаления data-dictionary-service также можно воспользоваться консолью K8SC:
Перейдите в консоль K8SC.
Перейти на вкладку в «Deployment Configs».
Напротив элемента развертывания
data-dictionary-serviceвыберите опцию Delete Deployment Config.
В состав LNSE версии 04.X00.00 (20.1) и ниже входило приложение data-dictionary-init, которое больше не поставляется.
В текущей версии LNSE функциональность, которую ранее обеспечивал элемент развертывания data-dictionary-init, реализуется средствами data-dictionary-load.
Для корректной маршрутизации запросов к InitAPI до установки LNSE текущей версии удалите настройки locations на группе внутренних шлюзов IAGW.
После успешного завершения установки LNSE текущей версии удалите вручную приложение data-dictionary-init.
Для удаления data-dictionary-init можно воспользоваться Kubectl.
Пример команды для удаления приложения
kubectl -n <namespace> delete deploy data-dictionary-init
Удаление#
Для удаления LNSE необходимо удалить:
все ресурсы из каждого namespace LNSE в среде контейнеризации;
схемы БД;
репозиторий исходного кода с настройками LNSE в среде функционирования.
Для удаления ресурсов в среде контейнеризации рекомендуется использовать инструмент командной строки Kubernetes — Kubectl.
Необходимо удалить в среде контейнеризации все ресурсы следующих типов:
Deployment;
Secret (при наличии);
ConfigMap;
Service;
Ingress (при наличии);
Pod.
Пример команды получения списка ресурсов namespace:
kubectl get <тип ресурса> --namespace=<имя пространства имен>
Пример команды удаления ресурса из namespaсe:
kubectl -n <имя пространства имен> delete <тип ресурса> <имя ресурса>
При успешном запуске в логе очистки будут перечислены ресурсы, которые удалены.
Для удаления схемы базы данных выполните SQL-запрос:
Команда для удаления схемы БД
DROP SCHEMA <имя схемы> CASCADE;
Подсказка
Для выполнения SQL-запросов допускается использование любого клиента для работы с БД, совместимого с СУБД, используемой LNSE. Операция удаления схемы БД доступна владельцу схемы (owner) либо привилегированному пользователю БД (superuser).
Удаление репозитория с настройками LNSE в среде функционирования выполняется в соответствии с эксплуатационной документацией используемого сервиса хранения репозиториев исходного кода.
Проверка работоспособности#
Чек-лист проверки работоспособности компонента#
В LNSE реализован механизм проверки работоспособности контейнеров HealthCheck.
Запросы HealthCheck по методам GET и POST:
GET
https://{{host}}/data-dictionary-service/healthcheck;POST
https://{{host}}/data-dictionary-service/healthcheck;GET
https://{{host}}/data-dictionary-load/healthcheck;POST
https://{{host}}/data-dictionary-load/healthcheck;GET
https://{{host}}/ufs-dictionary-manager /healthcheck;POST
https://{{host}}/ufs-dictionary-manager /healthcheck.
Запросы liveness-probe:
GET
https://{{host}}/data-dictionary-service/healthcheck/liveness;GET
https://{{host}}/data-dictionary-load/healthcheck/liveness;GET
https://{{host}}/ufs-dictionary-manager /healthcheck/liveness.
Запросы readiness-probe:
GET
https://{{host}}/data-dictionary-service/healthcheck/readiness;GET
https://{{host}}/data-dictionary-load/healthcheck/readiness;GET
https://{{host}}/ufs-dictionary-manager /healthcheck/readiness.
В случае позитивного ответа liveness-probe и readiness-probe приходит ответ HealthCheck:
{
"success": true,
"body": "OK"
}
В случае негативного ответа liveness-probe и readiness-probe приходит ответ HealthCheck:
{
"success": true,
"body": "FAIL "
}
Также можно отправить запросы healthcheck/detail методами GET и POST:
GET
https://{{host}}/data-dictionary-service/healthcheck/detailPOST
https://{{host}}/data-dictionary-service/healthcheck/detailGET
https://{{host}}/data-dictionary-load/healthcheck/detailPOST
https://{{host}}/data-dictionary-load/healthcheck/detailGET
https://{{host}}/ufs-dictionary-manager/healthcheck/detailPOST
https://{{host}}/ufs-dictionary-manager/healthcheck/detail
В случае позитивного ответа приходит ответ healthcheck/detail:
Для data-dictionary-service:
{
"success": true,
"body": [
{
"name": "DictionaryLiveness",
"health": "OK",
"excluded": false,
"description": "Проверка работоспособности сервиса"
},
{
"name": "DictionaryReadiness",
"health": "OK",
"excluded": false,
"description": "Проверка доступа к БД"
}
]
}
Для data-dictionary-load:
{
"success": true,
"body": [
{
"name": "DictionaryLiveness",
"health": "OK",
"excluded": false,
"description": "Проверка работоспособности сервиса"
},
{
"name": "DictionaryReadiness",
"health": "OK",
"excluded": false,
"description": "Проверка доступа к БД"
},
{
"name": "AuditReadiness",
"health": "OK",
"excluded": false,
"description": "Проверяет доступ к Аудиту"
}
]
}
Для data-dictionary-manage:
{
"success": true,
"body": [
{
"name": "DictionaryLiveness",
"health": "OK",
"excluded": false,
"description": "Проверка работоспособности сервиса"
},
{
"name": "DictionaryReadiness",
"health": "OK",
"excluded": false,
"description": "Проверка доступа к БД"
},
{
"name": "AuditReadiness",
"health": "OK",
"excluded": false,
"description": "Проверяет доступ к Аудиту"
},
{
"name": "ru.sbrf.ufs.sds.impl.SdsClientHealthCheck",
"health": "OK",
"excluded": false,
"description": "Активный health check для мониторинга \"здоровья\" сервиса сессионных данных"
},
{
"name": "sber.platform.susd.pv.configuration.health.AdapterAsyncSchedulerHealthCheck",
"health": "OK",
"excluded": false,
"description": "Проверяет жив ли поток-планировщик периодических асинхронных задач, необходимы Platform V адаптеру"
}
]
}
В случае негативного ответа приходит ответ healthcheck/detail:
Подсказка
Если хотя бы по одной из систем возвращается fail, то приходит ответ, в котором success имеет значение false.
Общий пример ответа:
{
"success": false,
"body": [
{
"name": "DictionaryLiveness",
"health": "OK",
"excluded": false,
"description": "Проверка работоспособности сервиса"
},
{
"name": "DictionaryReadiness",
"health": "OK",
"excluded": false,
"description": "Проверка доступа к БД"
},
{
"name": "AuditReadiness",
"health": "FAIL",
"excluded": false,
"description": "Проверяет доступ к Аудиту"
},
{
"name": "ru.sbrf.ufs.sds.impl.SdsClientHealthCheck",
"health": "OK",
"excluded": false,
"description": "Активный health check для мониторинга \"здоровья\" сервиса сессионных данных"
},
{
"name": "sber.platform.susd.pv.configuration.health.AdapterAsyncSchedulerHealthCheck",
"health": "OK",
"excluded": false,
"description": "Проверяет жив ли поток-планировщик периодических асинхронных задач, необходимы Platform V адаптеру"
}
]
}
Также можно отправить запросы к IAGW по методам GET и POST:
GET
https://{{host}}/data-dictionary-service/healthcheck/data-dictionary-serviceGET
https://{{host}}/data-dictionary-load/healthcheck/data-dictionary-loadGET
https://{{host}}/ufs-dictionary-manager/healthcheck/data-dictionary-managePOST
https://{{host}}/data-dictionary-service/healthcheck/data-dictionary-servicePOST
https://{{host}}/data-dictionary-load/healthcheck/data-dictionary-loadPOST
https://{{host}}/ufs-dictionary-manager /healthcheck/data-dictionary-manage
В случае позитивного ответа приходит ответ IAGW:
{
"success": true,
"body": "ON"
}
В случае негативного ответа приходит ответ IAGW:
{
"success": true,
"body": "OFF"
}
Проверка работоспособности data-dictionary-service#
Для проверки того, что компонент data-dictionary-service находится в рабочем состоянии выполните следующие действия:
Перейдите по ссылке
http(s)://<хост>:<порт>/data-dictionary-service/rest/debug/hc.
Пример ответа
{"success":true,"body":"ON"}
Для получения номера версии компонента, перейдите по ссылке
http(s)://<хост>:<порт>/data-dictionary-service/environment/product.
Пример ответа
{"success":true,"body":{"subsystem":"DICTIONARY","channel":"SUPPORT","deploymentUnit":"data-dictionary-service","version":"0.000.00","distribVersion":"D-00.000.00-0000","platform":"0.0.00","serverIp":"00.000.000.000","release":"R00"}}
Выполните тестовый запрос:
Перейдите по ссылке
http(s)://<хост>:<порт>/data-dictionary-service/test.html;Нажмите кнопку getCount.
Пример ответа
{
"success": true,
"body": {
"responseId": "d4e31f83-6d6c-4915-a521-90b0e1549df0",
"requestId": "testRequestId",
"success": true,
"serverInfo": {"distribVersion": "D-00.000.00-0000"},
"dataSourceId": "XXX.XXXX.XX.X",
"versionCode": "INIT_CORE.BF.BF1_20431_2000_00_00_14_15_58_233",
"count": 628
} }
Выполните тестовый запрос к service-api.
Пример запроса
Path: http(s)://<хост>:<порт>/data-dictionary-service/v9/rn/DEFAULT_TENANT/dictionary/SAMPLE2/rows:count -- # SAMPLE20
Method: GET
Header: subsystem: <код подсистемы> -- # DICTIONARY
Query: ?requestId=<идентификатор запроса> -- # 4eb9d724-db45-46a9-89c8-4d042ade18bc
Пример ответа
{
"count": 2,
"objType": "CountResult",
"responseId": "47576952-aac8-475d-baf2-a219ea75d5ad",
"requestId": "4eb9d724-db45-46a9-89c8-4d042ade18bc",
"success": true,
"serverInfo": {
"version": "D-00.000.00-000",
"host": "000.000.000.000",
"cluster": "XXX.XXXXXX.XX.XX"
},
"dataVersion": "INIT_DICTPF.SB.MG_194010_2000_00_00_10_22_33_531"
}
Проверка работоспособности data-dictionary-load#
Для проверки того, что компонент data-dictionary-load находится в рабочем состоянии, выполните следующие действия:
Перейдите по ссылке
http(s)://<хост>:<порт>/data-dictionary-load/rest/debug/hc.
Пример ответа:
{"success":true,"body":"ON"}
Для получения номера версии компонента, перейдите по ссылке
http(s)://<хост>:<порт>/data-dictionary-load/environment/product.
Пример ответа
{"success":true,"body":{"subsystem":"DICTIONARY","channel":"SUPPORT","deploymentUnit":"data-dictionary-load","version":"0.000.00","distribVersion":"D-00.000.00-0000","platform":"0.0.00","serverIp":"00.000.000.000","release":"R00"}}
Выполните тестовый запрос:
Перейдите по ссылке
http(s)://<хост>:<порт>/data-dictionary-load/test.html;Нажмите кнопку dictionary/list.
Пример ответа
{
"success": true,
"body": {
"success": true,
"dictionaries": [
{
"id": "745584ea-f09d-4b53-abd1-bac3fd8fea59",
"code": "SAMPLE2",
"name": "Образец 2 (внутренний версионный, K3)",
"internal": true,
"activeVersionId": "a49c3438-765e-4b50-8e80-a5cf9bc6cde5",
"activeVersion": {
"id": "a49c3438-765e-4b50-8e80-a5cf9bc6cde5",
"dictionaryId": "745584ea-f09d-4b53-abd1-bac3fd8fea59",
"name": "Первоначальная версия 0.0",
"code": "INIT_DICTPF.SB.MG_3_2000_01_01_09_27_04_047",
"wasActivated": true,
"activationTime": "2000-01-01T09:27:36.435+0000",
"deleted": false
},
"fields": [
{
"name": "id",
"columnName": "ITEM_ID",
"title": "Идентификатор",
"type": "String",
"hidden": false
},
...
],
"tableName": "CLA_SAMPLE2",
"versionType": "MULTI"
},
...
]
}
}
Выполните тестовый запрос к load-api:
Пример запроса
Path: http(s)://<хост>:<порт>/data-dictionary-load/v8/rn/DEFAULT_TENANT/dictionary/<код справочника> -- # SAMPLE20
Method: GET
Header: subsystem: <код подсистемы> -- # DICTIONARY
Query: ?requestId=<идентификатор запроса> -- # 4eb9d724-db45-46a9-89c8-4d042ade18bc
Пример ответа
{
"dictionary": "SAMPLE20",
"activeStructure": "0.0",
"objType": "DictionaryMetadataResult",
"responseId": "bb4fd22a-09e9-47ba-9564-ffc16f6eeb86",
"requestId": "4eb9d724-db45-46a9-89c8-4d042ade18bc",
"success": true,
"serverInfo": {
"version": "D-00.000.00-000",
"host": "000.000.000.000",
"cluster": "XXX.XXXXXX.XX.XX"
},
}
Проверка работоспособности data-dictionary-manage#
Для проверки того, что компонент data-dictionary-manage находится в рабочем состоянии, выполните следующие действия:
Перейдите по ссылке
http(s)://<хост>:<порт>/ufs-dictionary-manager/rest/debug/hc.
Пример ответа
{"success":true,"body":"ON"}
Для получения номера версии компонента, перейдите по ссылке
http(s)://<хост>:<порт>/ufs-dictionary-manager/environment/product.
Пример ответа
{"success":true,"body":{"subsystem":"DICTIONARY","channel":"SUPPORT","deploymentUnit":"data-dictionary-manage","version":"0.000.00","distribVersion":"D-00.000.00-0000","platform":"0.0.00","serverIp":"00.000.000.000","release":"R00"}}
Чек-лист проверки работоспособности интеграций#
Проверка интеграции с PSQL#
В случае недоступности БД запуск новых экземпляров приложений LNSE невозможен.
Если pod LNSE запустились и находятся в статусе Running, то проверка выполнена успешно.
Проверка интеграции с Secret Management System#
Если в качестве инструмента доставки секретов в среду функционирования LNSE выбран SecMan, то в случае недоступности SecMan запуск новых экземпляров приложений LNSE невозможен.
Если pod LNSE запустились и находятся в статусе Running, то проверка выполнена успешно.
Проверка интеграции с POLM, IGEG и SVPX#
Убедитесь, что pod lnse-ingress и lnse-egress находятся в статусе Running:
Пример команды для проверки
kubectl get pod <имя pod> --namespace=<имя пространства имен>
Если pod запущены, проверьте их лог-сообщения на наличие ошибок:
Пример команды для проверки
kubectl logs -f <имя pod> --namespace=<имя пространства имен>
Если pod запущены и не содержат ошибок, то проверка выполнена успешно.
Проверка интеграции с OTTS#
При ошибках интеграции с OTTS сервис LNSE не запустится.
Если сервис LNSE запущен и pod находятся в статусе Running, проверка интеграции считается автоматически пройденной.
Проверка интеграции с SRLS#
В среде контейнеризации в GlobalRateLimit (GlobalRateLimitCommon) для тенанта измените значение всех value на
1.Перейдите во вкладку Project → Pods.
Найдите pod
lnse-ingressи перейдите в него. Откройте вкладку Logs. Проверьте наличие ошибки с кодом429 - reaquest_rate_limited. Наличие ошибки с кодом429 - reaquest_rate_limitedуказывает на работоспособную интеграцию с SRLS.Верните настройки параметров в среде контейнеризации в исходное состояние.
Проверка интеграции с KFKA#
Выполните запрос к load-api для активации версии внешнего тестового справочника, используя любую доступную среду выполнения запросов:
Пример запроса
Path: http(s)://<хост>:<порт>/data-dictionary-load/rest/load/ver.2.0/version/activate
Method: POST
Content-Type: application/json
Charset=UTF-8
Тело запроса
{
"subsystem" : "<код подсистемы>", -- # DICTIONARY
"versionIds": [
"<код версии данных>>"
]
}
В ответе должна содержаться строка "success": true.
После успешного выполнения запроса средствами интерфейса компонента журналирования найдите:
в интеграционном журнале запись о публикации сообщения о необходимости сброса кеша (имя элемента поставки:
data-dictinary-load);в интеграционном журнале запись о вычитке сообщения о необходимости сброса кеша (имя элемента поставки:
data-dictinary-manage);в системном журнале запись о сбросе кеша (имя класса:
%cache%, имя элемента поставки:data-dictinary-manage).
В сообщении должен быть указан код справочника, для которого активирована версия. Если найдены записи, созданные по времени после активации версии справочника, то проверка выполнена успешно.
Проверка интеграции с CFGA#
Выполните запрос к load-api для создания версии внешнего тестового справочника, используя любую доступную среду выполнения запросов:
Пример запроса
Path: http(s)://<хост>:<порт>/data-dictionary-load/rest/load/ver.2.0/version/save
Method: POST
Content-Type: application/json
Charset=UTF-8
Тело запроса
{
"version": {
"dictionaryId": "<идентификатор справочника>", -- # 259126ad-f77c-4dee-aa09-20dce0bd772b
"name": "<наименование версии данных>",
"code": "<код версии данных>",
"description": "<описание версии данных>"
},
"subsystem":"<код подсистемы>" -- # DICTIONARY
}
В ответе должна содержаться строка "success": true.
После успешного выполнения запроса:
Средствами CFGA для модуля
data-dictionary-loadLNSE установите параметрufs.dictionary.load.rest.enableв false;Повторно выполните запрос к load-api, изменив код версии данных. Если в ответе содержится строка
"success": false, то проверка выполнена успешно;Средствами CFGA для модуля
data-dictionary-loadLNSE для параметраufs.dictionary.load.rest.enableустановите исходное значение;Снова выполните запрос к load-api. В ответе должна содержаться строка
"success": true.
Проверка интеграции с STDE#
Интеграция с STDE не проверяется, т.к. критичного влияния на функционирование сервиса при ошибках интеграции с STDE нет.
Проверка интеграции с SMGX#
В адресной строке браузера введите URL АРМ SMGX.
Укажите идентификационную и аутентификационную информацию пользователя с ролью системного администратора АРМ Администратора LNSE и подтвердите вход.
Средствами АРМ SMGX перейдите в АРМ Администратора LNSE.
Если в браузере отобразилась экранная форма АРМ Администратора LNSE со списком справочников, то проверка выполнена успешно.
Проверка интеграции с AUTH, AUTZ и SUSD#
В адресной строке браузера введите URL АРМ AUTH.
Укажите идентификационную и аутентификационную информацию пользователя с ролью системного администратора АРМ Администратора LNSE и подтвердите вход.
Средствами АРМ AUTH перейдите в АРМ Администратора LNSE.
Если в браузере отобразилась экранная форма АРМ Администратора LNSE со списком справочников, то проверка выполнена успешно.
Проверка интеграции с LOGA, LOGE и LOGM#
Найдите лог-сообщения LNSE средствами АРМ используемого компонента журналирования.
Если найдены записи, созданные по времени после запуска LNSE, то проверка выполнена успешно.
Проверка интеграции с MONA, MONE и MONM#
Выполните запрос к load-api для создания версии внешнего тестового справочника, используя любую доступную среду выполнения запросов:
Пример запроса
Path: http(s)://<хост>:<порт>/data-dictionary-load/rest/load/ver.2.0/version/save
Method: POST
Content-Type: application/json
Charset=UTF-8
Тело запроса
{
"version": {
"dictionaryId": "<идентификатор справочника>", -- # 259126ad-f77c-4dee-aa09-20dce0bd772b
"name": "<наименование версии данных>",
"code": "<код версии данных>",
"description": "<описание версии данных>"
},
"subsystem":"<код подсистемы>" -- # DICTIONARY
}
В ответе должна содержаться строка "success": true.
После успешного выполнения запроса найдите событие UFS_DICTIONARY_LOAD_2_0_CREATE_VERSION_SUCC (успешное создание версии) средствами АРМ используемого компонента мониторинга.
Если найдена запись, созданная по времени после запуска LNSE, то проверка выполнена успешно.
Проверка интеграции с AUDT, AUDE и AUDM#
Выполните запрос к load-api для создания версии внешнего тестового справочника, используя любую доступную среду выполнения запросов:
Пример запроса
Path: http(s)://<хост>:<порт>/data-dictionary-load/rest/load/ver.2.0/version/save
Method: POST
Content-Type: application/json
Charset=UTF-8
Тело запроса
{
"version": {
"dictionaryId": "<идентификатор справочника>", -- # 259126ad-f77c-4dee-aa09-20dce0bd772b
"name": "<наименование версии данных>",
"code": "<код версии данных>",
"description": "<описание версии данных>"
},
"subsystem":"<код подсистемы>" -- # DICTIONARY
}
В ответе должна содержаться строка "success": true.
После успешного выполнения запроса найдите событие UFS_DICTIONARY_CREATE_VERSION (Создание версии справочника) средствами АРМ используемого компонента аудита.
Если найдена запись, созданная по времени после запуска LNSE, то проверка выполнена успешно.
Проверка интеграции с IAGW#
Интеграция с IAGW не проверяется.
Настройки#
Настройка Active-Active#
В LNSE реализована программная репликация данных локальных справочников кластера в режиме stand-in active-active.
Репликация выполняется:
по расписанию — задается в параметре
ufs.dictionary.scheduled.task.replicator.time;при активации версии в блоке.
Для настройки репликации в параметре ufs.dictionary.replication.blocks укажите список блоков, в которые будут реплицироваться справочники текущего блока.
Выполните настройку на всех блоках, с которых должна выполняться репликация.
Настройка списка блоков/зон для синхронизации#
Для настройки списка блоков/зон для синхронизации в параметре ufs.dictionary.zone.lists укажите список всех блоков/зон.
Выполните настройку на всех блоках.
Откат#
Откат БД#
Так как в поставляемой конфигурации LNSE для хранения данных используется БД PSQL, возможность отката БД к предыдущей версии не предусматривается.
Откат настроек#
В разделе Обновление содержится список измененных параметров, которые несет в себе дистрибутив LNSE новой версии при их наличии.
При установке дистрибутива LNSE необходимо вручную в АРМ Администратора CFGA удалить параметры, значения которых были изменены.
Подсказка
Новые настройки не обязательны к удалению, поскольку они не влияют на работу предыдущих версий.
При установке дистрибутива LNSE предыдущей версии все отсутствующие параметры, необходимые для работы приложения, будут установлены из дистрибутива LNSE новой версии.
Установка дистрибутива предыдущей версии#
Для отката версии LNSE необходимо установить его предыдущую версию в соответствии c разделом «Установка» предыдущей версии LNSE.
Часто встречающиеся проблемы и пути их устранения#
Ошибка инициализации интеграционного модуля#
В лог-сообщениях появляется ошибка вида:
Пример ошибки
ERROR [WebContainer : 0] r.s.u.i.module.IntegrationModule — a54c49a5ea2b4bd7bc38f421dbc538ac: Интеграционный модуль не был инициализирован корректно. Проверка работоспособности невозможна. По умолчанию Health.FAIL. Ошибка инициализации: db06a823a91947f9a62f84b432c639b6: ошибка при создании соединения
Выполните следующие проверки:
Убедитесь, что
jms/factory/INTER_UNIT_IP_HASHиjms/factory/INTER_UNIT_ROUND_ROBINрасположены вQueueConnectionFactory.Убедитесь, что
jms/factory/INNER_TOPIC_ROUND_ROBINрасположен вTopicConnectionFactory.Убедитесь, что JNDI
platform/masterSubsystemотсутствует на всех блоках.Параметры
dictionary.masterSubsystemCodeотсутствуют.
Чек-лист валидации установки#
После установки проверьте результат выполнения следующих playbook:
MIGRATION_FP_CONF— в репозиторий с настройками LNSE в среде функционирования мигрировали конфигурационные файлы дистрибутива LNSE;DB_UPDATE— созданы и заполнены таблицы в БД на основании скриптов из папкиpackage/dbдистрибутива LNSE;OPENSHIFT_DEPLOY— в проектной области среды контейнеризации появилисьConfigMaps,VirtualService,DeploymentConfig,Service,Route,ServiceEntry,Gateway,DestinationRuleи создались pod;OPENSHIFT_INGRESS_EGRESS_DEPLOY— появились pod lnse-ingress и lnse-egress;NGINX_DEPLOY:Применены настройки
locations,upstreamsиroutingв соответствии с файлами конфигурацииnginx-iag-routing.json.j2,nginx-iag-services.json.j2,nginx-iag-nodes.json.j2;Разархивирован PL в папку
/u01/nginx/staticна сервере nginx_ui из папкиpackage/plдистрибутива LNSE;
IMPORT_ALL_PARAMS— в АРМ Администратора используемых компонентов Platform V создались объекты в соответствии с файлами конфигурации из папкиpackage/conf/dataдистрибутива LNSE;UPDATE_KAFKA_FP— созданы topic Kafka.
Также проверьте, что:
имеются все необходимые смежные компоненты, описанные в разделе Платформенные зависимости настоящего документа;
настроены все необходимые интеграции.