Базовый сервис Хранилище сообщений
О базовом сервисе
Базовый сервис Хранилище сообщений предназначен для работы с сообщениями, которые формируются при выполнении процессов, настроенных через схемы обработки. С его помощью возможно извлечь сообщения для анализа, оперативного контроля и расследования инцидентов.
Данные Хранилища сообщений хранятся в DatareonDB. Базовый сервис запускается на каждом сервере кластера.
Примечание
Базовый сервис Хранилище сообщений заменяет сервис Хранилище сообщений, который использовался в версиях Платформы до 3.2.1.
Путь к каталогу с файлами Хранилища сообщений отображается в ЦМ, путь: Серверы -> Хранилище сообщений -> вкладка Основные. Если в кластере несколько серверов, то у каждого из них отдельная страница Хранилища сообщений. Для резервного копирования данных следует скопировать содержимое этого каталога.
Настройки
Вкладка Основные:
Название: название базового сервиса, доступно для редактирования.
Имя: имя базового сервиса, необязательно для заполнения (заполняется автоматически из значения поля Название). При присвоении имени необходимо учитывать перечень зарезервированных имен.
Комментарий: дополнительные сведения о базовом сервисе, поддерживается многострочный ввод.
Для дополнительных настроек перейдите в режим редактора конфигурации.
Работа с записями Хранилища
Поместить сообщения в Хранилище и затем работать с ними возможно с помощью шагов схем обработки или методов для работы с записями Хранилища, доступных в шаге Алгоритм.
Если в кластере несколько серверов, то у каждого из них свой базовый сервис Хранилище сообщений. Поэтому при выполнении шага Поместить в MS в схеме обработки или метода MessageStorage.Write(…) в шаге Алгоритм сообщение записывается в Хранилище того сервера, на котором выполняется процесс.
Примечание
Шаг Поместить в MS всегда выполняется на текущем сервере. Для остальных шагов должен быть выбран сервер для выполнения шага.
В методах для работы с записями Хранилища, доступных в шаге Алгоритм, возможно указать идентификатор сервера – либо они будут выполнены на том сервере, где выполняется процесс.
Для работы с сообщениями, помещенными в Хранилище, также возможно использовать кнопки на вкладке Сообщения в ЦМ. Если в кластере несколько серверов, то у каждого из них собственная страница Хранилища с сообщениями, которые сохранились при выполнении процессов на данном сервере.
Индексирование данных
Индексирование данных используется для выполнения поиска по телам сообщений в Хранилище.
В системе не предусмотрено фиксированное время, за которое будут проиндексированы все помещенные в Хранилище сообщения. Время индексирования зависит от количества и размера сообщений, а также от версии Платформы:
Начиная с версии 3.2.1.3 система выполняет первое индексирование через 2 минуты после старта базового сервиса Хранилище сообщений, а затем повторяет его каждые 5 минут в течение всего времени работы Платформы (можно установить другой период запуска индексирования с помощью параметра indexPeriodSeconds).
На версиях ниже 3.2.1.3 система выполняет первое индексирования при старте Хранилища сообщений, а затем повторяет его каждые 5 минут.
Индексирование включается в режиме редактора конфигурации базового сервиса Хранилище сообщений через параметр MessageStorageIndexationOptions (string):
IndexationStopped: индексирование данных выключено (значение по умолчанию).
None: индексирование данных включено. Индексирование запускается для всех Хранилищ кластера.
Токенизация сообщений
Механизм индексирования разбивает текстовое представление тела сообщения, помещенного в Хранилище, на части (токены) с помощью регулярного выражения. Это необходимо для работы полнотекстового поиска сообщений в Хранилище.
Логика обработки поискового запроса: система находит файлы-токены по полному или частичному совпадению имени файла (условие contains), после чего находит в Хранилище все сообщения, которые соответствуют этим файлам-токенам.
Управление условиями токенизации сообщений
Начиная с версии 3.2.1.2 доступны параметры, которые определяют, как полученные токены сохраняются на диске в виде файлов. Для работы этих параметров необходимо, чтобы индексирование было включено (иначе система игнорирует их значения).
indexKeys (boolean): требуется ли индексировать ключи (имена полей). По умолчанию включено. Эта настройка работает только для тел сообщений с форматами JSON и XML.
true (по умолчанию): В индекс в виде файлов на диске сохраняются не только значения, но и ключи. Поиск сообщения возможен не только по содержимому, но и по ключу (точному названию поля).
Примечание
Для XML поддерживаются ключи на любом уровне вложенности, для JSON поддерживаются ключи только верхнего уровня (ключи на других уровнях разбиваются на токены по регулярному выражению).
false: Платформа не сохраняет ключи в виде файла. Это уменьшает количество создаваемых файлов-токенов, но делает невозможным поиск по именам полей.
indexWhiteNoise (boolean): требуется ли индексировать шестнадцатеричные строки – текстовые данные, состоящие из шестнадцатеричных символов. По умолчанию выключено.
true: Платформа записывает в индекс шестнадцатеричные строки, что позволяет находить сообщения по конкретным HEX-последовательностям.
false (по умолчанию): токены, состоящие исключительно из шестнадцатеричных символов, не записываются на диск. Поиск сообщения по шестнадцатеричным строкам будет невозможен.
indexPeriodSeconds (integer): период запуска индексирования в секундах. Максимальное значение 2147483647. Если параметр не задан в конфигурации, то система использует период запуска по умолчанию (5 минут).
Внимание
Изменение настроек разбиения текста сообщения на токены не запускает повторное индексирование существующих данных: поиск по старым записям выполняется в соответствии с предыдущими настройками.
Эти параметры являются добавляемыми – по умолчанию они не отображаются в конфигурации. Чтобы задать значения параметров, необходимо добавить их вручную следующим образом:
Поиск по телам сообщений
Поиск по телам сообщений доступен в ЦМ в настройках фильтрации и поиска сообщений, путь: Серверы -> Хранилище сообщений -> вкладка Сообщения -> кнопка Фильтры. Если в кластере несколько серверов, то у каждого из них собственная страница Хранилище сообщений с сообщениями, которые сохранились при выполнении процессов на данном сервере. Поиск выполняется по сообщениям, сохраненным на сервере, и не затрагивает сообщения, сохраненные в других Хранилищах кластера.
Примечание
Поиск по телам сообщений не работает при выключенном индексировании данных, а также недоступен во время непосредственной работы механизма индексирования. Использование поиска доступно только авторизованным пользователям.
Поиск осуществляется из поисковой строки по отдельным словам, по словосочетаниям (флаг Поиск словосочетания в интерфейсе настроек фильтрации), а также с учетом или без учета регистра (флаг Регистрозависимый поиск в интерфейсе настроек фильтрации).
Хранение данных
Политика хранения данных позволяет ограничить максимальное количество сообщений в Хранилище и (или) срок их хранения. При превышении установленных ограничений соответствующие записи будут автоматически удаляться из Хранилища сообщений.
Настройка выполняется в режиме редактора конфигурации базового сервиса Хранилище сообщений – за нее отвечают параметры datareonDBConfig:
storageDataCleaningMaxNumberOfStoredRecords (integer): количество последних сообщений, которые должны остаться в Хранилище после автоматического удаления более старых сообщений.
storageDataCleaningMaxRetentionTimeInDays (integer): срок хранения сообщений в Хранилище в днях. После автоматического удаления в Хранилище останутся только сообщения, срок хранения которых не превышает установленное ограничение.
storageDataCleaningSchedule (string): расписание запуска очистки данных в формате Cron. По умолчанию
"0 * * * *"– запуск очистки один раз в час.storageDataCleaning (string): включена ли очистка данных:
CleaningOn: очистка включена (значение по умолчанию).
CleaningOff: очистка выключена.