Перевод Abyss на Единый аудит#
В данной инструкции описан способ перевода сервисов Abyss на Единый аудит.
Самоаудит#
Шаг 1. Создать топики для событий аудита и метамоделей#
Необходимо создать три kafka топика:
Топик для мониторинга доступности кластера Kafka - abyss.coordinator_audit_health_check.
Топик для публикации событий аудита - abyss.coordinator_audit_events.
Топик для публикации метамодели - 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 топика:
Топик для публикации событий аудита.
Топик для публикации метамодели.
Шаг 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. Создать индексы для сбора событий аудита#
Необходимо создать два индекса:
Полнотекстовый индекс для оперативного хранения событий аудита.
Архивный индекс для длительного хранения событий аудита.
Схемы индексов должны соответствовать схеме аудит сообщений.
Стандартная схема индекса аудит сообщений:
Поле |
Тип данных |
|---|---|
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.
В случае ошибок в названиях топиков, сервисы будут работать, но не смогут сохранять события аудита в топики.