facebook

15.2.1 Синтаксис для процесса парсинга

Для осуществления процесса парсинга необходимы специальные парсеры, в которых описаны алгоритмы и шаблоны для данного процесса (таблица 9). 

  

Таблица 9 – Атрибуты парсингов

Атрибут
decoder
Возможные значения
Любое уникальное имя правила нормализации
Описание
Атрибут, определяющий имя декодера. Например:   <decoder name="test_decoder"> ....  </decoder>
Атрибут
parent
Возможные значения
Любое имя существующего правила нормализации
Описание
Атрибут
accumulate
Возможные значения
-
Описание
Позволяет отслеживать события по нескольким сообщениям журнала
Атрибут
json_null_field
Возможные значения
Любое значение типа String
Описание
Указывает как обрабатывать поля NULL, поступающие из событий в JSON формате
Атрибут
ftscomment
Возможные значения
Любое значение типа String
Описание
Добавляет комментарий к атрибуту "fts"
Атрибут
program_name
Возможные значения
Regex, sregex или pcre2 выражения (см. пункт - Регулярные выражения)
Описание
Устанавливает имя программы как условие применения парсера. Заголовок лога должен содержать имя программы, соответствующее регулярному выражению. Например:   <decoder name="test_decoder">  <program_name type="pcre2">(?i)test</program_name> ... </decoder>
Атрибут
prematch
Возможные значения
Regex или pcre2 выражения (см. пункт - Регулярные выражения)
Описание
Устанавливает регулярное выражение в качестве условия применения парсера. Лог должен соответствовать регулярному выражению без учета  заголовков, подобных системному
Атрибут
order
Возможные значения
см. таблицу 12
Описание
Значения, которые извлекают регулярные выражение, будут храниться в этих группах. Определяет, что содержат группы в скобках, и порядок их получения
Атрибут
use_own_name
Возможные значения
По умолчанию значение: n/a   Допустимые значения: True
Описание
Только для дочерних парсеров. Позволяет установить имя дочернего парсера из атрибута имени вместо использования имени родительского.
Атрибут
regex
Возможные значения
Regex или pcre2 выражения (см. пункт  - Регулярные выражения)
Описание
Используется для поиска интересующих полей и их извлечения по шаблону. Например: <regex> [+-]?(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)? </regex> При использовании данного поля обязательно также необходимо определить «order». Кроме того, для «regex» требуется «prematch» или «program_name», определенные в том же или в родительском парсере. Например: <decoder name="sudo-fields"> <parent>sudo</parent> <prematch>\s</prematch> <regex>^\s*(\S+)\s*:</regex> <order>srcuser</order> <fts>name,srcuser,location</fts> <ftscomment>First time user executed the sudo command</ftscomment> </decoder>