Руководство по системному администрированию#
О документе#
Настоящий документ является руководством по системному администрированию компонента DS Lab (DSLB) продукта Platform V DataSpace (APT).
Расшифровку основных понятий см. в перечне "Терминов и определений".
Сценарии администрирования#
Административный интерфейс у продукта отсутствует.
Задачи администратора должны распределяться между специалистами в соответствии с установленными процессами работы на стороне потребителя и могут осуществляться как одним специалистом, так и несколькими.
Администратор DS Lab осуществляет следующие функции:
Администрирование системы разграничения прав в разрезе проектов.
Отслеживание событий мониторинга.
Отслеживание событий системного журнала.
Контроль утилизации пулов потоков.
Решение возможных технических проблем.
Администрирование системы разграничения прав в разрезе проектов#
В DS Lab предусмотрены механизмы разграничения прав пользователей в разрезе проектов: моделей и выпускаемых на основе данных моделей сервисов. Объектами доступа являются сами проектируемые и выпускаемые пользователями модели (проекты). При создании модели фиксируется ее принадлежность к владельцу (далее — тенанту), определяемому в заголовке owner-id соответствующего HTTP-запроса. Далее при всех последующих запросах к сервису DS Lab также передается заголовок owner-id, ограничивающий доступ только к тем моделям, у которых зафиксирован соответствующий тенант при создании. Нет механизмов разграничения ролей внутри тенанта, доступ к которому предоставлен конечному пользователю: имеется возможность вносить изменения/ выпускать соответствующие проекты (сервисы).
Проверка права пользователя системы указывать то или иное значение заголовка owner-id в запросах к сервису возможна двумя способами:
Внешним прокси-сервисом. При таком способе компонент DS Lab встраивается во внешнюю систему. В этом случае внешней системе необходимо самостоятельно контролировать соответствие значения заголовка owner-id пользовательской сессии.
Внутри сервиса DS Lab. При таком способе поступающий HTTP-запрос в заголовке Authorization содержит Json Web Token (JWT), внутри которого в поле tenants содержится JSON-массив строковых значений (тенантов), оперировать которыми разрешено в рамках данной JWT-сессии. В таком случае DS Lab осуществит последовательно проверки:
корректности JWT посредством JWKS, зафиксированного в настройке check.jwt.jwks сервиса DS Lab;
наличия в JWT в поле tenants значения, передаваемого в заголовке owner-id.
При невыполнении любой из вышеуказанных проверок HTTP-запрос к сервису DS Lab вернет ошибку с кодом 401: Unauthorized.
Настройки системы разграничения прав, которые требуется задать в spring-конфигурации:
check.iam.info. Возможные значения:external: проверка прав пользователя указывать то или иное значение заголовка owner-id осуществляется внешней по отношению к DS Lab системой. Внутри DS Lab проверка не производится.internal: значение по умолчанию, проверки внутри DS Lab осуществляются, но в пользовательском интерфейсе DS Lab не будет интеграции с внешней IAM-системой (Identity And Access Management).{ "url": "{value}", "realm": "{value}", "clientId": "{value}" }: пользовательский интерфейс DS Lab интегрируется с внешней IAM-системой. Внутри JSON-структуры необходимо указать URL-адрес внешнего IAM-провайдера, название пространства и приложения-клиента.
check.jwt.jwks: значение JWKS для проверки JWT, передаваемое в заголовке Authorization HTTP-запроса. Обязательно к заполнению при любом значении настройки check.iam.info, не равному external.
Варианты настройки параметра check.iam.info показаны на диаграмме:

Внимание!
Варианты external/internal не подразумевают отсутствия IAM-системы для аутентификации/авторизации пользователей! В обоих случаях взаимодействие с внешней IAM-системой обеспечивается Web-приложением, встраивающем пользовательские формы DS Lab.
Пример настройки интеграции c внешней IAM-системой (Keycloak)#
В данном разделе будет рассмотрен пример настройки DS Lab в режиме интеграции с внешней IAM-системой.
В качестве IAM-системы выбрано ПО с открытым исходным кодом — Keycloak.
Необходимо настроить и установить Keycloak согласно документации данного продукта:
Создать Realm, указав его имя (например, "my-realm").
Создать Client, указа его имя (например, "ds-client"), и далее настроить:
В полях Valid Redirect URIs и Web Origins зафиксировать адрес сервиса DS Lab:

На вкладке Mappers создать Mapper tenants:

Для пользователей (users) IAM Keycloak необходимо на вкладке Attributes завести атрибут tenants, представляющий собой JSON-массив строковых значений тех тенантов, модели DS Lab которых должны быть доступны пользователю:
Выгрузить значения JWKS для соответствующего Realm администратор IAM может по пути вида {адрес keycloack}/auth/realms/my-realm/protocol/openid-connect/certs.
Для настройки DS Lab необходимо:
Определить адрес IAM, Realm и Client, указав в настройке check.iam.info DS Lab соответствующую JSON-структуру (например,
{ "url": "", "realm": "{value}", "clientId": "{value}" }).Указать ранее полученный JWKS в настройке check.jwt.jwks.
После выполнения описанных выше действий пользователям UI DS Lab при работе по адресу необходимо будет аутентифицироваться в Keycloak IAM, получая необходимую для работы с DS Lab JWT-сессию.
События системного журнала#
Сервис DS Lab построен на базе сервиса DataSpace. Детально о событиях системного журнала можно ознакомиться в разделе "События системного журнала" документа "Руководство по системному администрированию" компонента DataSpace Core продукта Platform V DataSpace.
События мониторинга#
Сервис DS Lab построен на базе сервиса DataSpace. Детально о событиях мониторинга можно ознакомиться в разделе "События мониторинга" документа "Руководство по системному администрированию" компонента DataSpace Core продукта Platform V DataSpace.
Пулы потоков обработки запросов и подключений к БД#
Сервис DS Lab построен на базе сервиса DataSpace. Детально о пулах потоков можно ознакомиться в разделе "Пулы потоков обработки запросов и подключений к БД" документа "Руководство по системному администрированию" компонента DataSpace Core продукта Platform V DataSpace.
Мониторинг работы сервиса#
После выпуска модели (см. раздел "Выпуск модели" документа "Руководство оператора") становится доступна доска мониторинга работы выпущенного сервиса.
Для просмотра доски мониторинга необходимо открыть вкладку Детали и перейти по ссылке на dashboard.
На доске отображаются основные метрики для мониторинга работы сервиса, например:
общее количество GraphQL-запросов;
приблизительное количество всех запросов в сек;
глубина очереди накапливаемых запросов;
утилизация CPU;
процент принудительного ограничения выделяемого времени CPU для контейнера;
количество принятых/отправленных байт;
утилизация дискового пространства базой данных и др.
Более детальная информация о каждой метрике отображается при наведении курсора на символ i, расположенный в левом верхнем углу элемента метрики:

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

Часто встречающиеся проблемы и пути их устранения#
Сервис DS Lab построен на базе сервиса DataSpace. Детально о встречающихся проблемах можно ознакомиться в разделе "Часто встречающиеся проблемы и пути их устранения" документа "Руководство по системному администрированию" компонента DataSpace Core продукта Platform V DataSpace.