Базовый сервис Хранилище сообщений

О базовом сервисе

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

Данные Хранилища сообщений хранятся в DatareonDB. Базовый сервис запускается на каждом сервере кластера.

Примечание

Базовый сервис Хранилище сообщений заменяет сервис Хранилище сообщений, который использовался в версиях Платформы до 3.2.1.

Путь к каталогу с файлами Хранилища сообщений отображается в ЦМ, путь: Серверы -> Хранилище сообщений -> вкладка Основные. Если в кластере несколько серверов, то у каждого из них отдельная страница Хранилища сообщений. Для резервного копирования данных следует скопировать содержимое этого каталога.

../../../_images/module_storage_data_path.png

Настройки

Вкладка Основные:

  • Название: название базового сервиса, доступно для редактирования.

  • Имя: имя базового сервиса, необязательно для заполнения (заполняется автоматически из значения поля Название). При присвоении имени необходимо учитывать перечень зарезервированных имен.

  • Комментарий: дополнительные сведения о базовом сервисе, поддерживается многострочный ввод.

../../../_images/module_storage_settings.png

Для дополнительных настроек перейдите в режим редактора конфигурации.

Работа с записями Хранилища

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

Если в кластере несколько серверов, то у каждого из них свой базовый сервис Хранилище сообщений. Поэтому при выполнении шага Поместить в MS в схеме обработки или метода MessageStorage.Write(…) в шаге Алгоритм сообщение записывается в Хранилище того сервера, на котором выполняется процесс.

Примечание

Шаг Поместить в MS всегда выполняется на текущем сервере. Для остальных шагов должен быть выбран сервер для выполнения шага.

В методах для работы с записями Хранилища, доступных в шаге Алгоритм, возможно указать идентификатор сервера – либо они будут выполнены на том сервере, где выполняется процесс.

Для работы с сообщениями, помещенными в Хранилище, также возможно использовать кнопки на вкладке Сообщения в ЦМ. Если в кластере несколько серверов, то у каждого из них собственная страница Хранилища с сообщениями, которые сохранились при выполнении процессов на данном сервере.

Индексирование данных

Индексирование данных используется для выполнения поиска по телам сообщений в Хранилище.

Механизм индексирования данных запускается после загрузки Хранилища сообщений и завершения основных задач базы данных (проверка целостности, формирование новых колонок и заполнение их значениями). Индексирование данных повторяется каждые 5 минут в течение всего времени работы Платформы.

Время работы механизма индексирования не регламентировано и зависит от количества и размера сообщений.

Индексирование включается в режиме редактора конфигурации базового сервиса Хранилище сообщений через параметр MessageStorageIndexationOptions (string):

  • IndexationStopped: индексирование данных выключено (значение по умолчанию).

  • None: индексирование данных включено. Индексирование запускается для всех Хранилищ кластера.

../../../_images/module_storage_indexation.png

Управление условиями токенизации сообщений

Механизм индексирования делит текстовое представление тела сообщения, помещенного в Хранилище, на части (токены) по регулярному выражению. Начиная с версии 3.2.1.2 доступны параметры, которые определяют, как полученные токены сохраняются на диске в виде файлов. Для работы этих параметров необходимо, чтобы индексация была включена (иначе система игнорирует их значения).

  • IndexKeys (boolean): требуется ли индексировать ключи (имена полей). По умолчанию включено. Эта настройка работает только для тел сообщений с форматами JSON и XML.

  • true (по умолчанию): В индекс в виде файлов на диске сохраняются не только значения, но и ключи. Поиск сообщения возможен не только по содержимому, но и по ключу (точному названию поля).

Примечание

Для XML поддерживаются ключи на любом уровне вложенности, для JSON поддерживаются ключи только верхнего уровня (ключи на других уровнях разбиваются на токены по регулярному выражению).

  • false: Платформа не сохраняет ключи в виде файла. Это уменьшает количество создаваемых файлов-токенов, но делает невозможным поиск по именам полей.

  • IndexWhiteNoise (boolean): требуется ли индексировать шестнадцатеричные строки – текстовые данные, состоящие из шестнадцатеричных символов. По умолчанию выключено.

  • true: Платформа записывает в индекс шестнадцатеричные строки, что позволяет находить сообщения по конкретным HEX-последовательностям.

  • false (по умолчанию): токены, состоящие исключительно из шестнадцатеричных символов, не записываются на диск. Поиск сообщения по шестнадцатеричным строкам будет невозможен.

  • IndexPeriodSeconds (integer): период запуска индексации в секундах. Максимальное значение 2147483647. Если параметр не задан в конфигурации, то система использует период запуска по умолчанию (5 минут).

Внимание

Изменение настроек разбиения текста сообщения на токены не запускает переиндексацию существующих данных: поиск по старым записям выполняется в соответствии с предыдущими настройками.

Эти параметры являются добавляемыми – по умолчанию они не отображаются в конфигурации. Чтобы задать значения параметров, необходимо добавить их вручную следующим образом:

../../../_images/module_storage_index_params.png

Хранение данных

Политика хранения данных позволяет ограничить максимальное количество сообщений в Хранилище и (или) срок их хранения. При превышении установленных ограничений соответствующие записи будут автоматически удаляться из Хранилища сообщений.

Настройка выполняется в режиме редактора конфигурации базового сервиса Хранилище сообщений – за нее отвечают параметры datareonDBConfig:

  • storageDataCleaningMaxNumberOfStoredRecords (integer): количество последних сообщений, которые должны остаться в Хранилище после автоматического удаления более старых сообщений.

  • storageDataCleaningMaxRetentionTimeInDays (integer): срок хранения сообщений в Хранилище в днях. После автоматического удаления в Хранилище останутся только сообщения, срок хранения которых не превышает установленное ограничение.

  • storageDataCleaningSchedule (string): расписание запуска очистки данных в формате Cron. По умолчанию "0 * * * *" – запуск очистки один раз в час.

  • storageDataCleaning (string): включена ли очистка данных:

  • CleaningOn: очистка включена (значение по умолчанию).

  • CleaningOff: очистка выключена.