¿Cómo analizar json en logstash / grok desde una línea de archivo de texto?
Tengo un archivo de registro que se ve así (simplificado)
Muestra de logline
MyLine data={"firstname":"bob","lastname":"the builder"}
Me gustaría extraer el json contenido endatos y cree dos campos, uno para el nombre, uno para el último. Sin embargo, la salida que obtengo es esta:
{"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"}}
Como puedes ver
..."parsedJson":{"firstname":"bob","lastname":"the builder"}}
Eso no es lo que necesito, necesito crear campos para nombre y apellido en kibana, pero logstash no extrae los campos con el filtro 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"
}
}
Cualquier ayuda es muy apreciada, estoy seguro de que me estoy perdiendo algo simple
Gracias