У меня есть промышленная система, создающая файлы журналов, в которых некоторые строки выглядят так:
component1 v1 component2 v2 component3 v3 ...
Где vx
- числовое значение (например, 3,14159
).
Я использую супер-базовый стек ELK, и я хотел бы извлечь их как поле / значение .
Я не знаю, как / где решать проблему. Это конфигурация logstash, которая должна использоваться для извлечения полей из отдельных строк?
Это зло.
Фильтр kv
здесь не работает , потому что разделитель ключ = значение такой же, как и разделитель кортежей.
ЕСЛИ строки согласованы, grok может быть вашей спасительной милостью. Но если порядок компонентов меняется, это становится очень сложно, очень быстро.
^{WORD:component1} {%BASE10NUM:component1_val}...