У меня есть строки журнала в следующем формате и вы хотите извлечь поля:
[field1: content1] [field2: content2] [field3: content3] ...
Мне не известны имена полей или количество полей.
Я попробовал его с обратными ссылками и в формате sprintf, но не получил никаких результатов:
match => [ "message", "(?:\[(\w+): %{DATA:\k<-1>}\])+" ] # not working
match => [ "message", "(?:\[%{WORD:fieldname}: %{DATA:%{fieldname}}\])+" ] # not working
Кажется, что это работает только для одного поля, но не более:
match => [ "message", "(?:\[%{WORD:field}: %{DATA:content}\] ?)+" ]
add_field => { "%{field}" => "%{content}" }
Фильтр kv также не подходит, поскольку содержимое полей может содержать пробелы.
Есть ли какой-либо плагин/стратегия для решения этой проблемы?