Перевод Abyss на Единый аудит#

В данной инструкции описан способ перевода сервисов Abyss на Единый аудит.

Самоаудит#

Шаг 1. Создать топики для событий аудита и метамоделей#

Необходимо создать три kafka топика:

  1. Топик для мониторинга доступности кластера Kafka - abyss.coordinator_audit_health_check.

  2. Топик для публикации событий аудита - abyss.coordinator_audit_events.

  3. Топик для публикации метамодели - abyss.coordinator_audit_metamodels.

Шаг 2. Конфигурация сервисов#

В Service Descriptor для параметра abyss.audit.client.type указать значение „KAFKA“ и проинициализировать параметры самоаудита

Обязательные параметры для инициализации

Описание

abyss.audit.client.type

Указать значение „KAFKA“ для публикации событий аудита и метамодели в Kafka

abyss.audit.kafka.client.health-check-topic

Указать имя топика мониторинга доступности кластера kafka, созданный на шаге 1

abyss.audit.kafka.client.source-system

Указать идентификатор исходной системы

abyss.audit.kafka.client.producer.kafka-event-topic-name

Указать имя топика для публикации событий аудита, созданный на шаге 1

abyss.audit.kafka.client.producer.kafka-metamodel-topic-name

Указать имя топика для публикации метамодели, созданный на шаге 1

Применить параметры на стенде используя задачу Jenkins

Шаг 3. Создать задачу полнотекстовой / архивной индексации#

Через Abyss UI создать задачу полнотекстовой / архивной индексации для сохранения событий аудита в хранилище. В качестве источника данных указать топики событий и метамодели аудита, созданные на шаге 1.

Аудит в другую инсталляцию PVM#

Публикация в Kafka#

Необходимо выполнить шаги, описанные в пункте «Самоаудит», начиная с шага 2. В качестве топиков для публикации указать соответствующие топики другой инсталляцию PVM.

Публикация сообщений аудита через REST end-point компонента COTE#

В данном случае сохранятся отправка метамоделей и событий аудита, как это было и ранее (при отправке на Audit SE) с сохранением контракта на REST end-point.

Шаг 1. Создать топики для событий аудита и метамоделей#

Необходимо создать два kafka топика:

  1. Топик для публикации событий аудита.

  2. Топик для публикации метамодели.

Шаг 2. Конфигурация сервисов#

Перед конфигурацией сервисов необходимо убедиться, что в Indicator корректно настроена и запущена задача сбора данных.

В Service Descriptor указать значение „ASYNC“ для параметра abyss.audit.client.type для публикации событий аудита и метамодели по REST, используя асинхронный клиент. И проинициализировать параметры аудита

Обязательные параметры для инициализации

Описание

abyss.audit.enabled

Включить отправку событий аудита сервисом

abyss.audit.client.url.base

Указать URL Единого аудита (COTE) для публикации событий аудита. Формат: https://host

abyss.audit.client.ssl.enabled

Включить TLS для соединения с Единым аудитом. Плюс заполнить параметры из блока Настройки TLS для записи в аудит

abyss.audit.metamodel.module

Название модуля метамодели аудита

abyss.audit.ott.enabled

Включить OTT для аудита, в случае подключения с OTT

abyss.audit.ott.service-url

Шаблон URL сервиса OTT. Формат: https://host:port. При этом host и port берутся из параметра abyss.audit.ott.service-hosts

abyss.audit.ott.service-hosts

Указать список серверов OTT. Формат: hostname1:port1,hostname2:port2

abyss.audit.ott.module-id

ID OTT модуля. Должен совпадать со значением параметра abyss.audit.metamodel.module

Применить параметры на стенде используя задачу Jenkins.

Шаг 3. Создать индексы для сбора событий аудита#

Необходимо создать два индекса:

  1. Полнотекстовый индекс для оперативного хранения событий аудита.

  2. Архивный индекс для длительного хранения событий аудита.

Схемы индексов должны соответствовать схеме аудит сообщений.

Стандартная схема индекса аудит сообщений:

Поле

Тип данных

id

String

metamodelVersion

String

module

String

name

String

nodeId

String

requestId

String

userName

String

userLogin

String

userNode

String

session

String

sourceSystem

String

tags

Array - String

createdAt

Date

receivedAt

Date

Так же, при создании индекса, необходимо добавить в разделе «Предобработка» в «Преобразование массивов» следующие преобразования:

Имена массивов

Имя поля в объектах массива

Имя нового массива

Тип данных

name

paramName

String

params, changedParams

oldValue

paramOldValue

String

value

paramValue

String

Шаг 4. Перезапустить сервисы Abyss#

Перезапуск необходимо выполнять, начиная с Project_service, порядок перезапуска остальных сервисов не принципиален.

Зависимость работы сервисов Abyss от параметров аудита, возможные проблемы.#

В случае отключенного аудита на сервисе (abyss.audit.enabled=false), его работа не зависит от остальных параметров аудита, включая параметры OTT соединения ( abyss.audit.ott.* ). В случае abyss.audit.enabled=true и abyss.audit.ott.enabled=true, и ошибках в конфигурации ОТТ ( abyss.audit.ott.* ), сервисы Abyss запустятся, но не смогут функционировать - запросы будут возвращать 500 статус код, в логах будут соответствующие ошибки.

При включении аудита (abyss.audit.enabled=true) с записью сообщений через REST:

  • Функционирование всех сервисов и отправка событий аудита не зависит от параметров самоаудита ( abyss.audit.kafka.client.* ).

  • Abyss_Project_service запустится, но не будет функционировать в случае невалидных параметров аудита, в логах сервиса будут соответствующие ошибки, будет возвращать статус код 500 на запросы.

  • В случае ошибок в параметрах задачи сбора данных в Indicator, Abyss_Project_service так же не сможет работать, поэтому важно перед активацией аудита корректно настроить задачу сбора данных.

  • При ошибках в параметрах аудита в других сервисах Abyss, данные сервисы будут полностью рабочие, но не смогут отправлять события аудита, отображая соответствующие ошибки в логах.

При включении аудита (abyss.audit.enabled=true) с записью сообщений в Kafka (самоаудит):

  • Функционирование всех сервисов и отправка событий аудита не зависит от параметров аудита, предназначенных для настройки записи событий аудита через REST.

  • В случае ошибок в названиях топиков, сервисы будут работать, но не смогут сохранять события аудита в топики.