Как разделить одну запись на несколько записей в языке fluentd?
Я хотел бы спросить относительно свободно.
Мои беглые версии ниже.
td-agent-2.1.5-0.x86_64
fluentd 0.10.61
Теперь у меня есть плагин хвостового ввода, использующий многострочный формат, который анализирует несколько строк из журнала и задает как одну запись, как показано ниже
2016-07-31T14:48:06+09:00 arm {"val1":"15:49:18.602384","val2":"5009","val3":"4896","val4":"3905","val5":"1811","val6":"10287","val7":"10271","val8":"1509","val9":"11064","val10":"10832","val11":"10673","val12":"9553","val13":"10660","val14":"9542","val15":"15:49:18.602509","val16":"3759","val17":"4758","val18":"2930","val19":"1261","val20":"7761","val21":"7767","val22":"1023","val23":"7905","val24":"7711","val25":"7918","val26":"7292","val27":"7940","val28":"6907"}
Мне нужно будет разделить все поля от 1 записи до 28 записей, чтобы эластичный поиск мог распознаваться как разные документы.
Подобно,
знач1
val2
val3
...
val28
Есть ли способ добиться этого в свободной конфигурации? Возможно, встроить код рубина?
С наилучшими пожеланиями, Ю. Ватанабэ
1 ответ
Вы должны предоставить Regex для отдельного разбора полей и установить json-часть сообщения журнала в качестве поля message
и отметка времени должна храниться в поле time
или же @timestamp
и он должен работать так, как вы ожидаете, когда ElasticSearch автоматически интерпретирует полезную нагрузку json.