Руководство по системному администрированию#

О документе#

Настоящий документ является руководством по системному администрированию компонента 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, расположенный в левом верхнем углу элемента метрики:

img

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

img

Часто встречающиеся проблемы и пути их устранения#

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