Ответ 1
Плагин Logstash Ruby может помочь вам.:)
Вот конфигурация:
input {
stdin {}
}
filter {
ruby {
code => "
fieldArray = event['message'].split('] [')
for field in fieldArray
field = field.delete '['
field = field.delete ']'
result = field.split(': ')
event[result[0]] = result[1]
end
"
}
}
output {
stdout {
codec => rubydebug
}
}
С вашими журналами:
[field1: content1] [field2: content2] [field3: content3]
Это вывод:
{
"message" => "[field1: content1] [field2: content2] [field3: content3]",
"@version" => "1",
"@timestamp" => "2014-07-07T08:49:28.543Z",
"host" => "abc",
"field1" => "content1",
"field2" => "content2",
"field3" => "content3"
}
Я попробовал с 4 полями, он также работает.
Обратите внимание, что event
в ruby-коде - это событие logstash. Вы можете использовать его для получения всего поля событий, например message, @timestamp
и т.д.
Наслаждайтесь!!!