Руководство по установке#

Введение#

Назначение документа#

Настоящий документ представляет собой набор инструкций для установки компонента Сервис предоставления справочных данных (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, см. раздел Платформенные зависимости настоящего Руководства по установке

Среда контейнеризации

Да

Kubernetes

1.25 и выше

Опционально. Правообладателем АО «СберТех» рекомендована среда контейнеризации — Platform V DropApp (K8S), см. раздел Платформенные зависимости настоящего Руководства по установке

Платформа контейнеризации для запуска компонентов сервиса

Командная строка

Да

Kubectl

Версия, соответствующая версии Kubernetes

Рекомендовано

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

Средство контейнеризации

Да

Docker CE

20.10 и выше

Рекомендовано

Инструмент для автоматизации работы с контейнерами

Инструмент сборки, тестирования, развертывания контейнеризированных приложений

Да

Jenkins

2.387 и выше

Рекомендовано

Сервер автоматизации, используемый для внедрения непрерывной интеграции и непрерывной доставки (CI/CD) для проектов программного обеспечения

Java-машина

Да

OpenJDK

11

Рекомендовано

Окружение для работы модулей компонента

Сервер приложений

Да

Apache Tomcat

9.0.99 и выше

Рекомендовано

СПО для тестирования, отладки и исполнения веб-приложений на основе Java

Браузер

Да

Яндекс Браузер

16.9 и выше

Рекомендовано

Браузер для входа в UI

Брокер сообщений

Да

Apache Kafka

2.7.2 и выше

Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел Платформенные зависимости настоящего Руководства по установке

Событийный обмен сообщениями между модулями компонента, между смежными компонентами

Инструмент управления проектом

Да

Apache Maven

3.8 и выше

Рекомендовано

Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM

Сервис централизованного хранения репозиториев артефактов (хранилище артефактов)

Да

Nexus-Public

2.14 и выше

Рекомендовано

Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО

Nexus Repository Manager PRO

2 и выше

Опционально

Nexus Repository Manager OSS

2 и выше

Опционально

Сервис централизованного хранения репозиториев исходного кода

Да

GitLab Community Edition

15.0 и выше

Рекомендовано

Хранение конфигураций при автоматизированной установке

Bitbucket

7.6 и выше

Опционально

Сервис интеграции и оркестрации микросервисов в облаке

Да

Istio

1.17

Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio, – Platform V Synapse Service Mesh, см. раздел Платформенные зависимости настоящего Руководства по установке

Сервис интеграции микросервисов в облаке

Система мониторинга (сбор и хранение метрик)

Нет

Prometheus

2.31.0 и выше

Рекомендовано. Правообладателем АО «СберТех» также рекомендован cервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения – Объединенный мониторинг Unimon Platform V Monitor, см. раздел Платформенные зависимости настоящего Руководства по установке

Система для сбора и хранения численных метрик

Система мониторинга (визуализация численных метрик)

Нет

Grafana

2.5.0 и выше

Опционально

Система для визуализации численных метрик (предоставленных, например, Prometheus)

Криптографическая библиотека

Да

OpenSSL

1.1.1 и выше

Рекомендовано

Криптографическая библиотека

Программа для обновления данных

Да

Liquibase

4.24.0 и выше

Рекомендовано

Библиотека для отслеживания, управления и применения изменений схемы базы данных

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

Да

СУДИР

Любая актуальная версия

Опционально. Правообладателем АО «СберТех» также рекомендован компонент IAM Proxy (AUTH) продукта Platform V IAM SE (IAM), см. раздел Платформенные зависимости настоящего Руководства по установке

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

Система создания, хранения и распространения секретов

Нет

HashiCorp Vault

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 (Гб)

data-dictionary-manage-pl

IAGW

0,03

data-dictionary-manage-pl-standalone

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/data-dictionary-service-web.jar

Сервис чтения данных справочников — сервис BH, обеспечивающий доступ к хранилищу справочников со стороны прикладных модулей

./bh/data-dictionary-load-web.jar

Сервис загрузки данных справочников — сервис BH, обеспечивающий загрузку справочников из внешних источников в хранилище справочников

./bh/data-dictionary-manage-web.jar

BH АРМ Администратора LNSE — сервис BH, предоставляющий системному администратору и бизнес-администратору возможность управления и просмотра справочников

./pl/data-dictionary-manage-pl.zip

Файлы презентационного слоя для размещения на API-шлюзе IAGW — статика АРМ Администратора LNSE для обращения через платформенный компонент SMGX

./pl/data-dictionary-manage-pl-standalone.zip

Файлы презентационного слоя для размещения на API-шлюзе IAGW — статика АРМ Администратора LNSE для обращения по прямой ссылке

./db/lnse-dbinit-pg-D-XX.YYY.ZZ-BUILD.zip

Скрипты инициализации для PSQL

./db/lnse-system-pg-D-XX.YYY.ZZ-BUILD.zip

Скрипты миграции для системных таблиц для PSQL

./db/lnse-sample-pg-D-XX.YYY.ZZ-BUILD.zip

Скрипты миграции для таблиц тестовых справочников PSQL

./db/lnse-system-back-pg-D-XX.YYY.ZZ-BUILD.zip

Скрипты отката для системных таблиц PSQL

./conf

Инструкции создания образа контейнеров приложений

Дистрибутив конфигурации развертывания 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 к выделяемым аппаратным ресурсам (приведены в разделе Аппаратные требования настоящего документа).

  1. При подготовке экземпляра БД с помощью командной строки создайте на сервере баз данных каталоги для размещения табличных пространств 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
  1. Создайте БД и пользователя Администратор БД, от имени которого выполняется первичная настройка БД.

Подсказка

Для создания используйте утилиту 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";
  1. Создайте в БД схему и две учетные записи пользователей:

    • Пользовватель БД LNSE — пользователь, от имени которого приложения LNSE обращаются к БД;

    • Liquibase-пользователь БД LNSE — пользователь, от имени которого исполняются скрипты liquibase для управления объектами БД LNSE.

Подсказка

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

Примечание

Пользователь, от имени которого приложения LNSE обращаются к БД, должен быть наделен правами по созданию новых таблиц БД LNSE. Если не предполагается динамическое создание справочников, то права могут отсутствовать. Доступность динамического создания справочников регулируется параметром ufs.dictionary.dynamic.create.enable (по умолчанию установлен в false).

Подсказка

Первичную настройку БД рекомендуется выполнять средствами Liquibase — утилита в составе дистрибутива бинарных артефактов LNSE. Приложение Liquibase может быть запущено на любой машине с JVM — входит в состав OpenJDK.

Для первичной настройки БД LNSE средствами Liquibase:

  1. Скачайте дистрибутив бинарных артефактов LNSE.

  2. Распакуйте архив lnse-dbinit-pg-*.zip, размещенный в каталоге ./db/ дистрибутива LNSE.

  3. Перейдите в папку с содержимым распакованного архива lnse-dbinit-pg-*.zip.

  4. Выполните скрипты 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 — полный путь до БД.

  1. Для исполнения скриптов используйте командную строку.

Команда запуска выполнения скриптов 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 .

  1. Проверьте результат выполнения скриптов 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 meshIstio. В качестве сервисной сетки рекомендуется использовать продукт 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.

Перед установкой выполните следующие действия:

  1. Проверьте соответствие версии скриптов установки ПО (pipeline) версии, указанной в файле /package/conf/version.conf дистрибутива конфигурации развертывания LNSE;

  2. Проверьте наличие нужных playbook в списке сценариев сборки в Jenkins.

Проверка конфигурации:

Подсказка

Функциональностью CDJE предусмотрена проверка конфигураций компонентов перед их установкой. Проверка заключается в проверке доступности инфраструктуры и наличия в конфигурационных файлах некорректно настроенных параметров. Набор playbook для выполнения проверки задается в разделе playbooks_default файла distrib.ym дистрибутивного комплекта устанавливаемого компонента. По умолчанию проверка выполняется при запуске job Jenkins, предназначенной для установки компонентов. Проверку можно отключить, установив в false параметр forcePreCheck в файле environment.json репозитория Common.

Для ручного запуска проверки конфигурации LNSE выполните следующие действия:

  1. Перейдите к job Jenkins, предназначенной для установки компонентов платформы — JOB Deploy.

  2. В меню слева выберите опцию Собрать с параметрами.

  3. Установите параметры сборки:

  • SUBSYSTEM: DICTIONARY;

  • DISTRIB_VERSION: версия дистрибутива конфигурации развертывания;

  • OSE_CLUSTERS: кластер K8S;

  • Репозиторий/ветка с настройками: основная ветка конфигурации в соответствии с настройками CDJE;

  • Playbook: FP_CONF_CHECK;

  1. Запустите сборку с помощью кнопки Собрать.

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

Установка:

  1. Перейдите к job Jenkins, предназначенной для установки компонентов платформы — JOB Deploy.

  2. В меню слева выберите опцию Собрать с параметрами;

  3. Установите параметры сборки:

  • 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 необходимо выполнить отдельно, после предыдущих в списке;

  1. Запустите сборку с помощью кнопки Собрать.

  2. После завершения сборки проанализируйте лог-файл на предмет наличия ошибок.

Примечание

При наличии в среде установки 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.

Важно

Перед установкой средствами используемого компонента управления параметрами необходимо удалить параметры ufs.dictionary.scheduled.task.external.time и ufs.dictionary.scheduled.task.billing.update.gauge.metric.time. Удаление требуется так как для параметров изменен тип данных.

Краткое описание 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 предыдущей версии, развернутой в другой среде контейнеризации, выполните следующие действия:

  1. В файле _global.resources.conf репозитория Common измените значение параметра global.platform.iag.default.route:

  • значение dropapp — маршрутизация трафика в K8SC;

  • значение ocp — маршрутизация трафика в OpenShift;

  1. Запустите job Jenkins, предназначенную для установки компонентов платформы — JOB Deploy. Выберите playbook:

  • NGINX_DEPLOY;

  • NGINX_II_DEPLOY;

  • NGINX_MM_DEPLOY.

  1. После завершения 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

Описание

dictionary.all.conf

lnse.db.servers

Список серверов БД. Рекомендованное значение — jdbc.lnse_postgres.servers

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.jdbc-url

Путь к БД, включая порт. Используется при выполнении запросов к БД. Рекомендованное значение — {{ jdbc.lnse_postgres.url }}{{  '&ssl=true' ~ '&sslmode=' ~ global.jdbc.postgresql.sslmode ~ '&sslcert=/mnt/config/ssl/postgresql/tls.crt' ~ '&sslkey=/mnt/config/ssl/postgresql/tls.key' ~ '&sslrootcert=/mnt/config/ssl/ca/root.crt' if global.jdbc_mtls&#124bool else '' }}

dictionary.jdbc_mtls

Режим взаимодействия с СУБД. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc_mtls', default='true') }}

lnse.db.ts.data

Имя табличного пространства для хранения данных. Рекомендованное значение — lnse_ts_data

lnse.db.ts.index

Имя табличного пространства для хранения индексов. Рекомендованное значение — lnse_ts_idx

lnse.db.ts.lob

Имя табличного пространства для хранения объектов БД с типом LOB. Рекомендованное значение — lnse_ts_lob

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.driver-class-name

Имя класса с драйвером. Рекомендованное значение — ${global.jdbc.postgresql.spring.datasource.driver-class-name}. Значение переменной устанавливается в файле репозитория Common

dictionary.spring.datasources.hikari.aliveBypassWindowMs

Проверка корректности соединения, измеряется в миллисекундах. Рекомендованное значение — {{ global.jdbc.hikari.aliveBypassWindowMs }}. Значение переменной устанавливается в файле репозитория Common

dictionary.spring.datasources.hikari.housekeeping.periodMs

Частота с которой выполняется поиск idle соединений в пуле, измеряется в миллисекундах. Рекомендованное значение — {{ global.jdbc.hikari.housekeeping.periodMs }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.validation-timeout

Время, в течение которого должен выполниться запрос на валидацию соединения, измеряется в миллисекундах. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.validation-timeout') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.minimum-idle

Минимальное количество соединений в пуле. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.minimum-idle') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.max-lifetime

Время, по истечении которого соединение будет удалено, измеряется в миллисекундах. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.max-lifetime') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.maximum-pool-size

Максимальное количество соединений в пуле. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.maximum-pool-size') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.idle-timeout

Время, в течение которого соединение может не обслуживать запросы прежде чем может быть удален по idle timeout, измеряется в миллисекундах. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.idle-timeout') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.connection-timeout

Время, в течение которого пользователь должен получить соединение, измеряется в миллисекундах. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.connection-timeout') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.connection-test-query

SQL-запрос, который будет выполняться для проверки соединения с СУБД, если значение не задано, то проверка будет осуществлена с помощью драйвера. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.connection-test-query') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.leak-detection-threshold

Время, в течение которого соединение может быть вне пула, прежде, чем в лог-файл будут отправляться сообщения о возможной утечке соединений. Рекомендованное значение — {{ lookup('custom_vars', 'global.jdbc.spring.datasource.hikari.leak-detection-threshold') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.initializationFailTimeout

Определяет поведение при первом соединении, измеряется в секундах. Рекомендованное значение — {{ global.jdbc.spring.datasource.hikari.initializationFailTimeout }}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.data-source-properties.socketTimeout

Время, в течение которого sql запрос пользователя должен выполниться, измеряется в секундах, рекомендованное значение — ${global.jdbc.postgres.spring.datasource.hikari.data-source-properties.socketTimeout}. Значение переменной устанавливается в файле репозитория Common

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.connection-init-sql

SQL-запрос, выполняемый при создании соединения с СУБД для проверки соединения. Рекомендованное значение — ${global.jdbc.postgresql.spring.datasource.hikari.connection-init-sql}. Значение переменной устанавливается в файле репозитория Common

lnse.db.rotation

Включение механизма ротации секрета с логином и паролем доступа к БД. Рекомендованное значение — true

lnse.secret.db.secret-file-location

Путь к секрету с логином и паролем доступа к БД в среде контейнеризации. Рекомендованное значение — /mnt/config/secrets/db/db.yml

lnse.secret.db.user-key

Ключ для получения логина доступа к БД. Рекомендованное значение — jdbc.LNSE.user

lnse.secret.db.password-key

Ключ для получения пароля доступа к БД. Рекомендованное значение — jdbc.LNSE.password

lnse.db.secret.volume.path

Путь к volume с секретом доступа к БД в среде контейнеризации. Рекомендованное значение — /mnt/config/secrets/db/

При определении параметров подключения к СУБД используются переменные, значения которых устанавливаются в файлах репозитория Common:

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

jdbc.LNSE.user

lnse.secret.db.user-key

Логин пользователя для выполнения запросов к БД. Используется секрет из SecMan

jdbc.LNSE.password

lnse.secret.db.password-key

Пароль пользователя для выполнения запросов к БД. Используется секрет из SecMan

jdbc.lnse_postgres.url

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.jdbc-url

Путь к БД, включая порт. Используется при выполнении запросов к БД, значение указывается в файле _global.jdbc.conf

jdbc.lnse_postgres.servers

lnse.ose.istio.egress.db.dict.hosts

Список серверов БД для трафика через egress, значение указывается в файле _global.jdbc.conf

global.jdbc.hikari.aliveBypassWindowMs

dictionary.spring.datasources.hikari.aliveBypassWindowMs

Проверка корректности соединения (мс). Рекомендованное значение — 500, значение указывается в файле _global.jdbc.conf

global.jdbc.hikari.housekeeping.periodMs

dictionary.spring.datasources.hikari.housekeeping.periodMs

Частота поиска idle-соединений в пуле (мс). Рекомендованное значение — 30000, значение указывается в файле _global.jdbc.conf

global.jdbc.postgresql.sslmode

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.jdbc-url

Тип шифрования. Рекомендованное значение — verify-full, значение указывается в файле ssl.conf

global.jdbc_mtls

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.jdbc-url

Режим взаимодействия с БД. Рекомендованное значение — true, значение указывается в файле ssl.conf

global.jdbc.postgresql.spring.datasource.hikari.connection-init-sql

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.connection-init-sql

Запрос для проверки соединения, выполняемый при создании соединения с БД. Не заполняется. Значение указывается в файле _global.jdbc.conf

global.jdbc.postgresql.spring.datasource.driver-class-name

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.driver-class-name

Имя класса с драйвером. Рекомендованное значение — org.postgresql.Driver, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.validation-timeout

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.validation-timeout

Время выполнения запроса на валидацию соединения (мс). Рекомендованное значение — 5000, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.minimum-idle

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.minimum-idle

Минимальное количество соединений в пуле. Рекомендованное значение — 1, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.max-lifetime

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.max-lifetime

Время, по истечении которого соединение удаляется (мс). Рекомендованное значение — 1800000, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.maximum-pool-size

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.maximum-pool-size

Максимальное количество соединений в пуле. Рекомендованное значение — 10, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.idle-timeout

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.idle-timeout

Время, в течение которого соединение не обслуживает запросы прежде чем удалиться по idle тайм-ауту (мс). Рекомендованное значение — 600000, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.connection-timeout

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.connection-timeout

Время, в течение которого пользователь должен получить соединение (мс). Рекомендованное значение — 30000, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.connection-test-query

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.connection-test-query

SQL-запрос для проверки соединения с БД. Если значение не задано, проверка осуществляется с помощью драйвера. Рекомендуется не заполнять. Значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.leak-detection-threshold

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.leak-detection-threshold

Время, в течение которого соединение может быть вне пула, прежде, чем в лог-файл отправятся сообщения о возможной утечке соединений. Рекомендованное значение — 0, значение указывается в файле _global.jdbc.conf

global.jdbc.spring.datasource.hikari.initializationFailTimeout

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.initializationFailTimeout

Определяет поведение при первом соединении (сек). Рекомендованное значение — 1, значение указывается в файле _global.jdbc.conf

global.jdbc.postgres.spring.datasource.hikari.data-source-properties.socketTimeout

dictionary.UFS_DICTIONARY_DB.spring.datasource.hikari.data-source-properties.socketTimeout

Время, в течение которого SQL-запрос пользователя должен выполниться (сек). Рекомендованное значение — 0, значение указывается в файле _global.jdbc.conf

Значения параметров подключения к PSQL для исполнения liquibase-скриптов, входящих в состав дистрибутивного комплекта LNSE, устанавливаются:

  • в секции dbscripts файла \conf\distrib.yml;

  • в файле custom_property.conf.yml дистрибутива конфигурации развертывания.

Файл дистрибутива LNSE

Параметр дистрибутива LNSE

Описание

distrib.yml

file

Каталог дистрибутива LNSE со скриптами liquibase. Значение — package/db/lnse-system-pg-*.zip, package/db/lnse-sample-pg-*.zip

url

Путь к БД, значение — {{ LNSE_POSTGRES_DB_URL }}

jdbcDriver

JDBC Driver, значение — org.postgresql.Driver

schema

Первый фасет в наименовании схемы БД, значение — {{ (dictionary_custom_schema&#124default('lnse'))&#124lower }}

username

Логин liquibase-пользователь БД LNSE, значение — {{ LNSE_POSTGRES_DB_ADMIN }}

password

Пароль liquibase-пользователь БД LNSE, значение — {{ LNSE_POSTGRES_DB_PASS }}

definitions.dictionary_tablespace_seed

Имя табличного пространства для хранения данных, значение — {{ dictionary_custom_tablespace_seed&#124default('lnse_ts_data') }}

definitions.dictionary_index_seed

Имя табличного пространства для хранения индексов, значение — {{ dictionary_custom_index_seed&#124default('lnse_ts_idx') }}

definitions.dictionary_lob_seed

Имя табличного пространства для хранения объектов БД с типом LOB, значение — {{ dictionary_custom_lob_seed&#124default('lnse_ts_lob') }}

При определении параметров подключения к СУБД используются переменные, значения которых устанавливаются в файлах репозитория Common:

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

LNSE_POSTGRES_DB_URL

url

Путь к БД, используется секрет из SecMan

LNSE_POSTGRES_DB_ADMIN

username

Логин liquibase-пользователь БД LNSE, используется секрет из SecMan

LNSE_POSTGRES_DB_PASS

password

Пароль 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_secret

jdbc.LNSE.user

Логин пользователя БД LNSE

jdbc.LNSE.password

Пароль доступа к БД LNSE

В соответствии со значением переменной global.platform.annotations.hashicorp.cert.client.secretName

certificate

Сертификат клиента. Используется для подключения к БД в SSL-режиме, для шлюза Egress, для обмена с OTTS

private_key

Ключ сертификата клиента

passphrase

Ключевая фраза хранилища JKS c сертификатом клиента

serial_number

Серийный номер сертификата клиента

В соответствии со значением переменной global.platform.annotations.hashicorp.cert.server.secretName

certificate

Сертификат сервера для шлюза Ingress

private_key

Ключ сертификата сервера для шлюза Ingress

serial_number

Серийный номер сертификата сервера для шлюза Ingress

В соответствии со значением переменной global.platform.annotations.hashicorp.ott.cert.client.secretName

certificate

Сертификат для обмена с OTTS

private_key

Ключ сертификата для обмена с OTTS

serial_number

Серийный номер сертификата для обмена с OTTS

В соответствии со значением переменной global.platform.annotations.hashicorp.rootCertsPath

truststore_cer

Корневой сертификат (ключ издателя)

truststore_pem

Корневой сертификат (ключ издателя)

truststore_jks

Хранилище JKS c корневым сертификатом

truststore_jks_pass

Ключевая фраза хранилища JKS c корневым сертификатом

Для обеспечения доступа к секретам из приложений vault-agent, развернутых в pod LNSE, в SecMan должна быть настроена роль. Требуется доступ из namespace LNSE к kv-хранилищу SecMan на чтение секретов и их списка.

При конфигурировании PKI движков в SecMan должны быть настроены роль для выпуска сертификатов методом fetch. Имя роли должно соответствовать значению переменной global.platform.annotations.hashicorp.cert.client.secretName репозитория Common.

  1. Настройки подключения 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 приложения.

  2. Порт для обращения к SecMan через egress определяется в файле \conf\openshift\istio\config\egress\se-egress-secman.yaml дистрибутива конфигурации развертывания LNSE.

  3. Параметры интеграции с 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

Описание

dictionary.vault.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.namespace

Namespace, которое используется при запросе секретов из SecMan

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.role

Роль, используемая методом автоматической аутентификации vault-agent. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.role') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.kv.baseEngineMountPath

Базовый путь до kv-движка. Если значение задано, то в конце пути обязателен символ /. Рекомендованное значение — {{ secManSectorPath&#124replace(secManSectorPath&#124regex_findall('EXTRA_DICT.+')&#124first, '') }}EXTRA_DICT/LNSE/

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath

Базовый путь до pki-движка. Не заполняется

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsPath

Полный URL до монтирования secret engine с корневыми сертификатами. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.rootCertsPath') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsData.pem

Ключ в секрете с корневыми сертификатами для получения сертификата truststore_pem. Рекомендованное значение — index .Data "truststore_pem"

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsData.cer

Ключ в секрете с корневыми сертификатами для получения сертификата truststore_cer. Рекомендованное значение — index .Data "truststore_cer"

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsData.jks

Ключ в секрете с корневыми сертификатами для получения truststore_jks. Рекомендованное значение — base64Decode (index .Data "truststore_jks")

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsData.jks.pass

Ключ в секрете с корневыми сертификатами для получения truststore_jks_pass. Рекомендованное значение — index .Data "truststore_jks_pass"

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.client-max-retries

Количество повторений при ошибочных запросах. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.hashicorp.client-max-retries', default=2) }}

lnse.ose.configmap.certificate.server.cn

CN серверного сертификата для LNSE. Используется в ingress. Значение должно совпадать с наименованием route. Рекомендованное значение — {{ lookup('custom_vars', 'dictionary.ose.istio.ingress.route.spec.host.https.appFQDN') }}

lnse.ose.configmap.certificate.client.cn

CN клиентского сертификата для LNSE. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.cert.client.cn') }}

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.secret-volume-path-postgre-tls.crt

Путь к volume с секретом postgre-tls.crt в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl/postgresql

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-file-postgre-tls.crt

Путь к секрету postgre-tls.crt в volume. Рекомендованное значение — tls.crt

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-file-postgre-serial_number

Путь к секрету postgre-serial_number в volume. Рекомендованное значение — serial_number

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-secret-postgre-tls.crt

Путь до секрета с именем postgre-tls.crt в SecMan. Если используется шаблонизация, то в параметре устанавливается значение true. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.postgresql.spring.datasource.enabled') }}. Значение переменной устанавливается в dictionary.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.secret-volume-path-postgre-tls.key

Путь к volume с секретом postgre-tls.key в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl/postgresql

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-file-postgre-tls.key

Путь к секрету postgre-tls.key в volume. Рекомендованное значение — tls.key

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-secret-postgre-tls.key

Путь до секрета с именем postgre-tls.key в SecMan. Если используется шаблонизация, то в параметре устанавливается значение true. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.postgresql.spring.datasource.enabled') }}. Значение переменной устанавливается в dictionary.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-postgre-tls.key.engineMountPath

Полный URL до монтирования secret engine для postgre-tls.key. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') }}{{ lookup('custom_vars', 'global.platform.annotations.hashicorp.engine.pki.name') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-postgre-tls.key.secretName

Наименование роли PKI движка для выпуска сертификата с ключом postgre-tls.key в SecMan. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.cert.client.secretName') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.secret-volume-path-postgre-root.crt

Путь к volume с секретом postgre-root.crt в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl/ca

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-file-postgre-root.crt

Путь к секрету postgre-root.crt в volume. Рекомендованное значение — root.crt

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-secret-postgre-root.crt

Путь до секрета с именем postgre-root.crt в SecMan. Если используется шаблонизация, то в параметре устанавливается значение true. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.postgresql.spring.datasource.enabled') }}. Значение переменной устанавливается в dictionary.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-postgre-root.crt.engineMountPath

Полный URL до монтирования secret engine для postgre-root.crt. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsPath') }}. Значение переменной устанавливается в dictionary.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-postgre-root.crt.secretName

Имя секрета postgre-root.crt в SecMan. Не заполняется

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.secret-volume-path-postgre-user

Путь к volume с секретом postgre-user в среде контейнеризации. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.db.secret.volume.path') }}. Значение переменной устанавливается в dictionary.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-postgre-user.engineMountPath

Полный URL до монтирования secret engine для postgre-user. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.kv.baseEngineMountPath') + 'KV/'}}. Значение переменной устанавливается в dictionary.vault.all.conf

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-postgre-user.secretName

Имя секрета postgre-user в SecMan. Рекомендованное значение — lnse_secret

lnse.ose.istio.ingress.secman.pki.storage.path

Полный URL до монтирования secret engine для tls.crt для шлюза ingress. Рекомендованное значение — {{'"' + lookup('custom_vars', 'lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars', 'global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars', 'lnse.ose.istio.ingress.secman.pki.secretName') + '" "common_name=' + lookup('custom_vars', 'lnse.ose.configmap.certificate.server.cn') + '"'}}

lnse.ose.istio.egress.secman.pki.storage.path

Полный URL до монтирования secret engine для tls.crt для шлюза egress. Рекомендованное значение — {{'"' + lookup('custom_vars', 'lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars', 'global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars', 'lnse.ose.istio.egress.secman.pki.secretName') + '" "common_name=' + lookup('custom_vars', 'lnse.ose.configmap.certificate.client.cn') + '"'}}

lnse.ose.istio.egress.secman.pki.secretName

Наименование роли PKI-движка для выпуска сертификата tls.crt для шлюза egress в SecMan. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.cert.client.secretName') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.secman.pki.secretName

Наименование роли PKI-движка для выпуска сертификата tls.crt для шлюза ingress в SecMan. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.cert.server.secretName') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.secret-volume-path-keystore.jks

Путь к volume с секретом keystore.jks в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-secret-keystore.jks

Путь до секрета с именем keystore.jks в Secman. Если используется шаблонизация, то в параметре устанавливается значение true. Рекомендованное значение — true

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-keystore.jks.engineMountPath

Полный URL до монтирования secret engine для keystore.jks. Рекомендованное значение — {{ lookup('custom_vars', 'lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') }}{{ lookup('custom_vars', 'global.platform.annotations.hashicorp.engine.pki.name') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-keystore.jks.secretName

Наименование роли PKI-движка для выпуска сертификата keystore.jks в SecMan. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.cert.client.secretName') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.secret-volume-path-truststore.jks

Путь к volume с секретом truststore.jks в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-secret-truststore.jks

Путь до секрета с именем truststore.jks в Secman. Если используется шаблонизация, то в параметре устанавливается значение true. Рекомендованное значение — true

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-truststore.jks.secretName

Имя секрета truststore.jks в SecMan. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.cert.client.secretName') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge

Включение функциональности журналирования vault-agent. Log-destination = loge. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.log-destination-loge',default='true') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-log-path

Определяет путь к папке для лог-файлов c с log-destination = loge — создается emptyDir и монтируется по указанному пути. Рекомендованное значение — /var/log/audit/vault

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-log-path

Определяет путь к папке для лог-файлов c с log-destination = loge для шлюзов Ingress и Egress — создается emptyDir и монтируется по указанному пути. Рекомендованное значение — /var/log/audit/vault

dictionary.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-file

Имя лог-файла с log-destination = loge. Рекомендованное значение — agent.log

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-file

Имя лог-файла с log-destination = loge для шлюзов Ingress и Egress. Рекомендованное значение — agent.log

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-log-container

Имя контейнера в который монтируется объект типа emptyDir по пути, указанному в параметре log-path(по этому же пути emptyDir монтируется в контейнер vault agent). Рекомендованное значение — ulogger-sidecar

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-rotate

Период ротации лог-файлов с log-destination = loge. Рекомендованное значение — 3

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-max-size

Максимальный размер лог-файла с log-destination = loge. Рекомендованное значение — 5mb

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-level

Уровень логировния VaultAgent с выводом в stdout (консоль). Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.log-destination-loge-log-level', default='info') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-log-level

Уровень логирования VaultAgent с log-destination = loge. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.annotations.hashicorp.log-destination-loge-log-level', default='warn') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-format

Формат записи лог-сообщений c log-destination = stdout (консоль). Рекомендованное значение — standard

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.log-destination-loge-format

Формат записи лог-сообщений с log-destination = loge. Рекомендованное значение — loge

lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-custom-listener

Хост и порт endpoint для сбора метрик мониторинга vault-agent внутри pod. Рекомендованное значение — 0.0.0.0:8100

lnse.ulogger.sidecar.securityContext.runAsUser

Настройка securityContext контейнеров. Идентификатор непривилегированного пользователя. Рекомендованное значение — 10001

lnse.ulogger.sidecar.securityContext.runAsGroup

Настройка securityContext контейнеров. Идентификатор непривилегированной группы. Рекомендованное значение — 10001

lnse.ulogger.sidecar.securityContext.fsGroup

Настройка securityContext контейнеров. Идентификатор непривилегированной группы указанной в образе. Рекомендованное значение — 10001

dictionary-secman.yaml

secman.txt

Список файлов с секретами, доставку которых прикладные pod LNSE будут ожидать перед своим стартом

dictionary.istio.all.conf

lnse.ose.istio.egress.common.vault.passthrough

Использование egress протокола HTTPS в режиме passthrough (пропуск трафика в зашифрованном виде). Рекомендованное значение — true

Параметры интеграции с 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.

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;

POLM#

POLM служит для автоматизированной рассылки конфигураций политик управления трафиком, политик безопасности и прочих управляющих команд для IGEG и SVPX.

Параметры интеграции с POLM устанавливаются путем определения их значений в файле \conf\config\parameters\dictionary.istio.all.conf дистрибутива конфигурации развертывания LNSE.

Общие параметры для интеграции с компонентами SSM#

Параметр

Описание

dictionary.k8s.namespace

Namespace компонента. Значение — {{ lookup('custom_vars', 'global.multiClusters.openshiftProjectName') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.control-plane-project

Параметр для настройки ConfigMap cm-istio-basic discoveryAddress и элемента развертывания app.kubernetes.io/instance. Значение — {{ global.ufs.synapse.controlPlane.project }}. Значение переменной устанавливается в файле репозитория Сommon

dictionary.ose.istio.envoy-image

Образ для настройки ingress/egress. Рекомендованное значение — {{ global.ufs.synapse.envoy.image }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.ingress.common.internal-port

Внутренний порт для ingress. Рекомендованное значение — 11443

dictionary.ose.istio.ingress.route.metadata.annotations.io.timeout

Время, в течение которого High Availability Proxy будет ожидать ответа на запрос, измеряется в миллисекундах. High Availability Proxy — это открытый балансировщик нагрузки TCP/HTTP и прокси-сервер, он позволяет улучшить производительность и ошибкоустойчивость серверного окружения путем распределения рабочей нагрузки между несколькими серверами, например, между веб-сервером, сервером баз данных и сервером приложений. Рекомендованное значение — 1800000ms

dictionary.ose.istio.egress.common.internal-port

Внутренний порт для egress. Рекомендованное значение — {{ global.ose.platform.egress.http.port }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.egress.se.tcp.kafka.number

Порт для обращения через egress к Kafka. Рекомендованное значение — {{ global.platform.ose.kafka.ports }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.egress.deployment.spec.strategy.rollingUpdate.maxUnavailable

Максимальное количество pod egress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — {{ global.ufs.strategy.maxUnavailable }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.egress.deployment.spec.strategy.rollingUpdate.maxSurge

Максимальное количество pod egress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — {{ global.ufs.strategy.maxSurge }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.ingress.deployment.spec.strategy.rollingUpdate.maxUnavailable

Максимальное количество pod ingress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — {{ global.ufs.strategy.maxUnavailable }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.ingress.deployment.spec.strategy.rollingUpdate.maxSurge

Максимальное количество pod ingress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — {{ global.ufs.strategy.maxSurge }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.envoy_filter.regex_match.client.cn

Клиентский CN, для которого разрешен вызов. Рекомендованное значение — ${global.ufs.istio.ingress.envoy_filter.regex_match.client.cn}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.egress.deployment.spec.template.spec.terminationGracePeriodSeconds

Время принудительного завершения процесса после начала остановки pod egress. Рекомендованное значение — {{ global.ufs.terminationGracePeriodSeconds }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.ingress.deployment.spec.template.spec.terminationGracePeriodSeconds

Время принудительного завершения процесса после начала остановки pod ingress. Рекомендованное значение — {{ global.ufs.terminationGracePeriodSeconds }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.openshiftControlPlaneIstiodService

Адрес сервиса istiod Control Plane. Рекомендованное значение — {{ global.multiClusters.openshiftControlPlaneIstiodService }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.istio.egress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key

Метка podAntiAffinity egress. Рекомендованное значение — app

dictionary.ose.istio.egress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.value

Значение метки podAntiAffinity egress. Рекомендованное значение — istio-egressgateway-dictionary-unver

dictionary.ose.istio.ingress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key

Метка podAntiAffinity ingress. Рекомендованное значение — app

dictionary.ose.istio.ingress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.value

Значение метки podAntiAffinity ingress. Рекомендованное значение — istio-ingressgateway-dictionary-unver

lnse.ose.istio.egress.common.vault.passthrough

Использование egress протокола HTTPS в режиме passthrough (пропуск трафика в зашифрованном виде). Рекомендованное значение — true

lnse.ose.istio.ingress.route.spec.host.https.appFQDN

FQDN сервиса. Рекомендованное значение — lnse-{{ lookup('custom_vars', 'distrib.release.version') }}-{{ lookup('custom_vars', 'global.multiClusters.openshiftNewRoute') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.deployment.spec.revisionHistoryLimit

Максимальное количество ReplicaSet для Deployment или ReplicationController для DeploymentConfig (Количество старых наборов реплик для отката). Рекомендованное значение — 1

lnse.ose.istio.envoy.proxyLogLevel

Уровень логирования Envoy Ingress Gateway, Egress Gateway. Рекомендованное значение — info

lnse.ose.istio.envoy.proxyComponentLogLevel

Уровень логирования pilot-agent Ingress Gateway, Egress Gateway. Рекомендованное значение — info

lnse.ose.istio.log-path

Путь к лог-файлу. Рекомендованное значение — /var/logs

lnse.ose.istio.control-plane-project

Наименования проекта Control plane. Рекомендованное значение — ${global.multiClusters.openshiftControlPlaneProject}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.control-plane-istiod-service

Адрес сервиса istiod Control Plane. Рекомендованное значение — {{ global.multiClusters.openshiftControlPlaneIstiodService }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.control-plane-istiod-port

Порт сервиса istiod Control Plane. Рекомендованное значение — ${global.multiClusters.openshiftControlPlaneIstiodPort}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.pilot-agent.logging-level

Уровень логирования pilot-agent для Ingress Gateway, Egress Gateway. Рекомендованное значение — default:{{ lookup('custom_vars', 'global.platform.istio.envoy.logging-level', default='error') }}

lnse.ose.istio.pilot-agent.logs-file

Имя лог-файла pilot-agent для Ingress Gateway, Egress Gateway. Рекомендованное значение — pilot-agent_logs.log

lnse.ose.istio.envoy.logging-level

Уровень логирования для Ingress Gateway, Egress Gateway. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.istio.envoy.logging-level', default='error') }}

lnse.ose.istio.envoy.logs-file

Имя лог-файла Ingress Gateway, Egress Gateway. Рекомендованное значение — envoy_logs.log

lnse.ose.istio.access-logs-file

Имя лог-файла с access_logs pilot-agent для Ingress Gateway, Egress Gateway. Рекомендованное значение — access_logs.log

lnse.ose.istio.log-rotate-max-size

Раз в минуту pilot-agent проверяет размеры указанных ротируемых файлов и копирует их содержимое в новый файл с именем в формате -., очищая исходный файл. Целое число в МБ. Рекомендованное значение — 5

lnse.ose.istio.log-rotate-max-backups

Число бэкап-файлов, сохраняющихся при ротации. 0 — не удалять файлы. Целое число. Рекомендованное значение — 5

lnse.ose.istio.log-rotate-max-age

Число дней, которое хранятся файлы бэкапов. Целое число. Рекомендованное значение — 30

lnse.ose.istio.ingress.deployment.spec.template.spec.terminationGracePeriodSeconds

Предсказуемое окончание работы, когда все запущенные процессы корректно завершают работу без потери данных или негативного пользовательского опыта. Рекомендованное значение — ${global.ufs.terminationGracePeriodSeconds}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.feature.SelfAntiAffinity.enabled

Включение распределения экземпляров компонента по разным нодам среды исполнения для каждого компонента. Рекомендованное значение — ${global.feature.SelfAntiAffinity.enabled}

lnse.ose.istio.ingress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key

Метка podAntiAffinity ingress. Рекомендованное значение — app

lnse.ose.istio.ingress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.value

Значение метки podAntiAffinity ingress. Рекомендованное значение — {{ lookup('custom_vars', 'agent.ose.istio.all.common.ingressAppSelector', default='istio-ingressgateway-dictionary-unver') }}

lnse.ose.istio.egress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.key

Метка podAntiAffinity egress. Рекомендованное значение — app

lnse.ose.istio.egress.deployment.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution.labelSelector.matchExpressions.value

Значение метки podAntiAffinity egress. Рекомендованное значение — {{ lookup('custom_vars', 'agent.ose.istio.all.common.egressAppSelector', default='istio-egressgateway-dictionary-unver') }}

lnse.ose.istio.ingress.deployment.spec.strategy.rollingUpdate.maxUnavailable

Максимальное количество pod egress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — {{ global.ufs.strategy.maxUnavailable }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.deployment.spec.strategy.rollingUpdate.maxSurge

Максимальное количество pod ingress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — {{ global.ufs.strategy.maxSurge }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.deployment.spec.template.spec.terminationGracePeriodSeconds

Время принудительного завершения процесса после начала остановки pod ingress, рекомендованное значение — {{ global.ufs.terminationGracePeriodSeconds }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.deployment.spec.revisionHistoryLimit

Максимальное количество ReplicaSet для Deployment или ReplicationController для DeploymentConfig (Количество старых наборов реплик для отката). Рекомендованное значение — 0

lnse.ose.istio.egress.deployment.spec.strategy.rollingUpdate.maxUnavailable

Максимальное количество pod egress, которые могут быть недоступны в процессе обновления. Рекомендованное значение — {{ global.ufs.strategy.maxUnavailable }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.egress.deployment.spec.strategy.rollingUpdate.maxSurge

Максимальное количество pod egress, которые могут быть запланированы сверх исходного количества. Рекомендованное значение — {{ global.ufs.strategy.maxSurge }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.egress.deployment.spec.revisionHistoryLimit

Максимальное количество ReplicaSet для Deployment или ReplicationController для DeploymentConfig (Количество старых наборов реплик для отката). Рекомендованное значение — 0

lnse.ose.istio.egress.deployment.spec.template.spec.terminationGracePeriodSeconds

Время принудительного завершения процесса после начала остановки pod egress. Рекомендованное значение — {{ global.ufs.terminationGracePeriodSeconds }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.proxy-admin-port

Порт встроенного интрефейса администрирования egress и ingress. Рекомендованное значение — 15000

agent.ose.istio.all.common.egressAppSelector

Метка endpoint egress. Рекомендованное значение — egw-{{ fpConfig.fpi_name }}-{{ lookup('custom_vars','distrib.release.version') }}_{{ NODE_PATH }}

agent.ose.istio.all.common.egressIstioSelector

Метка endpoint egress. Рекомендованное значение — egw-{{ fpConfig.fpi_name }}-{{ lookup('custom_vars','distrib.release.version') }}_{{ NODE_PATH }}

agent.ose.istio.all.common.ingressAppSelector

Метка endpoint ingress. Рекомендованное значение — igw-{{ fpConfig.Vi_name }}-{{ lookup('custom_vars','distrib.release.version') }}_{{ NODE_PATH }}

agent.ose.istio.all.common.ingressIstioSelector

Метка endpoint ingress. Рекомендованное значение — igw-{{ fpConfig.fpi_name }}-{{ lookup('custom_vars','distrib.release.version') }}_{{ NODE_PATH }}

lnse.ose.istio.control-plane-jaeger-service

Адрес сервиса jaeger Control Plane. Рекомендованное значение — ${global.multiClusters.openshiftControlPlaneJaegerService}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.control-plane-jaeger-port

Порт сервиса jaeger Control Plane. Рекомендованное значение — ${global.multiClusters.openshiftControlPlaneJaegerPort}. Значение переменной устанавливается в файле репозитория Common

dictionary.platform.iam.auth.host

Настройка внешнего взаимодействия посредством Istio с провайдером аутентфикации — адрес IAM. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.auth.host')&#124default('') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.platform.iam.auth.port

Настройка внешнего взаимодействия посредством Istio с провайдером аутентфикации — порт IAM. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.auth.port')&#124default('') }}. Значение переменной устанавливается в файле репозитория Common

lnse.ose.istio.ingress.route.metadata.annotations.io.timeout

Время, в течение которого High Availability Proxy будет ожидать ответа на запрос, измеряется в миллисекундах (High Availability Proxy – это открытый балансировщик нагрузки TCP/HTTP и прокси-сервер, он позволяет улучшить производительность и ошибкоустойчивость серверного окружения путем распределения рабочей нагрузки между несколькими серверами, например, между веб-сервером, сервером баз данных и сервером приложений). Рекомендованное значение — 180000ms

lnse.ose.istio.ingress.common.internal-port

Внутренний порт для ingress. Рекомендованное значение — 11443

dictionary.ose.istio.ingress.iag.default.route

Маршрутизация между релизами для возможности «горячего отката» в рамках пилотирования DropApp [dropapp&#124ocp]. Рекомендованное значение — {{lookup('custom_vars','global.platform.iag.default.route',default='dropapp')}}. Значение переменной устанавливается в файле репозитория Common

dictionary.distrib.version.prev

Версия предыдущего релиза, необходима для отката в случае проблем при раскатке. Рекомендованное значение — r462

dictionary.current.distrib.version

Версия текущего релиза. Рекомендованное значение — {{ lookup('custom_vars', 'distrib.release.version') }}

dictionary.ose.istio.ingress.route.spec.host.https.appFQDN

Путь для обращения к приложению (route). Рекомендованное значение — dictionary-{{ lookup('custom_vars', 'distrib.release.version') }}-{{ lookup('custom_vars', 'global.multiClusters.openshiftNewRoute') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.ose.fqdn.iag.distrib.version

Версия релиза LNSE в формате для IAGW. Рекомендованное значение — {{ lookup('custom_vars', 'dictionary.distrib.version.prev') if (lookup('custom_vars', 'dictionary.ose.istio.ingress.iag.default.route')&#124replace('!', '')&#124lower == 'ocp') else lookup('custom_vars', 'dictionary.current.distrib.version') }}. Значения переменных устанавливаются в файлах репозитория Сommon

dictionary.ose.istio.ingress.route.spec.host.https.iag.appFQDN

Fqdn для IAGW. Рекомендованное значение — dictionary-{{ lookup('custom_vars', 'dictionary.ose.fqdn.iag.distrib.version') }}-{{ lookup('custom_vars', 'global.multiClusters.openshiftNewRoute') }}. Значения переменных устанавливаются в файлах репозитория Common

dictionary.k8s.istio.ingress.kind.ingress.annotations.class

Тип прокси Ingress-контроллера (nginx/haproxy). Рекомендованное значение — {{ lookup('custom_vars','global.platform.k8s.ingress-proxy.class', default='nginx') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.nginx.ingress.k8s.proxy-read-timeout

Тайм-аут при чтении ответа проксированного сервера. Тайм-аут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени проксируемый сервер ничего не передаст, соединение закрывается. Рекомендованное значение — 60000ms

dictionary.nginx.ingress.k8s.proxy-connect-timeout

Тайм-аут для установления соединения с проксированным сервером. Рекомендованное значение — 60000ms

dictionary.nginx.ingress.k8s.proxy-send-timeout

Тайм-аут при передаче запроса проксированному серверу. Рекомендованное значение — 60000ms

dictionary.haproxy-ingress.github.io.timeout-client

Тайм-аут запроса проксированного сервера. Рекомендованное значение — 180000ms

lnse.ufs.monitoring.service.prometheus.io.port

Порт подключения к HTTP endpoint с метриками мониторинга. Рекомендованное значение — 8083

lnse.ose.deployment.spec.template.spec.containers.all.imagePullPolicy

Правило извлечения образов из реестров контейнеров: Always, IfNotPresent, Never. Рекомендованное значение — IfNotPresent

lnse.platform.logger.http.host

Хост logger. Рекомендованное значение — {{lookup('custom_vars','global.platform.sgw.route.log.host')}}

lnse.ose.configmap.istio.data.mesh.outboundTrafficPolicy.mode

Правило по обработке неизвестного исходящего трафика от приложения: REGISTRY_ONLY, ALLOW_ANY. Рекомендованное значение — REGISTRY_ONLY

lnse.ose.deployment.spec.template.spec.containers.projected.sources.serviceAccountToken.expirationSeconds

Период ротации токена сервисного аккаунта. Рекомендованное значение — {{lookup('custom_vars','global.serviceAccountToken.expirationSeconds', default='1000')}}

lnse.ose.istio.istiod.name

Адрес сервиса istiod Control Plane. Рекомендованное значение — {{lookup('custom_vars','global.multiClusters.openshiftControlPlaneIstiodService',default='istiod-basic')}}

lnse.ose.istio.egress.common.internal-port

Адрес порта egress. Рекомендованное значение — {{lookup('custom_vars','global.ose.platform.egress.http.port')}}

lnse.ose.istio.egress.common.secman.tls.port

Внутренний порт SSM, через который проходит трафик внутри mesh. Рекомендованное значение — {{lookup('custom_vars','global.platform.egress.hashicorp.tls.port',default='8550')}}

lnse.ose.istio.ingress.secman.pki.storage.path

Путь к PKI хранилищу SecMan. Рекомендованное значение — {{'"' + lookup('custom_vars','lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars','global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars','lnse.ose.istio.ingress.secman.pki.secretName') + '" "common_name=' + lookup('custom_vars','lnse.ose.configmap.certificate.server.cn') + '"'}}

lnse.ose.istio.ingress.deployment.spec.replicas

Максимальное количество ReplicaSet для Deployment или ReplicationController для DeploymentConfig ingress (Количество старых наборов реплик для отката). Рекомендованное значение — {{lookup('custom_vars','dictionary.ose.istio.ingress.deployment.spec.replicas')}}

lnse.ose.istio.ingress.deployment.spec.template.spec.terminationDrainDurationSeconds

Время ожидания перед отключением Istio для возможности корректно завершить все установленные соединения. Рекомендованное значение — 45

lnse.ose.istio.ingress.poddisruptionbudget.enabled

Включение механизма контроля количества Pod приложения, которые могут быть недоступны в момент времени. Рекомендованное значение — true

lnse.ose.istio.ingress.poddisruptionbudget.spec.minAvailable

Настройки PodDisruptionBudget. Минимальное количество pod ingress, которые должны быть доступны одновременно. Рекомендованное значение —

lnse.ose.istio.ingress.deployment.spec.template.spec.containers.proxy.readinessProbe.initialDelaySeconds

Количество секунд от старта контейнера до начала readiness проб. Минимальное значение 0. Рекомендованное значение — 3

lnse.ose.istio.ingress.deployment.spec.template.spec.containers.proxy.readinessProbe.timeoutSeconds

Количество секунд ожидания пробы. Минимальное значение 1. Рекомендованное значение — 1

lnse.ose.istio.ingress.deployment.spec.template.spec.containers.proxy.readinessProbe.periodSeconds

Длительность времени (в секундах) между двумя последовательными проведениями проб. Минимальное значение 1. Рекомендованное значение — 2

lnse.ose.istio.ingress.deployment.spec.template.spec.containers.proxy.readinessProbe.successThreshold

Минимальное количество последовательных проверок, чтобы проба считалась успешной после неудачной. Рекомендованное значение — 1

lnse.ose.istio.ingress.deployment.spec.template.spec.containers.proxy.readinessProbe.failureThreshold

Количество попыток получения readiness пробы. Рекомендованное значение — 5

lnse.ose.istio.ingress.securityContext.fsGroup

Настройка securityContext контейнеров ingress. Идентификатор непривилегированной группы указанной в образе. Рекомендованное значение — 10001

lnse.ose.istio.ingress.securityContext.runAsGroup

Настройка securityContext контейнеров ingress. Идентификатор непривилегированной группы. Рекомендованное значение — 10001

lnse.ose.istio.ingress.securityContext.runAsUser

Настройка securityContext контейнеров ingress. Идентификатор непривилегированного пользователя. Рекомендованное значение — 10001

lnse.ose.istio.egress.secman.pki.storage.path

Путь к PKI хранилищу SecMan. Рекомендованное значение — {{'"' + lookup('custom_vars','lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars','global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars','lnse.ose.istio.egress.secman.pki.secretName') + '" "common_name=' + lookup('custom_vars','lnse.ose.configmap.certificate.client.cn') + '"'}}

lnse.ose.istio.egress.deployment.spec.template.spec.terminationDrainDurationSeconds

Время ожидания перед отключением Istio, для возможности корректно завершить все установленные соединения. Значение — 45

lnse.ose.istio.egress.feature.SelfAntiAffinity.enabled

Включение распределения экземпляров компонента по разным нодам среды исполнения для каждого компонента. Рекомендованное значение — {{lookup('custom_vars','global.feature.SelfAntiAffinity.enabled',default='true')}}

lnse.ose.istio.egress.poddisruptionbudget.enabled

Включение механизма контроля количества Pod приложения, которые могут быть недоступны в момент времени. Рекомендованное значение — true

lnse.ose.istio.egress.poddisruptionbudget.spec.minAvailable

Настройки PodDisruptionBudget. Минимальное количество pod egress, которые должны быть доступны одновременно. Рекомендованное значение — {{lookup('custom_vars','global.poddisruptionbudget.minAvailable',default='50%')}}

lnse.ose.istio.egress.deployment.spec.template.spec.containers.proxy.readinessProbe.initialDelaySeconds

Количество секунд от старта контейнера до начала readiness проб. Минимальное значение 0. Рекомендованное значение — 3

lnse.ose.istio.egress.deployment.spec.template.spec.containers.proxy.readinessProbe.timeoutSeconds

Количество секунд ожидания пробы. Минимальное значение 1. Рекомендованное значение — 1

lnse.ose.istio.egress.deployment.spec.template.spec.containers.proxy.readinessProbe.periodSeconds

Длительность времени (в секундах) между двумя последовательными проведениями проб. Минимальное значение 1. Рекомендованное значение — 2

lnse.ose.istio.egress.deployment.spec.template.spec.containers.proxy.readinessProbe.successThreshold

Минимальное количество последовательных проверок, чтобы проба считалась успешной после неудачной. Рекомендованное значение — 1

lnse.ose.istio.egress.deployment.spec.template.spec.containers.proxy.readinessProbe.failureThreshold

Количество попыток получения readiness пробы. Рекомендованное значение — 5

lnse.ose.istio.egress.securityContext.fsGroup

Настройка securityContext контейнеров egress. Идентификатор непривилегированной группы указанной в образе. Рекомендованное значение — 10001

lnse.ose.istio.egress.securityContext.runAsGroup

Настройка securityContext контейнеров egress. Идентификатор непривилегированной группы. Рекомендованное значение — 10001

lnse.ose.istio.egress.securityContext.runAsUser

Настройка securityContext контейнеров egress. Идентификатор непривилегированного пользователя. Рекомендованное значение — 10001

lnse.ose.istio.ingress.main.route.spec.host.https.appFQDN

Путь для обращения к приложению (route). Рекомендованное значение — dictionary-{{ lookup('custom_vars', 'dictionary.ose.fqdn.iag.distrib.version') }}-{{ lookup('custom_vars', 'global.multiClusters.openshiftNewRoute') }}

lnse.ose.istio.ingress.main.common.internal-port

Внутренний порт для ingress. Рекомендованное значение — 11443

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.class

Тип прокси Ingress-контроллера (nginx/haproxy). Рекомендованное значение — {{lookup('custom_vars','global.platform.k8s.ingress-proxy.class',default='nginx')}}

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.balance-algorithm

Алгоритм балансировки нагрузки. Рекомендованное значение — roundrobin

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.ssl-passthrough

Прием SSL-трафика без его терминации на Ingress. Рекомендованное значение — true

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.timeout-client

Тайм-аут запроса проксированного сервера. Рекомендованное значение — 60000ms

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.read-timeout

Тайм-аут при чтении ответа проксированного сервера. Тайм-аут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени проксируемый сервер ничего не передаст, соединение закрывается. Рекомендованное значение — 60000ms

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.connect-timeout

Тайм-аут для установления соединения с проксированным сервером. Рекомендованное значение — 60000ms

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.send-timeout

Тайм-аут при передаче запроса проксированному серверу. Рекомендованное значение — 60000ms

lnse.ose.istio.ingress.main.route.metadata.annotations.proxy.force-ssl-redirect

Включение механизма перенаправления подключенного по HTTP пользователя на тот же URL с HTTPS. Рекомендованное значение — true

lnse.ose.istio.ingress.main.envoy_filter.regex_match.client.cn

Клиентский CN, для которого разрешен вызов. Рекомендованное значение — {{lookup('custom_vars','global.ufs.istio.ingress.envoy_filter.regex_match.client.cn')}}&#124lnse.ose.istio.ingress.main.envoy_filter.regex_match.min_program_size=100 ограничения размера программы регулярных выражений re2

lnse.ose.istio.main.load.ingress.dsr.spec.trafficPolicy.outlierDetection.baseEjectionTime

Параметр circuit breaker. Максимальная продолжительность извлечения для pod из пула балансировки нагрузки. Рекомендованное значение — 1s

lnse.ose.istio.main.load.ingress.dsr.spec.trafficPolicy.outlierDetection.consecutive5xxErrors

Количество ошибок до того, как pod будет удален из пула. Применяются все ошибки 5ХХ. Рекомендованное значение — 0

lnse.ose.istio.main.load.ingress.dsr.spec.trafficPolicy.outlierDetection.interval

Интервал времени для анализа. Например, сервисы проверяются каждые 10 секунд, после истечения указанного времени подсчет ошибок начнется с 0. Рекомендованное значение — 1s

lnse.ose.istio.main.load.ingress.dsr.spec.trafficPolicy.outlierDetection.maxEjectionPercent

Максимальный процент pod, которые могут быть извлечены из пула балансировки нагрузки. Рекомендованное значение — 0

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.outlierDetection.baseEjectionTime

Параметр circuit breaker. Максимальная продолжительность извлечения для pod из пула балансировки нагрузки. Рекомендованное значение — 1s

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.outlierDetection.consecutive5xxErrors

Количество ошибок до того, как pod будет удален из пула. Применяются все ошибки 5ХХ. Рекомендованное значение — 0

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.outlierDetection.interval

Интервал времени для анализа. Например, сервисы проверяются каждые 10 секунд, после истечения указанного времени подсчет ошибок начнется с 0. Рекомендованное значение — 1s

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.outlierDetection.maxEjectionPercent

Максимальный процент pod, которые могут быть извлечены из пула балансировки нагрузки. Рекомендованное значение — 0

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.loadBalancer.consistentHash.httpCookie.name

Настройки липкой сессии SUSD к узлам сервиса-потребителя. Имя cookie, которая используется в алгоритме балансировки consistentHash. Рекомендованное значение — UFS-SESSION

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.loadBalancer.consistentHash.httpCookie.path

Настройки липкой сессии SUSD к узлам сервиса-потребителя. URL-адрес, к которому применяется cookie. Рекомендованное значение — /sds-sticky-session/nonexistent-path

lnse.ose.istio.main.manage.ingress.dsr.spec.trafficPolicy.loadBalancer.consistentHash.httpCookie.ttl

Настройки липкой сессии SUSD к узлам сервиса-потребителя. TTL cookie, которая используется в алгоритме балансировки consistentHash. Рекомендованное значение — 0s

lnse.ose.istio.main.service.ingress.dsr.spec.trafficPolicy.outlierDetection.baseEjectionTime

Параметр circuit breaker. Максимальная продолжительность извлечения для pod из пула балансировки нагрузки. Рекомендованное значение — 1

lnse.ose.istio.main.service.ingress.dsr.spec.trafficPolicy.outlierDetection.consecutive5xxErrors

Количество ошибок до того, как под будет удален из пула. Применяются все ошибки 5ХХ. Рекомендованное значение — 0

lnse.ose.istio.main.service.ingress.dsr.spec.trafficPolicy.outlierDetection.interval

Интервал времени для анализа. Например, сервисы проверяются каждые 10 секунд, после истечения указанного времени подсчет ошибок начнется с 0. Рекомендованное значение — 1s

lnse.ose.istio.main.service.ingress.dsr.spec.trafficPolicy.outlierDetection.maxEjectionPercent

Максимальный процент подов, которые могут быть извлечены из пула балансировки нагрузки. Рекомендованное значение — 0

lnse.ose.istio.ingress.secmn.pki.secretName

Наименование роли PKI движка SecMan для серверного сертификата (используется для ingress). Рекомендованное значение — {{lookup('custom_vars','global.platform.annotations.hashicorp.cert.server.secretName')}}

lnse.ose.istio.egress.secman.pki.secretName

Наименование роли PKI движка для клиентского сертификата (используется для egress). Рекомендованное значение — {{lookup('custom_vars','global.platform.annotations.hashicorp.cert.client.secretName')}}

lnse.ose.configmap.certificate.server.cn

CN серверного сертификата для компонента. Используется в ingress. Значение должно совпадать с наименованием route. Рекомендованное значение — {{lookup('custom_vars','lnse.ose.istio.ingress.main.route.spec.host.https.appFQDN')}}

lnse.ose.configmap.certificate.client.cn

CN клиентского сертификата для компонента. Используется в egress и app. Рекомендованное значение — {{lookup('custom_vars','global.platform.cert.client.cn',default=fpConfig.fpi_name + '.' + lookup('custom_vars','global.platform.certificate.allowed_domain',default="solution.sbt"))}}

lnse.ose.istio.egress.db.dict.hosts

Список серверов БД. Значение — {{lookup('custom_vars', 'jdbc.lnse_postgres.servers', default='')}}

lnse.ose.istio.egress.tls.audit2.host

Хост прокси приложения AUDT. Значение — {{lookup('custom_vars', 'global.platform.audit2.host', default='')}}

lnse.ose.istio.egress.tls.audit2.port

Порт для подключения к AUDT. Значение — {{lookup('custom_vars', 'global.platform.audit2.port', default='')}}

lnse.ose.istio.egress.tls.audit2.protocol

Протокол безопасности, по которому происходит подключение к AUDT. Значение — {{lookup('custom_vars', 'global.platform.audit2.protocol', default='HTTPS')}}

lnse.ose.istio.egress.tls.audit2.mode

Способ tls-подключения к AUDT: DISABLED (по HTTP без авторизации) либо MUTUAL (с использованием сертификатов). Значение — MUTUAL

lnse.ose.istio.egress.tls.audit2.resolution

Способ разрешения имени хоста AUDT. Значение — DNS

lnse.ose.istio.egress.tls.audit2.vs.spec.http.retries.attempts

RetryPolicy. Количество повторных попыток, при неуспешном исходящем вызове AUDT. Значение — 1

lnse.ose.istio.egress.tls.audit2.vs.spec.http.retries.retryOn

RetryPolicy. Условия при которых идет инициация повторных попыток исходящего вызова AUDT. Перечень условий должны быть написаны через запятую и без пробелов. Значение — retriable-status-codes

lnse.ose.istio.egress.tls.audit2.vs.spec.http.timeout

HTTP тайм-аут для исходящего вызова AUDT. Значение — 30s

lnse.ose.istio.egress.tls.public-key-locations.vs.spec.http.retries.attempts

RetryPolicy. Количество повторных попыток, при неуспешном запросе.Значение — 1

lnse.ose.istio.egress.tls.public-key-locations.vs.spec.http.retries.retryOn

RetryPolicy. Условия при которых идет инициация повторных попыток. Перечень условий должны быть написаны через запятую и без пробелов. Значение — retriable-status-codes

lnse.ose.istio.egress.tls.vault.vs.spec.http.retries.attempts

RetryPolicy. Количество повторных попыток, при неуспешном запросе в .Значение — 1

lnse.ose.istio.egress.tls.vault.vs.spec.http.retries.retryOn

RetryPolicy. Условия при которых идет инициация повторных попыток. Перечень условий должны быть написаны через запятую и без пробелов. Значение — retriable-status-codes

lnse.loge.kafka.enabled

Включение/отключение подключения к Kafka LOGE. Значение — true

lnse.loge.kafka.bootstrap.servers

Строка подключения к boostrap серверам кластера Kafka LOGE. Значение — {{ lookup("custom_vars", "global.platform.logger.kafka.servers") }}

lnse.loge.kafka.tls.caCertificates

Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka LOGE. Значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.loge.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka LOGE. Значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.loge.kafka.tls.privateKey

Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka LOGE. Значение — /lnse/etc/istio/egressgateway-certs/tls.key

lnse.loge.kafka.internalPort

Порт для обращения к сервису для доступа к кластеру Kafka LOGE. Значение — 19092

lnse.loge.kafka.internalService

Имя сервиса для доступа к кластеру Kafka LOGE. Значение — lnse-loge-egress-kafka-svc-{{distrib.release.version}}

lnse.loga.kafka.enabled

Включение/отключение подключения к Kafka LOGA. Значение — true

lnse.loga.kafka.bootstrap.servers

Строка подключения к boostrap серверам кластера Kafka LOGA. Значение — {{ lookup("custom_vars", "global.platform.loga.kafka.servers") }}

lnse.loga.kafka.tls.caCertificates

Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka LOGA. Значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.loga.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka LOGA. Значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.loga.kafka.tls.privateKey

Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka LOGA. Значение — /lnse/etc/istio/egressgateway-certs/tls.key

lnse.loga.kafka.internalPort

Порт для обращения к сервису для доступа к кластеру Kafka LOGA. Значение — 19093

lnse.loga.kafka.internalService

Имя сервиса для доступа к кластеру Kafka LOGA. Значение — lnse-loga-egress-kafka-svc-{{distrib.release.version}}

lnse.logsys.kafka.enabled

Включение/отключение подключения к Kafka Logsys. Значение — true

lnse.logsys.kafka.bootstrap.servers

Строка подключения к boostrap серверам кластера Kafka Logsys. Значение — {{ lookup("custom_vars", "global.platform.logsys.kafka.servers") }}

lnse.logsys.kafka.tls.caCertificates

Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka Logsys. Значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.logsys.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka Logsys. Значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.logsys.kafka.tls.privateKey

Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka Logsys. Значение — /lnse/etc/istio/egressgateway-certs/tls.key

lnse.logsys.kafka.internalPort

Порт для обращения к сервису для доступа к кластеру Kafka Logsys. Значение — 19094

lnse.logsys.kafka.internalService

Имя сервиса для доступа к кластеру Kafka Logsys. Значение — lnse-logsys-egress-kafka-svc-{{distrib.release.version}}

lnse.monsys.kafka.enabled

Включение/отключение подключения к Kafka Monsys. Значение — true

lnse.monsys.kafka.bootstrap.servers

Строка подключения к boostrap серверам кластера Kafka Monsys. Значение — {{ lookup("custom_vars", "global.platform.monsys.kafka.servers") }}

lnse.monsys.kafka.tls.caCertificates

Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka Monsys. Значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.monsys.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka Monsys. Значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.monsys.kafka.tls.privateKey

Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka Monsys. Значение — /lnse/etc/istio/egressgateway-certs/tls.key

lnse.monsys.kafka.internalPort

Порт для обращения к сервису для доступа к кластеру Kafka Monsys. Значение — 19095

lnse.monsys.kafka.internalService

Имя сервиса для доступа к кластеру Kafka Monsys. Значение — lnse-monsys-egress-kafka-svc-{{distrib.release.version}}

lnse.platform.kafka.enabled

Включение/отключение подключения к Kafka Platform. Значение — true

lnse.platform.kafka.bootstrap.servers

Строка подключения к boostrap серверам кластера Kafka Platform. Значение — lookup("custom_vars", "global.platform.kafka.servers") }}

lnse.platform.kafka.tls.caCertificates

Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka Platform. Значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.platform.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka Platform. Значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.platform.kafka.tls.privateKey

Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka Platform. Значение — /lnse/etc/istio/egressgateway-certs/tls.key

lnse.platform.kafka.internalPort

Порт для обращения к сервису для доступа к кластеру Kafka Platform. Значение — 19098

lnse.platform.kafka.internalService

Имя сервиса для доступа к кластеру Kafka Platform. Значение — egress-platform-kafka-svc-{{distrib.release.version}}

lnse.mone.kafka.enabled

Включение/отключение подключения к Kafka MONE. Значение — true

lnse.mone.kafka.bootstrap.servers

Строка подключения к boostrap серверам кластера Kafka MONE. Значение — {{ lookup("custom_vars", "global.platform.ufs_monitoring.kafka.servers", default="") }}

lnse.mone.kafka.tls.caCertificates

Путь доступа к CA сертификату на egress gateway. Используется при подключения к Kafka MONE. Значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.mone.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на egress gateway. Используется при подключения к Kafka MONE. Значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.mone.kafka.tls.privateKey

Путь доступа к приватному ключу на egress gateway. Используется при подключения к Kafka MONE. Значение — /lnse/etc/istio/egressgateway-certs/tls.key

lnse.mone.kafka.internalPort

Порт для обращения к сервису для доступа к кластеру Kafka MONE. Значение — 19099

lnse.mone.kafka.internalService

Имя сервиса для доступа к кластеру Kafka MONE. Значение — egress-mone-kafka-svc-{{distrib.release.version}}

Параметры интеграции с 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

Описание

dictionary.ott-sidecar.all.conf

lnse.ott.ose.deploy

Включение информационного обмена с OTTS. Рекомендованное значение — {{lookup('custom_vars','global.ott.ose_deploy',default='false')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.store.type

Тип хранилища сертификатов для OTTS. Рекомендованное значение — {{lookup('custom_vars','global.ott.store.type', default='PEM')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.service.trusted.crt.rate

Период обновления кеша сертификатов серверов OTTS, сек. Рекомендованное значение — 60

lnse.ott-sidecar.ose.istio.ott.service.url

Шаблон URL OTTS. Рекомендованное значение — {{lookup('custom_vars','global.ott.service.url',default='')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.service.hosts

Список серверов с указанием портов OTTS для балансировки нагрузки. Рекомендованное значение — {{lookup('custom_vars','global.ott.service.hosts',default='')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.grpc.port

Порт для GRPC-запросов ott-sidecar. Рекомендованное значение — {{lookup('custom_vars','global.ott.grpc.port',default='')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.http.port

Порт для HTTP-запросов ott-sidecar. Рекомендованное значение — 8090

lnse.ott-sidecar.kafka.security.protocol

Протокол, по которому происходит подключение к Kafka. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.security.protocol') }}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.start.wait

Время задержки страта ott-sidecar. Рекомендованное значение — 15000

lnse.ott-sidecar.ose.istio.ott.client.mmt.compatibility.mode

Режим совместимости с ММТ 3 поколения. Рекомендованное значение — false

lnse.ott-sidecar.ose.istio.ott.authz.realm

Область авторизации OTTS. Рекомендованное значение — {{lookup('custom_vars','global.ose.ott.authz.realm',default='ott')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ott.authz.version

Версия метода авторизации, рекомендованное значение — 1.0

lnse.ott-sidecar.ose.istio.ott.client.default.realm

Логическая область, автономная с точки зрения авторизации доступов к ресурсам, контролируемых в OTTS. Отвечает на авторизацию доступа к ресурсу — вызова API. Рекомендованное значение — mmt

lnse.ott-sidecar.ose.istio.ott.client.crt

Путь к клиентскому сертификату. Рекомендованное значение — /mnt/secrets/ott-lnse.crt.pem

lnse.ott-sidecar.ose.istio.ott.client.private.key

Путь к ключу клиентского сертификата. Рекомендованное значение — /mnt/secrets/ott-lnse.key.pem

lnse.ott-sidecar.ose.istio.ott.service.tls.crt

Путь к сертификату OTTS. Рекомендованное значение — /mnt/secrets/ca/ott-ca.crt.pem

lnse.ott-sidecar.ose.istio.ott.sidecar.hotreload.enabled

Включение механизма ротации секретов. Рекомендованное значение — true

lnse.ott-sidecar.ose.istio.ott.web.exposure.include

Доступные endpoint. Рекомендованное значение — health,metrics,prometheus

lnse.ott-sidecar.ose.istio.ott.anonymous.requests.enabled

Анонимный режим. Рекомендованное значение — true

lnse.ott-sidecar.ose.istio.ott.logger.keystore.type

Параметр логирования ott-sidecar. Тип хранилища сертификатов keystore. Рекомендованное значение — jks

lnse.ott-sidecar.ose.istio.ott.logger.truststore.type

Параметр логирования ott-sidecar. Тип хранилища сертификатов truststore. Рекомендованное значение — jks

lnse.ott-sidecar.ose.istio.ott.logger.key.alias

Параметр логирования ott-sidecar. Псевдоним закрытого ключа сертификата. Рекомендованное значение — private_key

lnse.ott-sidecar.ose.istio.ott.client.logger.transport.type

Параметр логирования ott-sidecar. Тип транспорта. Рекомендованное значение — KAFKA

lnse.ott-sidecar.ose.istio.ott.client.logger.secret.rate

Параметр логирования ott-sidecar. Время задержки считывания секретов. Рекомендованное значение — 3

lnse.ott-sidecar.ose.istio.ott.service.client.secret.hotreload

Включение механизма ротации секретов ott-sidecar. Рекомендованное значение — true

lnse.ott-sidecar.union-audit.CImodule

Параметр аудита ott-sidecar. Идентификатор элемента развертывания ott-sidecar. Рекомендованное значение — {{ fpConfig.artifactId + '.ott-sidecar-ufs' }}

lnse.ott-sidecar.union-audit.sourceSystem

Параметр аудита ott-sidecar. Код АС, в состав которой интегрируется LNSE. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union-audit.sourceSystem', default='FS') }}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ingress.ott.module.id,
lnse.ott-sidecar.ose.istio.egress.ott.module.id

Идентификатор компонента LNSE в OTTS с учетом регистра. Рекомендованное значение — ci00749854_efs_dictionary_{{ SEGMENT_ID&#124lower }}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ingress.configmap.vault.hashicorp.com.ott_cert.crt.cn

CN сертификата. Рекомендованное значение — {{lookup('custom_vars','lnse.ott-sidecar.ose.istio.ingress.ott.module.id')}}

lnse.ott-sidecar.ose.istio.egress.configmap.vault.hashicorp.com.ott_cert.crt.cn

CN сертификата. Рекомендованное значение — {{lookup('custom_vars','lnse.ott-sidecar.ose.istio.egress.ott.module.id')}}

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.storage.data.mq_cred,
lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.storage.data.mq_cred

Имя параметра секрета с паролем. Рекомендованное значение — .Data.passphrase

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.storage.data.mq_jks,
lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.storage.data.mq_jks

Имя параметра секрета с JKS, сгенерированным vault-agent. Рекомендованное значение — base64Decode (.Data.certificate)

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.storage.data.mq_sn,
lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.storage.data.mq_sn

Имя атрибута секрета с серийным номером. Рекомендованное значение — .Data.serial_number

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.storage.path

Путь к pki-engine в SecMan. Рекомендованное значение — {{'"' + lookup('custom_vars','lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars','global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars','lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.secretName') + '" "format=jks" "common_name=' + lookup('custom_vars','lnse.ose.configmap.certificate.client.cn') + '"'}}

lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.storage.path

Путь к pki-engine в SecMan. Рекомендованное значение — {{'"' + lookup('custom_vars','lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars','global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars','lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.secretName') + '" "format=jks" "common_name=' + lookup('custom_vars','lnse.ose.configmap.certificate.client.cn') + '"'}}

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.secretName,
lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.secretName

Имя секрета в SecMan. Рекомендованное значение — {{lookup('custom_vars','global.platform.annotations.hashicorp.cert.client.secretName')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.storage.data.ott_cert,
lnse.ott-sidecar.ose.istio.egress.ott.secman.pki.storage.data.ott_cert

Имя параметра с сертификатом, сгенерированным vault-agent. Рекомендованное значение — .Data.certificate

lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.storage.data.ott_key,
lnse.ott-sidecar.ose.istio.egress.ott.secman.pki.storage.data.ott_key

Имя параметра с паролем доступа сертификату, сгенерированному vault-agent. Рекомендованное значение — .Data.private_key

lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.storage.path,
lnse.ott-sidecar.ose.istio.egress.ott.secman.pki.storage.path

Путь к сертификату клиента для обмена с OTTS. Рекомендованное значение — {{'"' + lookup('custom_vars','lnse.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template.pki.baseEngineMountPath') + lookup('custom_vars','global.platform.annotations.hashicorp.engine.pki.name') + 'fetch/'+ lookup('custom_vars','lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.secretName') + '" "private_key_format=pkcs8" "common_name=' + lookup('custom_vars','lnse.ott-sidecar.ose.istio.ingress.configmap.vault.hashicorp.com.ott_cert.crt.cn') + '"'}}. Значение переменной global.platform.annotations.hashicorp.engine.pki.name устанавливается в файлах репозитория Сommon

lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.secretName

Сертификат клиента для обмена с OTTS. Рекомендованное значение — {{lookup('custom_vars','global.platform.annotations.hashicorp.ott.cert.client.secretName')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.egress.ott.secman.pki.secretName

Сертификат клиента для обмена с OTTS. Рекомендованное значение — {{lookup('custom_vars','global.platform.annotations.hashicorp.ott.cert.client.secretName')}}. Значение переменной устанавливается в файлах репозитория Common

lnse.ott-sidecar.ose.istio.ingress.main.envoyfilter.spec.configPatches.patch.with_request_body.enabled,
lnse.ott-sidecar.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.enabled

Включение envoyFilter для авторизации ott-sidecar. Рекомендованное значение — false

lnse.ott-sidecar.ose.istio.ingress.main.envoyfilter.spec.configPatches.patch.with_request_body.allow_partial_message,
lnse.ott-sidecar.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.allow_partial_message

Если установлено значение true, то фильтр отправит запрос в сервис авторизации урезав размер сообщения до max_request_bytes. Если установлено значение false, то фильтр вернет ошибку 413 в том случае, если размер тела сообщения превысит max_request_bytes. Рекомендованное значение — false

lnse.ott-sidecar.ose.istio.ingress.main.envoyfilter.spec.configPatches.patch.with_request_body.max_request_bytes,
lnse.ott-sidecar.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.max_request_bytes

Если размер тела сообщения превысит указанное значение, то тело сообщения будет урезано до заданного значения, либо фильтр вернет ошибку 413 (см. описание параметра allow_partial_message). Рекомендованное значение — 2097152

lnse.ott-sidecar.ose.istio.ingress.main.envoyfilter.spec.configPatches.patch.with_request_body.pack_as_bytes,
lnse.ott-sidecar.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.pack_as_bytes

Если установлено значение true, то фильтр ott-sidecar будет воспринимать тело сообщения, как двоичные данные, иначе — как данные в кодировке UTF-8. Рекомендованное значение — true

dictionary.ott-sidecar-ufs.all.conf

ott-sidecar-ufs.ose.istio.egress.ott.service.url,
ott-sidecar-ufs.ose.istio.ingress.ott.service.url

Шаблон URL OTTS. Рекомендованное значение — {{lookup('custom_vars','global.ott.service.url')}}. Значение переменной устанавливается в файлах репозитория Common

ott-sidecar-ufs.ose.istio.egress.ott.service.hosts,
ott-sidecar-ufs.ose.istio.ingress.ott.service.hosts

Список серверов с указанием портов OTTS для балансировки нагрузки, или аналогичный список nginx OTTS, рекомендованное значение — {{lookup('custom_vars','global.ott.service.hosts')}}. Значение переменной устанавливается в файлах репозитория Сommon

ott-sidecar-ufs.ose.istio.egress.ott.grpc.port,
ott-sidecar-ufs.ose.istio.ingress.ott.grpc.port

Порт для GRPC-запросов ott-sidecar. Рекомендованное значение — {{lookup('custom_vars','global.ott.grpc.port')}}. Значение переменной устанавливается в файлах репозитория Common

ott-sidecar-ufs.ose.istio.egress.ott.module.id,
ott-sidecar-ufs.ose.istio.ingress.ott.module.id

Идентификатор компонента LNSE в OTTS (с учетом регистра). Рекомендованное значение — ci00749854_efs_dictionary_{{ SEGMENT_ID&#124lower }}. Значение переменной устанавливается в файлах репозитория Common

ott-sidecar-ufs.ose.istio.egress.ott.service.trusted.crt.rate,
ott-sidecar-ufs.ose.istio.ingress.ott.service.trusted.crt.rate

Период обновления кеша сертификатов серверов OTTS, измеряется в секундах. Рекомендованное значение — 60

ott-sidecar-ufs.ose.istio.ott.start.wait

Время задержки страта ott-sidecar, рекомендованное значение — 15000

ott-sidecar-ufs.ose.istio.egress.ott.service.client.secret.hotreload,
ott-sidecar-ufs.ose.istio.ingress.ott.service.client.secret.hotreload

Включение механизма ротации секретов ott-sidecar. Рекомендованное значение — true

ott-sidecar-ufs.ose.istio.egress.ott.client.logger.transport.type,
ott-sidecar-ufs.ose.istio.ingress.ott.client.logger.transport.type

Параметр логирования ott-sidecar. Тип транспорта. Рекомендованное значение — KAFKA

ott-sidecar-ufs.ose.istio.egress.ott.client.logger.secret.rate,
ott-sidecar-ufs.ose.istio.ingress.ott.client.logger.secret.rate

Параметр логирования ott-sidecar. Время задержки считывания секретов. Рекомендованное значение — 3

ott-sidecar-ufs.ose.istio.ott.authz.realm

Область авторизации OTTS, рекомендованное значение — {{lookup('custom_vars','global.ose.ott.authz.realm',default='ott')}}. Значение переменной устанавливается в файлах репозитория Common

ott-sidecar-ufs.ose.istio.ott.client.mmt.compatibility.mode

Режим совместимости с ММТ 3 поколения. Рекомендованное значение — false

ott-sidecar-ufs.ose.istio.ott.authz.version

Версия метода авторизации, рекомендованное значение — 1.0

ott-sidecar-ufs.ose.istio.ott.anonymous.requests.enabled

Анонимный режим. Рекомендованное значение — true

ott-sidecar-ufs.ose.istio.ott.client.default.realm

Логическая область, автономная с точки зрения авторизации доступов к ресурсам, контролируемых в OTTS. Отвечает за авторизацию доступа к ресурсу — вызову API. Рекомендованное значение — mmt

ott-sidecar-ufs.ose.istio.egress.ott.http.port,
ott-sidecar-ufs.ose.istio.ingress.ott.http.port,
ott-sidecar-ufs.ose.istio.ott.http.port

Порт для readiness probe ott-sidecar. Рекомендованное значение — 8090

dictionary.ose.istio.ott.logging.level

Параметр логирования ott-sidecar. Уровень логирования. Рекомендованное значение — {{lookup('custom_vars','global.platform.istio.ott.logging-level',default='error')}}. Значение переменной устанавливается в файлах репозитория Сommon

ott-sidecar-ufs.ose.istio.ott.logger.keystore.type

Параметр логирования ott-sidecar. Тип хранилища сертификатов keystore, рекомендованное значение — jks

ott-sidecar-ufs.ose.istio.ott.logger.truststore.type

Параметр логирования ott-sidecar. Тип хранилища сертификатов truststore, рекомендованное значение — jks

ott-sidecar-ufs.ose.istio.ott.logger.key.alias

Параметр логирования ott-sidecar. Псевдоним закрытого ключа сертификата, рекомендованное значение — private_key

ott-sidecar-ufs.union-audit.sourceSystem

Параметр аудита ott-sidecar. Код АС, в состав которой интегрируется компонент LNSE. Рекомендованное значение — {{lookup('custom_vars','global.platform.union-audit.sourceSystem',default='FS')}}. Значение переменной устанавливается в файлах репозитория Сommon

ott-sidecar-ufs.union-audit.CImodule

Параметр аудита ott-sidecar. Идентификатор элемента развертывания ott-sidecar. Рекомендованное значение — {{ fpConfig.artifactId }}_ott-sidecar-ufs

ott-sidecar-ufs.ose.istio.ingress.envoyfilter.spec.configPatches.patch.with_request_body.enabled,
ott-sidecar-ufs.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.enabled

Включение envoyFilter для авторизации ott-sidecar. Рекомендованное значение — false

ott-sidecar-ufs.ose.istio.ingress.envoyfilter.spec.configPatches.patch.with_request_body.allow_partial_message,
ott-sidecar-ufs.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.allow_partial_message

Если установлено значение true, то фильтр отправит запрос в сервис авторизации урезав размер сообщения до max_request_bytes. Если установлено значение false, то фильтр вернет ошибку 413 в том случае, если размер тела сообщения превысит max_request_bytes. Рекомендованное значение — false

ott-sidecar-ufs.ose.istio.ingress.envoyfilter.spec.configPatches.patch.with_request_body.max_request_bytes,
ott-sidecar-ufs.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.max_request_bytes

Если размер тела сообщения превысит указанное значение, то тело сообщения будет урезано до заданного значения, либо фильтр вернет ошибку 413 (см. описание параметра allow_partial_message). Рекомендованное значение — 2097152

ott-sidecar-ufs.ose.istio.ingress.envoyfilter.spec.configPatches.patch.with_request_body.pack_as_bytes,
ott-sidecar-ufs.ose.istio.egress.envoyfilter.spec.configPatches.patch.with_request_body.pack_as_bytes

Если установлено значение true, то фильтр ott-sidecar будет воспринимать тело сообщения, как двоичные данные, иначе — как данные в кодировке UTF-8. Рекомендованное значение — true

dictionary.all.conf

dictionary.ott.ose_deploy

Включение/отключение развертывания OTTS-sidecar. Рекомендованное значение — {{ lookup('custom_vars', 'global.ott.ose_deploy', default='true') }}. Значение переменной устанавливается в файле репозитория Common

При определении параметров интеграции с OTTS используются переменные, значения которых устанавливаются в файлах репозитория Сommon:

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

global.ott.ose_deploy

lnse.ott.ose.deploy

Переключатель, активирующий работу OTTS. Рекомендованное значение — true. Значение указывается в openShift.conf

global.ott.store.type

lnse.ott-sidecar.ose.istio.ott.store.type

Тип хранилища сертификатов. Рекомендованное значение — PEM. Значение указывается в openShift.conf

global.ott.service.url

lnse.ott-sidecar.ose.istio.ott.service.url,
ott-sidecar-ufs.ose.istio.egress.ott.service.url,
ott-sidecar-ufs.ose.istio.ingress.ott.service.url

Шаблон URL OTTS. При балансировке значения будут подставляться из ott-sidecar-ufs.ose.istio.ingress.ott.service.hosts. Значение указывается в openShift.conf

global.ott.service.hosts

lnse.ott-sidecar.ose.istio.ott.service.hosts,
ott-sidecar-ufs.ose.istio.egress.ott.service.hosts,
ott-sidecar-ufs.ose.istio.ingress.ott.service.hosts

Список серверов с указанием порта OTTS для балансировки нагрузки. Значение указывается в openShift.conf

global.ott.grpc.port

lnse.ott-sidecar.ose.istio.ott.grpc.port,
ott-sidecar-ufs.ose.istio.egress.ott.grpc.port,
ott-sidecar-ufs.ose.istio.ingress.ott.grpc.port

Порт для GRPC-запросов ott-sidecar. Рекомендованное значение — /mnt/ott-uds-socket/ott.socket. Значение указывается в openShift.conf

global.platform.kafka.security.protocol

lnse.ott-sidecar.kafka.security.protocol

Протокол безопасности, по которому происходит подключение к Kafka:
PLAINTEXT — нет SSL;
SSL — есть SSL.

Рекомендованное значение — SSL, значение указывается в _global.kafka.conf

global.ose.ott.authz.realm

lnse.ott-sidecar.ose.istio.ott.authz.realm,
ott-sidecar-ufs.ose.istio.ott.authz.realm

Область авторизации OTTS. Рекомендованное значение — ott. Значение указывается в _global.resources.conf

global.platform.union-audit.sourceSystem

lnse.ott-sidecar.union-audit.sourceSystem,
ott-sidecar-ufs.union-audit.sourceSystem

Код АС, в состав которой интегрируется компонент LNSE. Рекомендованное значение — FS, значение указывается в _global.resources.conf

global.platform.annotations.hashicorp.engine.pki.name

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.storage.path,
lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.storage.path

Путь к pki-engine в SecMan

global.platform.annotations.hashicorp.cert.client.secretName

lnse.ott-sidecar.ose.istio.ingress.ott.mq.secman.pki.secretName,
lnse.ott-sidecar.ose.istio.egress.ott.mq.secman.pki.secretName,
lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.storage.path,
lnse.ott-sidecar.ose.istio.egress.ott.secman.pki.storage.path

Наименование роли PKI движка для клиентского сертификата egress

global.platform.annotations.hashicorp.ott.cert.client.secretName

lnse.ott-sidecar.ose.istio.ingress.ott.secman.pki.secretName,
lnse.ott-sidecar.ose.istio.egress.ott.secman.pki.secretName

Наименование роли PKI движка для клиентского сертификата OTTS

global.platform.istio.ott.logging-level

dictionary.ose.istio.ott.logging.level

Уровень логирования для ott-sidecar. Рекомендованное значение — info. Значение указывается в openShift.conf

SEGMENT_ID

lnse.ott-sidecar.ose.istio.ingress.ott.module.id,
lnse.ott-sidecar.ose.istio.egress.ott.module.id,
ott-sidecar-ufs.ose.istio.egress.ott.module.id,
ott-sidecar-ufs.ose.istio.ingress.ott.module.id

Идентификатор инсталляции, в которую интегрируются компонент. Пример значения — EMP. Значение указывается в common.conf.yml

Параметры интеграции с 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

Описание

dictionary.extensions.quotingByRateLimiter.all.conf

dictionary.ose.srls.host

Адрес для подключения к SRLS. Рекомендованное значение — {{ lookup('custom_vars', 'global.multiClusters.srls.host') }}

dictionary.ose.srls.port

Порт для подключения к SRLS. Рекомендованное значение — {{ lookup('custom_vars', 'global.multiClusters.srls.port') }}

dictionary.ose.srls.namespace

Namespace централизованного SRLS, развернутого в кластере среды контейнеризации. Рекомендованное значение — {{ lookup('custom_vars', 'global.multiClusters.srls.namespace') }}

dictionary.ose.srls.timeout

Тайм-аут для соединения с SRLS по GRPC. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.srls.timeout') }}

dictionary.ose.srls.header

Наименование заголовка идентифицирующего потребителя сервиса. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.srls.header') }}

dictionary.ose.srls.envoyFilter.switch

Использование версии 3.11 SRLS. Рекомендованное значение — {{ lookup('custom_vars', 'global.srls.envoyFilter.switch', default='true') }}

dictionary.ose.srls.cluster.name

Наименование кластера SRLS. Рекомендованное значение — rate_limit_cluster

dictionary.ose.srls.cluster.type

Тип кластера SRLS. Рекомендованное значение — STRICT_DNS

dictionary.ose.srls.cluster.load-balancer.policy

Политика балансировки кластера SRLS. Рекомендованное значение — ROUND_ROBIN

dictionary.ose.srls.label

Метка принадлежности артефакта к SRLS. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.srls.label') }}

dictionary.ose.srls.platformTenant.limit

Лимит для платформенных тенантов. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.srls.platformTenant.limit') }}

dictionary.ose.srls.client.ca.path

Путь к доверенному (корневому) сертификату. Рекомендованное значение — /lnse/etc/istio/ingressgateway-ca-certs/root.cr

dictionary.ose.srls.client.cert.path

Путь к клиентскому сертификату. Рекомендованное значение — /lnse/etc/istio/ingressgateway-certs/tls.crt

dictionary.ose.srls.client.key.path

Путь к приватному ключу сертификата. Рекомендованное значение — /lnse/etc/istio/ingressgateway-certs/tls.key

При определении параметров интеграции с SRLS используются переменные, значения которых устанавливаются в файлах репозитория Common:

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

global.multiClusters.srls.host

dictionary.ose.srls.host

Адрес для подключения к SRLS. Значение указывается в _global.resources.conf

global.multiClusters.srls.port

dictionary.ose.srls.port

Порт для подключения к SRLS. Рекомендованное значение — 8081. Значение указывается в _global.resources.conf

global.multiClusters.srls.namespace

dictionary.ose.srls.namespace

Namespace централизованного SRLS, развернутого в кластере среды контейнеризации. Рекомендованное значение — efs-std-ift1-int-sbmg-rate-limiter. Значение указывается в _global.resources.conf

global.platform.srls.timeout

dictionary.ose.srls.timeout

Тайм-аут для соединения с SRLS по GRPC. Пример значения — 10s, Значение указывается в _global.resources.conf

global.platform.srls.header

dictionary.ose.srls.header

Наименование заголовка идентифицирующий потребителя сервиса. Рекомендованное значение — ufs-tenant, значение указывается в _global.resources.conf

global.srls.envoyFilter.switch

dictionary.ose.srls.envoyFilter.switch

Использование версии 3.11 SRLS. Рекомендованное значение — false. Значение указывается в _global.resources.conf

global.platform.srls.label

dictionary.ose.srls.label

Метка принадлежности артефакта к SRLS. Рекомендованное значение — ratelimit. Значение указывается в _global.resources.conf

global.platform.srls.platformTenant.limit

dictionary.ose.srls.platformTenant.limit

Лимит для платформенных тенантов. Рекомендованное значение — 100. Значение указывается в _global.resources.conf

Параметры интеграции с 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

Описание

data-dictionary-manage.conf, data-dictionary-load.conf, data-dictionary-service.conf

lnse.external.kafka.resetCache.enabled

Подключение к topic Kafka для отправки внутриблочных уведомлений о необходимости сброса кеша. Рекомендованное значение — true

data-dictionary-manage.conf, data-dictionary-load.conf

lnse.external.kafka.replication.sync.enabled

Подключение к topic Kafka для отправки и получения запросов при синхронном межблочном обмене. Рекомендованное значение — true

data-dictionary-service.conf

lnse.external.kafka.replication.sync.enabled

Подключение к topic Kafka для отправки и получения запросов при синхронном межблочном обмене. Рекомендованное значение — false

data-dictionary-manage.conf, data-dictionary-load.conf

lnse.external.kafka.replication.notify.enabled

Подключение к topic Kafka для отправки нотификаций при межблочном обмене. Рекомендованное значение — true

data-dictionary-service.conf

lnse.external.kafka.replication.notify.enabled

Подключение к topic Kafka для отправки нотификаций при межблочном обмене. Рекомендованное значение — false

dictionary.all.conf

lnse.external.kafka.type

Тип транспорта для межблочного и внутриблочного обмена:
on;
off;
local.

Рекомендованное значение — on

lnse.external.kafka.updateSsl

Включает поддержку ротации секрета подключения к Kafka. Рекомендованное значение — false

lnse.inner.kafka.bootstrap.servers

Список брокеров для инициализации подключения к Kafka для внутриблочного обмена, параметр общий для Producer и Consumer. Рекомендованное значение — {{ lookup("custom_vars", "lnse.platform.kafka.internalService") }}.{{ namespace }}.svc.cluster.local:{{ lookup("custom_vars", "lnse.platform.kafka.internalPort") }}. Значения переменных устанавливаются в файле dictionary.istio.all.conf

lnse.inter.kafka.bootstrap.servers

Список брокеров для инициализации подключения к Kafka для межблочного обмена, параметр общий для Producer и Consumer. Рекомендованное значение — {{ lookup("custom_vars", "lnse.platform.kafka.internalService") }}.{{ namespace }}.svc.cluster.local:{{ lookup("custom_vars", "lnse.platform.kafka.internalPort") }}. Значения переменных устанавливаются в файле dictionary.istio.all.conf

lnse.external.kafka.securityProtocol

Протокол безопасности, по которому происходит подключение к Kafka:
PLAINTEXT — нет SSL;
SSL — есть SSL.

Параметр общий для Producer и Consumer.

Рекомендованное значение — PLAINTEXT

lnse.external.kafka.sslEndpointIdentificationAlgorithm

Алгоритм идентификации точки подключения:
HTTPs — проверка, что имя хоста брокера совпадает с именем хоста в сертификате брокера;
пустая строка — отключение проверки.

Параметр общий для Producer и Consumer.

Рекомендованное значение — {{ global.platform.kafka.ssl.endpoint.identification.algorithm }}. Значение переменной устанавливается в файле репозитория Common

lnse.external.kafka.keyStore.location

Путь до JKS-хранилища сертификатов типа keystore с клиентским сертификатом LNSE и закрытым ключом в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl/keystore.jks

lnse.external.kafka.trustStore.location

Путь до JKS-хранилища сертификатов типа truststore с корневым сертификатом в среде контейнеризации. Рекомендованное значение — /mnt/config/ssl/truststore.jks

lnse.external.kafka.resetCache.dictionary.topicName

Topic Kafka для отправки внутриблочных уведомлений о необходимости сброса кеша данных справочника. Рекомендованное значение — lnse-reset-dictionary-cache.001.${INNER_ZONE}

lnse.external.kafka.resetCache.permission.topicName

Topic Kafka для отправки внутриблочных уведомлений о необходимости сброса кеша разрешений. Рекомендованное значение — lnse-reset-permission-cache.001.${INNER_ZONE}

lnse.external.kafka.replication.sync.topicName

Topic Kafka для отправки запросов при синхронном межблочном обмене. Рекомендованное значение — lnse-replication-dictionary.001

lnse.external.kafka.replication.sync.topicReplyName

Topic Kafka для получения ответов при синхронном межблочном обмене. Рекомендованное значение — lnse-replication-reply-dictionary.001

lnse.external.kafka.replication.notify.topicName

Topic Kafka для отправки нотификаций при межблочном обмене. Рекомендованное значение — lnse-notify-dictionary.001

lnse.external.kafka.consumer.enableAutoCommit

Автоматическая фиксация смещения Kafka Consumer. Рекомендованное значение — true

lnse.external.kafka.consumer.autoOffsetReset

Политика сброса смещения Kafka Consumer (latest/earliest). Рекомендованное значение — earliest

dictionary.kafka.bootstrap.servers

Список брокеров для инициализации подключения к Kafka для внутриблочного обмена, параметр общий для Producer и Consumer.

Рекомендованное значение — {{ lookup("custom_vars", "lnse.platform.kafka.internalService") }}.{{ namespace }}.svc.cluster.local:{{ lookup("custom_vars", "lnse.platform.kafka.internalPort") }}. Значения переменных устанавливаются в файле dictionary.istio.all.conf

dictionary.kafka.security.protocol

Протокол безопасности, по которому происходит подключение к Kafka:
PLAINTEXT — нет SSL;
SSL — есть SSL;

Параметр общий для Producer и Consumer. Рекомендованное значение — PLAINTEXT

dictionary.kafka.ssl.endpoint.identification.algorithm

Алгоритм идентификации точки подключения, используемый клиентом:
https — проверка, что имя хоста брокера совпадает с именем хоста в сертификате брокера;
пустая строка — отключение проверки;
Параметр общий для Producer и Consumer.

Рекомендованное значение — {{ global.platform.kafka.ssl.endpoint.identification.algorithm }}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.session.timeout.ms

Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной heartbeat.interval.ms. Рекомендованное значение — ${global.platform.kafka.consumer.session.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.fetch.max.bytes

Максимальное количество данных, возвращаемое сервером. Рекомендованное значение — ${global.platform.kafka.consumer.fetch.max.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.fetch.max.wait.ms

Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — ${global.platform.kafka.consumer.fetch.max.wait.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.fetch.min.bytes

Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — ${global.platform.kafka.consumer.fetch.min.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.max.poll.interval.ms

Максимально допустимый интервал между poll-запросами. Рекомендованное значение — ${global.platform.kafka.consumer.max.poll.interval.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.heartbeat.interval.ms

Heartbeat-сигналы в рамках сессии длиной session.timeout.ms. Рекомендованное значение — ${global.platform.kafka.consumer.heartbeat.interval.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.max.partition.fetch.bytes

Максимальное количество данных, получаемых с партиции. Рекомендованное значение — ${global.platform.kafka.consumer.max.partition.fetch.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения. Рекомендованное значение — ${global.platform.kafka.consumer.send.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных. Рекомендованное значение — ${global.platform.kafka.consumer.receive.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.request.timeout.ms

Максимальное время ожидания ответа. Рекомендованное значение — ${global.platform.kafka.consumer.request.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.delivery.timeout.ms

Время ожидания результата записи в Kafka. Рекомендованное значение — ${global.platform.kafka.producer.delivery.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.batch.size

Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — ${global.platform.kafka.producer.batch.size}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.linger.ms

Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — ${global.platform.kafka.producer.linger.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.buffer.memory

Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — ${global.platform.kafka.producer.buffer.memory}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.request.timeout.ms

Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — ${global.platform.kafka.producer.request.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения, байты. Рекомендованное значение — ${global.platform.kafka.producer.send.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных, байты. Рекомендованное значение — ${global.platform.kafka.producer.receive.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.max.request.size

Максимальный размер запроса (сообщения). Рекомендованное значение — ${global.platform.kafka.producer.max.request.size}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.metadata.max.age.ms

Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений, мс. Рекомендованное значение — ${global.platform.kafka.producer.metadata.max.age.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.connections.max.idle.ms

Тайм-аут закрытия неиспользуемых подключений, мс. Рекомендованное значение — ${global.platform.kafka.producer.connections.max.idle.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.max.block.ms

Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — ${global.platform.kafka.producer.max.block.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.compression.type

Сжатие данных. Рекомендованное значение — ${global.platform.kafka.producer.compression.type}. Значение переменной устанавливается в файле репозитория Common

kafka_fp.dictionary.conf

create_pubsub_objects

Флаг управления созданием topic pubsub. Допустимые значения: on, off. Рекомендованное значение — on

pubsub.partitions

Число партиций для pubsub topic. Рекомендованное значение — 1

pubsub.replication_factor

Фактор репликации для pubsub topic. Рекомендованное значение — 3

pubsub.retention_ms

Время хранения сообщения в топике в миллисекундах для pubsub topic. Рекомендованное значение — 10800000

pubsub.retention_bytes

Максимальный размер партиции, до которого он может вырасти до того момента, как будут отброшены старые сегменты журнала для pubsub topic. Рекомендованное значение — 3221225472

pubsub.max_message_bytes

Максимальный размер сообщения в байтах для pubsub topic. Рекомендованное значение — 41943040

pubsub.lnse.topic.resetCache.dictionary

Topic для отправки внутриблочных уведомлений о необходимости сброса кеша данных справочника. Рекомендованное значение — lnse-reset-dictionary-cache.001.${INNER_ZONE}

pubsub.lnse.topic.resetCache.permission

Topic для отправки внутриблочных уведомлений о необходимости сброса кеша разрешений. Рекомендованное значение — lnse-reset-permission-cache.001.${INNER_ZONE}

pubsub.lnse.topic.replication

Topic для отправки запросов при синхронном межблочном обмене. Рекомендованное значение — lnse-replication-dictionary.001

pubsub.lnse.topic.replication.reply

Topic для получения ответов при синхронном межблочном обмене. Рекомендованное значение — lnse-replication-reply-dictionary.001

pubsub.lnse.topic.notify

Topic для отправки нотификаций при межблочном обмене. Рекомендованное значение — lnse-notify-dictionary.001

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

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

INNER_ZONE

lnse.external.kafka.resetCache.dictionary.topicName
lnse.external.kafka.resetCache.permission.topicName

Идентификатор локации, внутри которой осуществляется рассылка (блок, сегмент)

global.platform.kafka.ssl.enabled.protocols

ufs-monitoring.kafka.ssl.enabled.protocols

Протоколы, доступные для подключения к Kafka. Рекомендованное значение — TLSv1.2. Значение указывается в _global.kafka.conf

global.platform.kafka.ssl.endpoint.identification.algorithm

ufs-monitoring.kafka.ssl.endpoint.identification.algorithm
lnse.external.kafka.sslEndpointIdentificationAlgorithm
dictionary.kafka.ssl.endpoint.identification.algorithm

Алгоритм идентификации точки подключения, используемый клиентом. Рекомендуется не заполнять. Значение указывается в _global.kafka.conf

global.platform.kafka.producer.delivery.timeout.ms

ufs-monitoring.kafka.producer_factory.delivery.timeout.ms
dictionary.kafka.producer_factory.delivery.timeout.ms

Время ожидания результата записи в Kafka. Рекомендованное значение — 120000. Значение указывается в _global.kafka.conf

global.platform.kafka.producer.batch.size

ufs-monitoring.kafka.producer_factory.batch.size
dictionary.kafka.producer_factory.batch.size

Максимальных размер пакета с сообщениями (в байтах). Рекомендованное значение — 262144. Значение указывается в _global.kafka.conf

global.platform.kafka.producer.linger.ms

ufs-monitoring.kafka.producer_factory.linger.ms
dictionary.kafka.producer_factory.linger.ms

Фиксация времени, затрачиваемого на сбор пакета (в мс). Рекомендованное значение — 0. Значение указывается в _global.kafka.conf

global.platform.kafka.producer.buffer.memory

ufs-monitoring.kafka.producer_factory.buffer.memory
dictionary.kafka.producer_factory.buffer.memory

Объем буфера, хранящего сообщения перед отправкой (в байтах), рекомендованное значение — 33554432, значение указывается в _global.kafka.conf

global.platform.kafka.producer.request.timeout.ms

ufs-monitoring.kafka.producer_factory.request.timeout.ms
dictionary.kafka.producer_factory.request.timeout.ms

Максимальное время ожидания ответа от сервера на запрос, рекомендованное значение — 30000, значение указывается в _global.kafka.conf

global.platform.kafka.producer.send.buffer.bytes

ufs-monitoring.kafka.producer_factory.send.buffer.bytes
dictionary.kafka.producer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения (в байтах), рекомендованное значение — 131072, значение указывается в _global.kafka.conf

global.platform.kafka.producer.receive.buffer.bytes

ufs-monitoring.kafka.producer_factory.receive.buffer.bytes
dictionary.kafka.producer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных (в байтах), рекомендованное значение — 32768, значение указывается в _global.kafka.conf

global.platform.kafka.producer.max.request.size

ufs-monitoring.kafka.producer_factory.max.request.size
dictionary.kafka.producer_factory.max.request.size

Максимальный размер запроса (сообщения), рекомендованное значение — 1048576, значение указывается в _global.kafka.conf

global.platform.kafka.producer.metadata.max.age.ms

ufs-monitoring.kafka.producer_factory.metadata.max.age.ms
dictionary.kafka.producer_factory.metadata.max.age.ms

Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений (в мс), рекомендованное значение — 300000, значение указывается в _global.kafka.conf

global.platform.kafka.producer.connections.max.idle.ms

ufs-monitoring.kafka.producer_factory.connections.max.idle.ms
dictionary.kafka.producer_factory.connections.max.idle.ms

Тайм-аут закрытия неиспользуемых подключений (в мс), рекомендованное значение — 540000, значение указывается в _global.kafka.conf

global.platform.kafka.producer.max.block.ms

ufs-monitoring.kafka.producer_factory.max.block.ms
dictionary.kafka.producer_factory.max.block.ms

Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — 60000. Значение указывается в _global.kafka.conf

global.platform.kafka.producer.compression.type

ufs-monitoring.kafka.producer_factory.compression.type
dictionary.kafka.producer_factory.compression.type

Сжатие данных. Рекомендованное значение — none. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.session.timeout.ms

ufs-monitoring.kafka.consumer_factory.session.timeout.ms
dictionary.kafka.consumer_factory.session.timeout.ms

Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной heartbeat.interval.ms. Рекомендованное значение — 10000. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.fetch.max.bytes

ufs-monitoring.kafka.consumer_factory.fetch.max.bytes
dictionary.kafka.consumer_factory.fetch.max.bytes

Максимальное количество данных, возвращаемое сервером. Рекомендованное значение — 52428800. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.fetch.max.wait.ms

ufs-monitoring.kafka.consumer_factory.fetch.max.wait.ms
dictionary.kafka.consumer_factory.fetch.max.wait.ms

Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — 500. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.fetch.min.bytes

ufs-monitoring.kafka.consumer_factory.fetch.min.bytes
dictionary.kafka.consumer_factory.fetch.min.bytes

Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — 1. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.max.poll.interval.ms

ufs-monitoring.kafka.consumer_factory.max.poll.interval.ms
dictionary.kafka.consumer_factory.max.poll.interval.ms

Максимально допустимый интервал между poll-запросами. Рекомендованное значение — 300000. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.heartbeat.interval.ms

ufs-monitoring.kafka.consumer_factory.heartbeat.interval.ms
dictionary.kafka.consumer_factory.heartbeat.interval.ms

Heartbeat-сигналы в рамках сессии длиной session.timeout.ms. Рекомендованное значение — 3000. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.max.partition.fetch.bytes

ufs-monitoring.kafka.consumer_factory.max.partition.fetch.bytes
dictionary.kafka.consumer_factory.max.partition.fetch.bytes

Максимальное количество данных, получаемых с партиции. Рекомендованное значение — 1048576. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.send.buffer.bytes

ufs-monitoring.kafka.consumer_factory.send.buffer.bytes
dictionary.kafka.consumer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения. Рекомендованное значение — 131072. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.receive.buffer.bytes

ufs-monitoring.kafka.consumer_factory.receive.buffer.bytes
dictionary.kafka.consumer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных. Рекомендованное значение — 65536. Значение указывается в _global.kafka.conf

global.platform.kafka.consumer.request.timeout.ms

ufs-monitoring.kafka.consumer_factory.request.timeout.ms
dictionary.kafka.consumer_factory.request.timeout.ms

Максимальное время ожидания ответа. Рекомендованное значение — 30000. Значение указывается в _global.kafka.conf

Параметры интеграции с 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

Описание

data-dictionary-load-config-cm.yaml

data-dictionary-load_sup2_scopeTemplate

Идентификатор экземпляра файла с настройками data-dictionary-load. Значение — data-dictionary-load.__{{ lookup('custom_vars', 'data-dictionary-load_sup2_scopeTemplate') }}.json

data-dictionary-manage-config-cm.yaml

data-dictionary-manage_sup2_scopeTemplate

Идентификатор экземпляра файла с настройками data-dictionary-manage. Значение — data-dictionary-manage.__{{ lookup('custom_vars', 'data-dictionary-manage_sup2_scopeTemplate') }}.json

data-dictionary-service-config-cm.yaml

data-dictionary-service_sup2_scopeTemplate

Идентификатор экземпляра файла с настройками data-dictionary-service. Значение — data-dictionary-service.__{{ lookup('custom_vars', 'data-dictionary-service_sup2_scopeTemplate') }}.json

dictionary.all.conf

lnse.external.parameter.type

Определение способа обновления файлов с настройками в среде функционирования LNSE. Рекомендованное значение — sup

lnse.installation

Идентификатор набора значений параметров CFGA, зависимых от инсталляции. Рекомендованное значение — FS

При определении параметра data используются переменные, значения которых устанавливаются в файлах репозитория Common:

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

sup2_scopeTemplate

data-dictionary-load-config-cm.yaml

Ключ конфигурации. Рекомендованное значение — ${application.deploymentUnit}_{{ TENANT_CODE }}

data-dictionary-manage-config-cm.yaml

data-dictionary-service-config-cm.yaml

Значение ключа конфигурации указывается в 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

Описание

dictionary.all.conf

lnse.topology.type

Механизм получения сведений о физической топологии, используемый в инсталляции продукта, в окружении которого устанавливается LNSE. Рекомендованное значение — fs

lnse.external.standin.type

Механизм управления доступностью узлов компонентов, используемый в инсталляции продукта, в окружении которого устанавливается LNSE. Рекомендованное значение — ufs-si

ufs-standin.UFS_STANDIN.database.type

Тип БД STDE. Рекомендованное значение — postgre

dictionary.kafka.bootstrap.servers

Список брокеров для инициализации подключения к Kafka для внутриблочного обмена, параметр общий для Producer и Consumer. Рекомендованное значение — {{ lookup("custom_vars", "lnse.platform.kafka.internalService") }}.{{ namespace }}.svc.cluster.local:{{ lookup("custom_vars", "lnse.platform.kafka.internalPort") }}. Значения переменных устанавливаются в файле dictionary.istio.all.conf

dictionary.kafka.security.protocol

Протокол безопасности, по которому происходит подключение к Kafka:
PLAINTEXT — нет SSL;
SSL — есть SSL;
параметр общий для Producer и Consumer.

Рекомендованное значение — PLAINTEXT

dictionary.kafka.ssl.endpoint.identification.algorithm

Алгоритм идентификации точки подключения, используемый клиентом:
https — проверка, что имя хоста брокера совпадает с именем хоста в сертификате брокера;
пустая строка — отключение проверки;
параметр общий для Producer и Consumer.

Рекомендованное значение — {{ global.platform.kafka.ssl.endpoint.identification.algorithm }}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.session.timeout.ms

Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной heartbeat.interval.ms. Рекомендованное значение — ${global.platform.kafka.consumer.session.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.fetch.max.bytes

Максимальное количество данных, возвращаемое сервером. Рекомендованное значение — ${global.platform.kafka.consumer.fetch.max.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.fetch.max.wait.ms

Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — ${global.platform.kafka.consumer.fetch.max.wait.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.fetch.min.bytes

Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — ${global.platform.kafka.consumer.fetch.min.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.max.poll.interval.ms

Максимально допустимый интервал между poll-запросами. Рекомендованное значение — ${global.platform.kafka.consumer.max.poll.interval.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.heartbeat.interval.ms

Heartbeat-сигналы в рамках сессии длиной session.timeout.ms. Рекомендованное значение — ${global.platform.kafka.consumer.heartbeat.interval.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.max.partition.fetch.bytes

Максимальное количество данных, получаемых с партиции. Рекомендованное значение — ${global.platform.kafka.consumer.max.partition.fetch.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения. Рекомендованное значение — ${global.platform.kafka.consumer.send.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных. Рекомендованное значение — ${global.platform.kafka.consumer.receive.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.consumer_factory.request.timeout.ms

Максимальное время ожидания ответа. Рекомендованное значение — ${global.platform.kafka.consumer.request.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.delivery.timeout.ms

Время ожидания результата записи в Kafka. Рекомендованное значение — ${global.platform.kafka.producer.delivery.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.batch.size

Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — ${global.platform.kafka.producer.batch.size}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.linger.ms

Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — ${global.platform.kafka.producer.linger.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.buffer.memory

Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — ${global.platform.kafka.producer.buffer.memory}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.request.timeout.ms

Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — ${global.platform.kafka.producer.request.timeout.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения, байты. Рекомендованное значение — ${global.platform.kafka.producer.send.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных, байты. Рекомендованное значение — ${global.platform.kafka.producer.receive.buffer.bytes}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.max.request.size

Максимальный размер запроса (сообщения). Рекомендованное значение — ${global.platform.kafka.producer.max.request.size}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.metadata.max.age.ms

Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений, мс. Рекомендованное значение — ${global.platform.kafka.producer.metadata.max.age.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.connections.max.idle.ms

Тайм-аут закрытия неиспользуемых подключений, мс. Рекомендованное значение — ${global.platform.kafka.producer.connections.max.idle.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.max.block.ms

Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — ${global.platform.kafka.producer.max.block.ms}. Значение переменной устанавливается в файле репозитория Common

dictionary.kafka.producer_factory.compression.type

Сжатие данных. Рекомендованное значение — ${global.platform.kafka.producer.compression.type}. Значение переменной устанавливается в файле репозитория Common

При определении параметров используются переменные, значения которых устанавливаются в файлах репозитория 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 заданы параметры:

Параметр

Описание

id

Уникальный идентификатор, не заполняется

permission

Привилегия доступа к операции, рекомендованное значение — UFS_DICTIONARY.STMAN.DICTIONARY_MANAGE

channelName

Канал, в рамках которого доступна операция, рекомендованное значение — SUPPORT

name

Уникальное наименование операции, рекомендованное значение — UFS_DICTIONARY

title

Заголовок операции, отображаться в каталоге операций и на плитке, если его длина не превышает 48 символов, рекомендованное значение — Справочники

shortTitle

Короткий заголовок операции, отображаться в каталоге операций и на плитке, если длина полного заголовка превышает 48 символов, рекомендованное значение — Справочники

subsystem

Наименование компонента для передачи во внешний компонент аудита событий безопасности, рекомендованное значение — Справочники

background

Цвет фона плитки, рекомендованное значение — #4b1ea6

keyWords

Ключевые слова для поиска, должны разделяться символом ;, рекомендованное значение — справочники

keyWordSynonyms

Синонимы ключевых слов, должны разделяться символом ;, рекомендованное значение — нси

weight

Вес операции, влияет на расположение плиток, рекомендованное значение — 0

path

Контекст операции

path2

Контекст операции

url

Ссылка на операцию, рекомендованное значение — efs-dictionary-app.bundle.js

subSystemType

Варианты открытия приложений, возможные значения:
INSTEAD — вместо текущего приложения;
INTERNAL — в iframe вместо текущего приложения;
EXTERNAL — в новом окне.
рекомендованное значение — INSTEAD

supParamId

Наименование параметра, содержащего URL операции

needIdentification

Флаг необходимости вызова процесса идентификации для данной операции, рекомендованное значение — false

isAvailableInStandIn

Доступна ли операция в режиме StandIn, рекомендованное значение — true

isPilotZone

Флаг, показывающий, что операция недоступна в зоне промышленной эксплуатации и доступна только в зоне опытной эксплуатации, рекомендованное значение — false

Приложение описывается в JSON-файле UFS_DICTIONARY_amw.json , который включен в дистрибутив конфигурации развертывания LNSE. Файл размещается в каталоге \conf\data\smgx_amw\templates\UFS_DICTIONARY_amw.json.

В файле с описанием приложения LNSE задаются параметры:

Параметр

Описание

metadata.targetApp

Приложение для загрузки интегрируемого приложения, рекомендованное значение — SMGX_AMW

applications.name

Уникальное наименование интегрируемого приложения, рекомендованное значение — UFS_DICTIONARY

applications.description

Описание интегрируемого приложения, рекомендованное значение — Сервис предоставления справочных данных

applications.title

Краткое описание интегрируемого приложения, выводится на всплывающих подсказках, рекомендованное значение — Справочники

applications.permission

Привилегия для получения доступа к интегрируемому приложению, рекомендованное значение — UFS_DICTIONARY.STMAN.DICTIONARY_MANAGE

applications.icon

Значок для отображения на плашке интегрируемого приложения, рекомендованное значение — GLOBE

applications.openingMode

Режим отклытия приложения, допустимые значения: BUNDLE, EMBEDDED, рекомендованное значение — EXTERNAL

versions.versions

Условная версия интегрируемого приложения в системе SMGX, рекомендованное значение — 01.00

versions.description

Описание версии интегрируемого приложения в системе SMGX, рекомендованное значение — Сервис предоставления справочных данных

versions.staticPathUrl

Ссылка на bundle.js интегрируемого приложения, рекомендованное значение — {{ rest_entry_point }}/ufs-dictionary-manager/

versions.uiFramework

UI Framework, на котором написано интегрируемое приложение, допустимые значения: REACT, VUE, SVELTE, ANGULAR, рекомендованное значение — REACT

versions.enabledFlag

Флаг активации приложения, рекомендованное значение — 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

Описание

dictionary.all.conf

lnse.external.authentication.profile

Профиль, используемый при аутентификации пользователей. Рекомендованное значение — AUTH_IAM. Фильтр аутентификации — IamTokenAuthenticatorProvider

dictionary.platform.iam.auth.publickey.locations

Путь к открытому ключу провайдера аутентификации. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.auth.publickey.locations') }}. Значение переменной устанавливается в файле репозитория Common

dictionary.platform.iam.auth

Включение/отключение валидации JWT-токена в фильтре аутентификации. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.auth') }}. Значения переменных устанавливаются в файлах репозитория Common

dictionary.platform.iam.logout.url

URL для logout при работе с IAM Proxy. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.logout.url') }}. Значения переменных устанавливаются в файлах репозитория Common

dictionary.istio.all.conf

dictionary.platform.iam.auth.host

Хост провайдера аутентификации. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.auth.host') &#124; default('') }}. Значения переменных устанавливаются в файлах репозитория Common

dictionary.platform.iam.auth.port

Порт провайдера аутентификации. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.iam.auth.port') &#124; default('') }}. Значения переменных устанавливаются в файлах репозитория Common

data-dictionary-manage-config-cm.yaml, <br /> data-dictionary-manage*.json

aim.auth.token.cookie.name

Название cookie токена аутентификации. Рекомендованное значение — UFS-TOKEN

ufs.auth.routing.refresh.thread.pool.size

Размер пула потоков для обновления токена маршрутизации. Рекомендованное значение — 3

ufs.auth.routing.refresh.duration.milliseconds

Ожидаемое время выполнения задачи по обновлению токена маршрутизации. Рекомендованное значение — 3000

ufs.security.jwt.aud.list

Список разрешенных значений для aud в JWT-токене

ufs.security.employee.identifier.sudir.header

Название заголовка HTTP-запроса с идентификатором (логином) пользователя от СУДИР. Рекомендованное значение — iv-user

ufs.security.employee.identifier.session.attribute

Название мета-атрибута сессии с идентификатором (логином) пользователя. Рекомендованное значение — employeeLogin

ufs.security.employee.identifier.verification.enabled

Признак проверки идентификатора сотрудника. Рекомендованное значение — FALSE

platform.auth.filter.nonclients.allowed

Признак разрешения работы с компонентом для неклиентов. Рекомендованное значение — FALSE

platform.auth.filter.nonclients.client.type

Название мета-атрибута сессии с идентификатором типа клиента для неклиентов. Рекомендованное значение — clientType

platform.auth.filter.nonclients.client.type.noclient

Значение типа клиента для неклиентов. Рекомендованное значение — guest

ufs.security.module.connect.timeout

Конфигурации тайм-аута на соединение, мс. Рекомендованное значение — 500

ufs.security.module.max.total.connections

Максимальное число соединений в пуле. Рекомендованное значение — 10

ufs.security.module.timeout

Тайм-аут, мс. Рекомендованное значение — 3000

Параметры интеграции с 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

Описание

dictionary.all.conf

lnse.external.authorization.type

Условное обозначение библиотеки, используемой для обмена с провайдером аутентификации. Рекомендованное значение — OSA

lnse.external.authorization.multitenancy

Включение режима мультитенантности при получении ролей и привилегий пользователя. Рекомендованное значение — false

lnse.external.authorization.tenantsFromJWT

Включение получения тенантов, доступных пользователю, из JWT-токена. Рекомендованное значение — false

data-dictionary-manage-config-cm.yaml,
data-dictionary-manage*.json

ufs.baseUrl.AUTHORIZATION

Путь до сервиса авторизации AUTZ. Рекомендованное значение — ${global.ose.platform.ufs.baseurl.security}. Значение переменной устанавливается в файле репозитория Common

При определении параметров интеграции с AUTZ используются переменные, значения которых устанавливаются в файлах репозитория Common:

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

global.ose.platform.ufs.baseurl.security

ufs.baseUrl.AUTHORIZATION

Путь до сервиса авторизации AUTZ в среде контейнеризации. Значение указывается в _global.resources.conf

Модель авторизации АРМ Администратора 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

Описание

dictionary.all.conf

lnse.external.session.type

Условное обозначение библиотеки и режима ее функционирования, используемой для управления сессионными данными пользователей АРМ Администратора LNSE. Рекомендованное значение — sds-with-cache

ufs.sds.client.clusterUrl

URL API SUSD для Kubernetes/OpenShift. Рекомендованное значение — {{ lookup('custom_vars', 'global.ose.platform.ufs.baseurl.sds.master') }}/ufs-session-master/rest

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

Переменная репозитория Common

Параметр дистрибутива LNSE

Описание

global.ose.platform.ufs.baseurl.sds.master

ufs.sds.client.clusterUrl

Путь до библиотеки

Описание настроек функционирования SUSL приведено в Руководстве администратора.

Параметры интеграции с компонентом Журналирования#

Интеграция с LOGM#

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

События журналирования могут публиковаться в несколько каналов:

  • локальный — сохранение в локальный лог-файл;

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

LOGM подключается в JAVA-приложение LNSE как maven-зависимость. Детальное описание процесса подключения LOGM приведено в Руководстве прикладного разработчика LOGM в разделе «Подключение и конфигурирование».

Параметры интеграции с LOGM:

Файл дистрибутива LNSE

Параметр дистрибутива LNSE

Описание

dictionary.all.conf

lnse.external.logging.type

Библиотека для локального логирования прикладных приложений LNSE. Рекомендованное значение — {{ lnse_external_logging_type }}}. Значение переменной устанавливается в файле custom_property.conf.yml

custom_property.conf.yml

lnse_external_logging_type

Библиотека для локального логирования работы прикладных приложений LNSE. Рекомендованное значение — ufs-logger

Функциональностью 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

Описание

dc.yaml

ufs.tenant.code

Код проекта (тенанта). Рекомендованное значение — {{ TENANT_CODE }}. Значение переменной устанавливается в файле репозитория Common

dictionary_logger.json

code

Код компонента. Пример значения — DICTIONARY или LNSE

name

Описание компонента. Пример значения — Справочники

dictionary.all.conf

ufs-logger.local.json.enabled

Включение/отключение записи лог-сообщений в локальное хранилище в формате JSON. Рекомендованное значение — {{ lookup('custom_vars','global.platform.logm.file.json.enabled',default='true') }}. Значение переменной устанавливается в файле репозитория Common

lnse_logback_cfg_path

Имя и расположение файлов c настройками локального логирования в среде контейнеризации. Рекомендованное значение — {{ '/opt/logger-pl/conf/logback-to-json.xml' if (lnse_external_logging_type == 'logback') else '' }}. При использовании LOGM (ufs-logger) параметр по умолчанию не используется

lnse.external.multitenancy.jam.resource_name

Код целевого проекта (тенанта). Рекомендованное значение — {{ TENANT_CODE }}. Значение переменной устанавливается в файле репозитория Common

ufs-logger.kafka.enabled

Включение/отключение отправки лог-сообщений в удаленный компонент журналирования. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.logm.kafka.loge.enabled', default='false') }}. Значение указывается в файле _global.resources.conf репозитория Common. При установке параметра в false отключается отправка сообщений в topic Kafka, но не отключается соединение. Для отключения соединения необходимо удалить значение параметра ufs-logger.kafka.bootstrap.servers

ufs-logger.kafka.ssl.enabled.protocols

Протоколы SSL, доступные для подключения к topic Kafka, использующихся для обмена с компонентом журналирования. Рекомендованное значение — {{ global.platform.kafka.ssl.enabled.protocols }}. Значение переменной устанавливается в файле репозитория Common

ufs-logger.kafka.bootstrap.servers

Адреса серверов Kafka, использующихся для обмена с компонентом журналирования, по умолчанию не заполняется. Пример значения — {{ global.platform.logger.kafka.bootstrap.servers }}. Значение переменной устанавливается в файле репозитория Common

ufs-logger.kafka.topic

Topic Kafka, использующийся для обмена с компонентом журналирования. Рекомендованное значение — {{ global.platform.logger.kafka.topic }}. Значение переменной устанавливается в файле репозитория Common

ufs-logger.kafka.security.protocol

Параметр включает SSL при подключении к topic Kafka, использующихся для обмена с компонентом журналирования. Рекомендованное значение — PLAINTEXT

ufs-logger.parameters.url

Путь к API для получения настроек LOGM. Рекомендованное значение — {{ global.ose.platform.ufs.baseurl.logger }}/ufs-logger-parameters-ng/parameters. Значение переменной устанавливается в файле репозитория Common

ufs-logger.jfr.enabled

Включение/отключение обработки запросов на формирование файлов JFR. Рекомендованное значение — {{ lookup('custom_vars','global.platform.logm.jfr.enabled',default='false') }}. Значение переменной устанавливается в файле репозитория Common

ufs-logger.jfr.url

Путь для отправки файлов JFR. Рекомендованное значение — ${global.ose.platform.ufs.baseurl.logger}/ufs-logger-devops/jfr/save. Значение переменной устанавливается в файле репозитория Common

dictionary.ulogger.sidecar.logging.file.path

Путь к лог-файлу Ulogger. Рекомендованное значение — {{lookup('custom_vars','ufs-extensions.ulogger.sidecar.logging.file.path',default='/var/log/audit')}}. Значение переменной устанавливается в файле pipeline.yml

dictionary.ulogger.sidecar.logging.file.name

Название лог-файла. Рекомендованное значение — {{lookup('custom_vars','ufs-extensions.ulogger.sidecar.service.logging.file.name',default='service.log')}} pipeline.yml

Пример содержимого файла 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

Описание

ufs.tenant.code

TENANT_CODE,lnse.external.multitenancy.jam.resource_name

Код проекта (тенанта), пример значения — DICTPF. Значение указывается в common.conf.yml

global.platform.logm.file.json.enabled

ufs-logger.local.json.enabled

Включение/отключение записи в локальный лог-файл в формате JSON. Рекомендованное значение — true. Значение указывается в _global.resources.conf

global.platform.logm.kafka.loge.enabled

ufs-logger.kafka.enabled

Включение/отключение отправки лог-сообщений в удаленный компонент журналирования. Рекомендованное значение — false. Значение указывается в _global.resources.conf

global.platform.logger.kafka.bootstrap.servers

ufs-logger.kafka.bootstrap.servers

Адреса серверов Kafka, использующихся для обмена с удаленным компонентом журналирования. Значение указывается в _global.kafka.conf

global.platform.logger.kafka.topic

ufs-logger.kafka.topic

Topic Kafka, использующихся для обмена с удаленным компонентом журналирования. Пример значения — lnse.logs. Значение указывается в _global.kafka.conf

global.platform.kafka.ssl.enabled.protocols

ufs-logger.kafka.ssl.enabled.protocols

Протоколы, доступные для подключения к topic Kafka удаленного компонента журналирования. Рекомендованное значение — TLSv1.2. Значение указывается в файлах _global.kafka.conf и _global.resources.conf

global.ose.platform.ufs.baseurl.logger

ufs-logger.parameters.url

Путь к REST-API для получения настроек LOGM. Значение указывается в _global.resources.conf

global.platform.logm.jfr.enabled

ufs-logger.jfr.enabled

Включение/отключение обработки запросов на формирование файлов JFR. Значение указывается в _global.resources.conf

global.ose.platform.ufs.baseurl.logger

ufs-logger.jfr.url

Путь для отправки файлов JFR. Значение указывается в _global.resources.conf

Интеграция с 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.

  1. Параметры интеграции с MONA устанавливаются путем определения их значений в файле \conf\config\parameters\dictionary.all.conf дистрибутива конфигурации развертывания LNSE.

  2. Адреса программных интерфейсов для сбора метрик задаются в файлах \bh\*.jar\BOOT-INF\classes\application.yml дистрибутива бинарных артефактов LNSE и в файлах \conf\k8s\base\data-dictionary-*\svc.yaml дистрибутива конфигурации развертывания LNSE.

  3. Порты для доступа к интерфейсам для сбора метрик устанавливаются в файлах \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

Описание

dictionary.all.conf

lnse.external.monitoring.billedResourceNamePartition

Условное обозначение конфигурации развертывания. Рекомендованное значение — sbrf

lnse.external.monitoring.billedResourceNameService

Условное обозначение компонента. Рекомендованное значение — LNSE

lnse.external.monitoring.billedResourceNameFormUsingRn

Способ определения проекта (тенанта), обращающегося к LNSE компонента:
1. Если true, то необходимо использовать значение параметра ResourceName запроса;
2. Если false, то необходимо формировать по данным запроса и значениям параметров конфигурации LNSE.

Рекомендованное значение — false

Параметры интеграции с MONA

Файл дистрибутива LNSE

Параметр дистрибутива LNSE

Описание

dictionary.all.conf

ufs-monitoring.micrometer.endpoint.enabled

Включение/отключение отправки метрик в буфер для предоставления их для вычитки клиентскими приложениями MONA либо для дальнейшей их публикации в Prometheus средствами компонента. Рекомендованное значение — {{ lookup('custom_vars','global.platform.monm.micrometer.endpoint.enabled',default='true') }}. Значение переменной устанавливается в файле репозитория Сommon. Если ufs-monitoring.micrometer.endpoint.enabled = true, то ufs-monitoring.kafka.enabled должен быть установлен в false и должно быть определено значение для global.platform.monm.micrometer.clear.buf.enabled

ufs-monitoring.metrics.micrometer.publish.idle

Включение/отключение отправки событий мониторинга в micrometer (при значении true отправки не будет). Рекомендованное значение — false

ufs-monitoring.clear.micrometer.buf.enabled

Включение/отключение обнуления значений метрик после их сбора клиентскими приложениями MONA. Рекомендованное значение — {{ lookup('custom_vars','global.platform.monm.micrometer.clear.buf.enabled',default='true') }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.micrometer.push.enabled

Включение/отключение публикации метрик в Prometheus методом PUSH. Рекомендованное значение — false

lnse.external.monitoring.ssl-update

Включает поддержку ротации секрета подключения к Kafka мониторинга. Рекомендованное значение — false

Параметры интеграции с MONE

Файл дистрибутива LNSE

Параметр дистрибутива LNSE

Описание

dictionary.all.conf

ufs-monitoring.kafka.enabled

Включение/отключение отправки метрик в topic Kafka MONE. Рекомендованное значение — {{ lookup('custom_vars','global.platform.monm.kafka.mone.enabled',default='false') }}. Значение переменной устанавливается в файле репозитория Сommon.

Если ufs-monitoring.kafka.enabled = true, то ufs-monitoring.micrometer.endpoint.enabled должен быть установлен в false и должны быть определены параметры подключения к topic Kafka

ufs-monitoring.kafka.bootstrap.servers

Адреса серверов Kafka. Рекомендованное значение — {{ lookup("custom_vars", "lnse.mone.kafka.internalService") }}.{{ namespace }}.svc.cluster.local:{{ lookup("custom_vars", "lnse.mone.kafka.internalPort") }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.topic.metrics

Имя topic Kafka для отправки метрик. Рекомендованное значение — {{ global.kafka.monitoring.metrics.topic }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.topic.settings

Имя topic Kafka для общих настроек. Рекомендованное значение — {{ global.kafka.monitoring.settings.topic }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.topic.metadata

Имя topic Kafka для отправки метаданных. Рекомендованное значение — {{ global.kafka.monitoring.metadata.topic }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.topic.filter

Имя topic Kafka для настроек фильтров. Рекомендованное значение — {{ global.kafka.monitoring.filter.topic }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.ssl.enabled.protocols

Протоколы, доступные для подключения к Kafka. Рекомендованное значение — {{ global.platform.kafka.ssl.enabled.protocols }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.security.protocol

Протокол, по которому происходит подключение к Kafka. Рекомендованное значение — PLAINTEXT

ufs-monitoring.kafka.ssl.endpoint.identification.algorithm

Алгоритм идентификации точки подключения, используемый клиентом. Рекомендованное значение — {{ global.platform.kafka.ssl.endpoint.identification.algorithm }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.delivery.timeout.ms

Время ожидания результата записи в Kafka, рекомендованное значение — {{ global.platform.kafka.producer.delivery.timeout.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.batch.size

Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — {{ global.platform.kafka.producer.batch.size }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.linger.ms

Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — {{ global.platform.kafka.producer.linger.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.buffer.memory

Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — {{ global.platform.kafka.producer.buffer.memory }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.request.timeout.ms

Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — {{ global.platform.kafka.producer.request.timeout.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.send.buffer.bytes

Размер TCP-буфера на отправку сообщения, байты. Рекомендованное значение — {{ global.platform.kafka.producer.send.buffer.bytes }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных, байты. Рекомендованное значение — {{ global.platform.kafka.producer.receive.buffer.bytes }}, Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.max.request.size

Максимальный размер запроса (сообщения). Рекомендованное значение — {{ global.platform.kafka.producer.max.request.size }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.metadata.max.age.ms

Время, через которое происходит принудительное обновление метаданных «по графику», не зависящее от внешних изменений, мс. Рекомендованное значение — {{ global.platform.kafka.producer.metadata.max.age.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.connections.max.idle.ms

Тайм-аут закрытия неиспользуемых подключений, мс. Рекомендованное значение — {{ global.platform.kafka.producer.connections.max.idle.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.max.block.ms

Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — {{ global.platform.kafka.producer.max.block.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.producer_factory.compression.type

Сжатие данных. Рекомендованное значение — {{ global.platform.kafka.producer.compression.type }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.session.timeout.ms

Тайм-аут сессии, в рамках которого приходят heartbeat-сигналы длиной heartbeat.interval.ms. Рекомендованное значение — {{ global.platform.kafka.consumer.session.timeout.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.fetch.max.bytes

Максимальное количество данных, возвращаемое сервером, рекомендованное значение — {{ global.platform.kafka.consumer.fetch.max.bytes }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.fetch.max.wait.ms

Максимальное время ожидания, в течение которого сервер может не отвечать. Рекомендованное значение — {{ global.platform.kafka.consumer.fetch.max.wait.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.fetch.min.bytes

Минимальное количество данных, возвращаемое сервером в ответ на fetch-запрос. Рекомендованное значение — {{ global.platform.kafka.consumer.fetch.min.bytes }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.max.poll.interval.ms

Максимально допустимый интервал между poll-запросами. Рекомендованное значение — {{ global.platform.kafka.consumer.max.poll.interval.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.heartbeat.interval.ms

Heartbeat-сигналы в рамках сессии длиной session.timeout.ms. Рекомендованное значение — {{ global.platform.kafka.consumer.heartbeat.interval.ms }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.max.partition.fetch.bytes

Максимальное количество данных, получаемых с партиции. Рекомендованное значение — {{ global.platform.kafka.consumer.max.partition.fetch.bytes }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.send.buffer.bytes

Размер TCP-буфера на чтение данных, рекомендованное значение — {{ global.platform.kafka.consumer.receive.buffer.bytes }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.receive.buffer.bytes

Размер TCP-буфера на чтение данных. Рекомендованное значение — {{ global.platform.kafka.consumer.receive.buffer.bytes }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.kafka.consumer_factory.request.timeout.ms

Максимальное время ожидания ответа. Рекомендованное значение — {{ global.platform.kafka.consumer.request.timeout.ms }}, значение переменной устанавливается в файле репозитория Сommon

ufs-monitoring.infra.metrics.period

Период сбора инфраструктурных метрик, рекомендованное значение — 20s

ufs-monitoring.jms.enabled

Включение/отключение использования в передаче метрик JMS. Рекомендованное значение — {{ global.monitoring.jms.enabled&#124default('false') }}, Значение переменной устанавливается в файле репозитория Сommon

lnse.external.monitoring.ssl-update

Включает поддержку ротации секрета подключения к Kafka мониторинга. Рекомендованное значение — false

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

Параметр репозитория Common

Параметр дистрибутива LNSE

Описание

global.platform.monm.micrometer.endpoint.enabled

ufs-monitoring.micrometer.endpoint.enabled

Включение/отключение отправки метрик в буфер для предоставления их для вычитки клиентскими приложениями MONA либо для дальнейшей их публикации в Prometheus средствами компонента. Рекомендованное значение — true. Значение указывается в _global.resources.conf

global.platform.monm.micrometer.clear.buf.enabled

ufs-monitoring.clear.micrometer.buf.enabled

Включение/отключение обнуления значений метрик после их сбора клиентскими приложениями MONA. Рекомендованное значение — true. Значение указывается в _global.resources.conf

global.platform.monm.kafka.mone.enabled

ufs-monitoring.kafka.enabled

Включение/отключение отправки метрик в topic Kafka MONE. Рекомендованное значение — false

global.kafka.monitoring.bootstrap.servers

ufs-monitoring.kafka.bootstrap.servers

Адреса серверов Kafka. Значение указывается в _global.kafka.conf

global.kafka.monitoring.metrics.topic

ufs-monitoring.kafka.topic.metrics

Имя topic Kafka для отправки метрик. Значение указывается в _global.kafka.conf

global.kafka.monitoring.settings.topic

ufs-monitoring.kafka.topic.settings

Имя topic Kafka для общих настроек. Значение указывается в _global.kafka.conf

global.kafka.monitoring.metadata.topic

ufs-monitoring.kafka.topic.metadata

Имя topic Kafka для отправки метаданных. Значение указывается в _global.kafka.conf

global.kafka.monitoring.filter.topic

ufs-monitoring.kafka.topic.filter

Имя topic Kafka для настроек фильтров. Значение указывается в _global.kafka.conf

global.monitoring.jms.enabled

ufs-monitoring.jms.enabled

Включение/отключение использования в передаче метрик JMS. Рекомендованное значение — false. Значение указывается в _global.resources.conf

Описание переменных, использующихся при определении параметров подключения к 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

Описание

data-dictionary-manage.conf,
data-dictionary-load.conf

lnse.external.audit.type

Условное обозначение библиотеки, используемой для обмена с компонентом аудита. Рекомендованное значение — cm

data-dictionary-service.conf

lnse.external.audit.type

Условное обозначение библиотеки, используемой для обмена с компонентом аудита. Рекомендованное значение — none

data-dictionary-manage.conf

dictionary.data-dictionary-manage.union-audit.CImodule

Идентификатор элемента развертывания компонента LNSE. Рекомендованное значение — {{ fpConfig.artifactId }}_data-dictionary-manage

data-dictionary-load.conf

dictionary.data-dictionary-load.union-audit.CImodule

Идентификатор элемента развертывания компонента LNSE. Рекомендованное значение — {{ fpConfig.artifactId }}_data-dictionary-load

dictionary.all.conf

lnse.external.multitenancy.jam.subject

Код проекта (тенанта) LNSE. Рекомендованное значение — {{ TENANT_CODE }}. Значение переменной устанавливается в файле репозитория Сommon

lnse.external.multitenancy.jam.resource_name

Код целевого проекта (тенанта). Рекомендованное значение — {{ TENANT_CODE }}. Значение переменной устанавливается в файле репозитория Сommon

dictionary.platform.union-audit.sourceSystem

Код АС, в состав которой интегрируется LNSE. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union-audit.sourceSystem', default='FS') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.circuit-breaker.mode

Режим работы главного балансировщика запросов.
Возможные значения:
DUP — отправка осуществляется во все группы балансировки, сообщения дублируются,
STD — отправка осуществляется в главную группу балансировки, которая устанавливается параметром union-audit.balance_group.<условное обозначение группы балансировки>.main = true.
Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.circuit_breaker.mode') }}. Значение переменной устанавливается в файле репозитория Сommon

ufs-audit-client-useQuota

Использование квотирования запросов. Рекомендованное значение — false

lnse.union-audit.kafka.startPort

Для каждого подключаемого кластера Kafka из списка внутренний порт доступа инкрементируется начиная с указанного порта, внутренние порты интеграций кластеров Kafka не должны повторяться. Рекомендованное значение — 19193

lnse.union-audit.egress.kafka.tls.caCertificates

Путь доступа к корневому сертификату на Egress. Рекомендованное значение — /lnse/etc/istio/egressgateway-ca-certs/root.crt

lnse.union-audit.egress.kafka.tls.clientCertificate

Путь доступа к клиентскому сертификату на Egress. Рекомендованное значение — /lnse/etc/istio/egressgateway-certs/tls.crt

lnse.union-audit.egress.kafka.tls.privateKey

Путь доступа к приватному ключу клиентского сертификата на Egress. Рекомендованное значение — /lnse/etc/istio/egressgateway-certs/tls.key

union-audit.kafka.$$$item.name$$$.bootstrap.servers

Список брокеров для инициализации подключения к Kafka. Рекомендованное значение — lnse-svc-egress-kafka-$$$ loop.index $$$-union-audit-{{distrib.release.version}}.{{namespace}}.svc.cluster.local:{{lookup("custom_vars", "lnse.union-audit.kafka.startPort")&#124int + $$$ loop.index0 $$$ }}

union-audit.kafka.$$$item.name$$$.batch.size

Максимальных размер пакета с сообщениями, байты. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.batch.size') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.buffer.memory

Объем буфера, хранящего сообщения перед отправкой, байты. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.buffer.memory') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.compression.type

Сжатие данных. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.compression.type') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.connections.max.idle.ms

Тайм-аут закрытия неиспользуемых подключений (в мс). Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.connections.max.idle.ms') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.delivery.timeout.ms

Время ожидания результата записи в Kafka. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.producer.delivery.timeout.ms') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.linger.ms

Фиксация времени, затрачиваемого на сбор пакета, мс. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.linger.ms') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.max.block.ms

Максимальное время ожидания освобождения буфера на Kafka. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.producer.max.block.ms') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.max.request.size

Максимальный размер запроса (сообщения) producer AUDM (в байтах). Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.producer.max.request.size') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.metadata.max.age.ms

Максимальный размер запроса (сообщения). Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.metadata.max.age.ms') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.receive.buffer.bytes

Размер TCP-буфера на чтение данных (в байтах). Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.receive.buffer.bytes') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.request.timeout.ms

Максимальное время ожидания ответа от сервера на запрос. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.producer.request.timeout.ms') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.send.buffer.bytes

Размер TCP-буфера на отправку сообщения (в байтах). Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.producer.send.buffer.bytes') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.security.protocol

Протокол, по которому происходит подключение к Kafka. Рекомендованное значение — PLAINTEXT

union-audit.kafka.$$$item.name$$$.ssl.endpoint.identification.algorithm

Алгоритм идентификации точки подключения, используемый клиентом. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.ssl.endpoint.identification.algorithm') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.ssl.enabled.protocols

Протоколы, доступные для подключения к Kafka. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.kafka.ssl.enabled.protocols') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-events-crit-in

Протокол передачи событий — UFS. Topic Kafka для отправки критичных событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.ufs.audit-events-crit-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-events-uncrit-in

Протокол передачи событий — UFS. Topic Kafka для отправки некритичных событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.ufs.audit-events-uncrit-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-metamodel-in

Протокол передачи событий — UFS. Topic Kafka для отправки метамодели событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.ufs.audit-metamodel-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-events-crit-in

Протокол передачи событий — AVRO. Topic Kafka для отправки критичных событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.pprb.audit-events-crit-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-events-uncrit-in

Протокол передачи событий — AVRO. Topic Kafka для отправки некритичных событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.pprb.audit-events-uncrit-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-metamodel-in

Протокол передачи событий — AVRO. Topic Kafka для отправки матамодели событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.pprb.audit-metamodel-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-events-crit-in

Протокол передачи событий — UNION. Topic Kafka для отправки критичных событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.union.audit-events-crit-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-events-uncrit-in

Протокол передачи событий — UNION. Topic Kafka для отправки некритичных событий аудита. Рекомендованное значение — . Значение переменной устанавливается в файле репозитория Сommon

union-audit.kafka.$$$item.name$$$.topic.audit-metamodel-in

Протокол передачи событий — UNION. Topic Kafka для отправки метамодели событий аудита. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.kafka.union.audit-metamodel-in') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.balance_group.$$$item.name$$$.main

Флаг, определяющий основную группу. Может быть только одна основная группа. Рекомендованное значение — $$$item.main$$$

union-audit.balance_group.$$$item.name$$$.providerClass

Имя класса провайдера. Рекомендованное значение — $$$item.provider_class$$$

union-audit.balance_group.$$$item.name$$$.priority

Приоритет отправки сообщений. Рекомендованное значение — $$$loop.revindex * 11$$$

union-audit.balance_group.$$$item.name$$$.eventProtocol

Протокол передачи событий. Рекомендованное значение — $$$item.protocol$$$

union-audit.balance_group.$$$item.name$$$.providers

Имена провайдеров через запятую. Используется для связывания провайдеров с группой. Рекомендованное значение — $$$item.providers

union-audit.balance_group.$$$item.name$$$.circuit_breaker.recoveryTimeout

Время восстановления после сбоя, мс. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.circuit_breaker.recoveryTimeout') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.balance_group.$$$item.name$$$.circuit_breaker.successThreshold

Количество успешных отправок для перехода из состояния half-open в close. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.circuit_breaker.successThreshold') }}. Значение переменной устанавливается в файле репозитория Сommon

union-audit.balance_group.$$$item.name$$$.balanceMode

Режим балансировки. Возможные значения: RR — Round Robin;
WRR — Weight Round Robin (балансировка учетом веса провайдеров).

Рекомендованное значение — RR

union-audit.balance_group.$$$item.name$$$.circuit_breaker.mode

Режим работы главного балансировщика запросов. Рекомендованное значение — ERROR_WINDOW

union-audit.balance_group.$$$item.name$$$.circuit_breaker.failureThreshold

Режим работы главного балансировщика запросов — ERROR_WINDOW. Количество ошибок для открытия circuit_breaker. Рекомендованное значение — {{ lookup('custom_vars', 'global.platform.union_audit.circuit_breaker.failureThreshold') }}. Значение переменной устанавливается в файле репозитория Сommon

Параметры интеграции с IAGW

IAGW предназначен для управления трафиком между различными компонентами Platform V. При наличии в среде функционирования компонента IAGW, HTTP-запросы к конкретному программному интерфейсу сначала отправляются на IAGW, а затем IAGW осуществляет маршрутизацию и балансировку запросов по серверам, на которых развернут компонент.

В состав дистрибутива конфигурации развертывания LNSE включены файлы, предназначенные для публикации в IAGW. Файлы находятся в каталогах дистрибутива:

  • \conf\global;

  • \conf\global\iag;

  • \conf\limits.

Файлы предназначены для импорта в IAGW средствами CDJE. Импорт в IAGW выполняется при запуске playbook NGINX__DEPLOY. Значение определяет тип шлюза, на котором необходимо разместить файлы:

  • MM — IAG_MM;

  • II — IAG_II;

  • без указания — IAG_UI.

Настройка межблочной синхронизации

Для настройки автоматической межблочной синхронизации необходимо:

  • на блоке-источнике для data-dictionary-load и data-dictionary-manage параметр ufs.dictionary.replication.mode установить в AUTO или ALL;

  • на блоке источнике и на блоках-приемниках для data-dictionary-load и data-dictionary-manage в параметре ufs.dictionary.replication.blocks указать блоки, участвующие в синхронизации;

  • на блоке-источнике средствами АРМ Администратора LNSE запустить выполнение периодической задачи ReplicationTaskData. По умолчанию задача запущена, то есть, находится в статусе «Запланирована». Для запуска необходимо в главном меню АРМ Администратора LNSE перейти в НастройкиСлужебные задачи. В строке описания задачи ReplicationTaskData нажать на значок редактирования задачи и установить дату ее запуска.

Для получения доступа к межблочной синхронизации справочников средствами АРМ Администратора LNSE необходимо:

  • на блоке-источнике для data-dictionary-manage параметр ufs.dictionary.replication.mode установить в MANUAL или ALL;

  • на блоке источнике и на блоках-приемниках для data-dictionary-load и data-dictionary-manage в параметре в параметре ufs.dictionary.zones указать блоки, участвующие в синхронизации. Значение параметра ufs.dictionary.zones используется, только если в ответ на запрос в STDE информация о топологии не получена.

Примечание

Значение ALL для параметра ufs.dictionary.replication.mode означает, что включена и ручная, и автоматическая синхронизация. Значение OFF для параметра ufs.dictionary.replication.mode означает, что и ручная, и автоматическая синхронизация отключена, функциональность недоступна.

Примечание

Доступность автоматической синхронизации на блоке-источнике и на целевом блоке зависит от статуса блока в STDE. Перечень статусов, при которых синхронизация допустима, устанавливается в параметре CFGA ufs.dictionary.replication.allow.status. Если значение параметра не заполнено, то ограничение не накладывается.

Стендозавимые параметры#

Стендозависимые параметры LNSE приведены в конфигурационных файлах дистрибутива:

Обновление#

Для обновления 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:

  1. Перейдите в консоль K8SC.

  2. Перейти на вкладку в «Deployment Configs».

  3. Напротив элемента развертывания 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/detail

  • POST https://{{host}}/data-dictionary-service/healthcheck/detail

  • GET https://{{host}}/data-dictionary-load/healthcheck/detail

  • POST https://{{host}}/data-dictionary-load/healthcheck/detail

  • GET https://{{host}}/ufs-dictionary-manager/healthcheck/detail

  • POST 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-service

  • GET https://{{host}}/data-dictionary-load/healthcheck/data-dictionary-load

  • GET https://{{host}}/ufs-dictionary-manager/healthcheck/data-dictionary-manage

  • POST https://{{host}}/data-dictionary-service/healthcheck/data-dictionary-service

  • POST https://{{host}}/data-dictionary-load/healthcheck/data-dictionary-load

  • POST 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 находится в рабочем состоянии выполните следующие действия:

  1. Перейдите по ссылке http(s)://<хост>:<порт>/data-dictionary-service/rest/debug/hc.

Пример ответа
{"success":true,"body":"ON"}
  1. Для получения номера версии компонента, перейдите по ссылке 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"}}
  1. Выполните тестовый запрос:

    1. Перейдите по ссылке http(s)://<хост>:<порт>/data-dictionary-service/test.html;

    2. Нажмите кнопку 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
} }
  1. Выполните тестовый запрос к 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 находится в рабочем состоянии, выполните следующие действия:

  1. Перейдите по ссылке http(s)://<хост>:<порт>/data-dictionary-load/rest/debug/hc.

Пример ответа:
{"success":true,"body":"ON"}
  1. Для получения номера версии компонента, перейдите по ссылке 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"}}
  1. Выполните тестовый запрос:

    1. Перейдите по ссылке http(s)://<хост>:<порт>/data-dictionary-load/test.html;

    2. Нажмите кнопку 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"
     },
     ...       
        ]
    }
}
  1. Выполните тестовый запрос к 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 находится в рабочем состоянии, выполните следующие действия:

  1. Перейдите по ссылке http(s)://<хост>:<порт>/ufs-dictionary-manager/rest/debug/hc.

Пример ответа
{"success":true,"body":"ON"}
  1. Для получения номера версии компонента, перейдите по ссылке 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#

  1. Убедитесь, что pod lnse-ingress и lnse-egress находятся в статусе Running:

Пример команды для проверки
kubectl get pod <имя pod> --namespace=<имя пространства имен>
  1. Если pod запущены, проверьте их лог-сообщения на наличие ошибок:

Пример команды для проверки
kubectl logs -f <имя pod> --namespace=<имя пространства имен>

Если pod запущены и не содержат ошибок, то проверка выполнена успешно.

Проверка интеграции с OTTS#

При ошибках интеграции с OTTS сервис LNSE не запустится.

Если сервис LNSE запущен и pod находятся в статусе Running, проверка интеграции считается автоматически пройденной.

Проверка интеграции с SRLS#

  1. В среде контейнеризации в GlobalRateLimit (GlobalRateLimitCommon) для тенанта измените значение всех value на 1.

  2. Перейдите во вкладку ProjectPods.

  3. Найдите pod lnse-ingress и перейдите в него. Откройте вкладку Logs. Проверьте наличие ошибки с кодом 429 - reaquest_rate_limited. Наличие ошибки с кодом 429 - reaquest_rate_limited указывает на работоспособную интеграцию с SRLS.

  4. Верните настройки параметров в среде контейнеризации в исходное состояние.

Проверка интеграции с KFKA#

  1. Выполните запрос к 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.

  1. После успешного выполнения запроса средствами интерфейса компонента журналирования найдите:

    • в интеграционном журнале запись о публикации сообщения о необходимости сброса кеша (имя элемента поставки: data-dictinary-load);

    • в интеграционном журнале запись о вычитке сообщения о необходимости сброса кеша (имя элемента поставки: data-dictinary-manage);

    • в системном журнале запись о сбросе кеша (имя класса: %cache%, имя элемента поставки: data-dictinary-manage).

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

Проверка интеграции с CFGA#

  1. Выполните запрос к 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.

  1. После успешного выполнения запроса:

    1. Средствами CFGA для модуля data-dictionary-load LNSE установите параметр ufs.dictionary.load.rest.enable в false;

    2. Повторно выполните запрос к load-api, изменив код версии данных. Если в ответе содержится строка "success": false, то проверка выполнена успешно;

    3. Средствами CFGA для модуля data-dictionary-load LNSE для параметра ufs.dictionary.load.rest.enable установите исходное значение;

    4. Снова выполните запрос к load-api. В ответе должна содержаться строка "success": true.

Проверка интеграции с STDE#

Интеграция с STDE не проверяется, т.к. критичного влияния на функционирование сервиса при ошибках интеграции с STDE нет.

Проверка интеграции с SMGX#

  1. В адресной строке браузера введите URL АРМ SMGX.

  2. Укажите идентификационную и аутентификационную информацию пользователя с ролью системного администратора АРМ Администратора LNSE и подтвердите вход.

  3. Средствами АРМ SMGX перейдите в АРМ Администратора LNSE.

Если в браузере отобразилась экранная форма АРМ Администратора LNSE со списком справочников, то проверка выполнена успешно.

Проверка интеграции с AUTH, AUTZ и SUSD#

  1. В адресной строке браузера введите URL АРМ AUTH.

  2. Укажите идентификационную и аутентификационную информацию пользователя с ролью системного администратора АРМ Администратора LNSE и подтвердите вход.

  3. Средствами АРМ 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#

  1. Выполните запрос к 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: ошибка при создании соединения

Выполните следующие проверки:

  1. Убедитесь, что jms/factory/INTER_UNIT_IP_HASH и jms/factory/INTER_UNIT_ROUND_ROBIN расположены в QueueConnectionFactory.

  2. Убедитесь, что jms/factory/INNER_TOPIC_ROUND_ROBIN расположен в TopicConnectionFactory.

  3. Убедитесь, что JNDI platform/masterSubsystem отсутствует на всех блоках.

  4. Параметры 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.

Также проверьте, что:

  • имеются все необходимые смежные компоненты, описанные в разделе Платформенные зависимости настоящего документа;

  • настроены все необходимые интеграции.