Как разобрать json в logstash / grok из строки текстового файла?

у меня есть файл журнала, который выглядит так (упрощенный)

образец Logline

MyLine data={"firstname":"bob","lastname":"the builder"}

Я хотел бы извлечь json, содержащийся в сведения и создайте два поля, одно для firstname, одно для last. Однако, ouput я получаю это:

{"message":"Line data={"firstname":"bob","lastname":"the builder"}r","@version":"1","@timestamp":"2015-11-26T11:38:56.700Z","host":"xxx","path":"C:/logstashold/bin/input.txt","MyWord":"Line","parsedJson":{"firstname":"bob","lastname":"the builder"}}

Как видите,

..."parsedJson":{"firstname":"bob","lastname":"the builder"}}

это не то, что мне нужно, мне нужно создать поля для firstname и lastname в kibana, но logstash не извлекает поля с помощью фильтр в JSON.

LogStash Config Строку

input {
  file {
        path => "C:/logstashold/bin/input.txt"        
       }
}

filter {     

   grok {
            match => { "message" => "%{WORD:MyWord} data=%{GREEDYDATA:request}"}        
        }   

    json{
        source => "request"
        target => "parsedJson"
        remove_field=>["request"]
    }   
}   

output {  
    file{
        path => "C:/logstashold/bin/output.txt"
    }   
}

любая помощь очень ценится, я уверен, что я упускаю что-то простое

спасибо

1 ответов


после json фильтр добавить еще один под названием mutate для того, чтобы добавить два поля, которые вы бы взяли с