Wie kann man json in logstash / grok aus einer Textdatei-Zeile analysieren?
Ich habe eine Logdatei, die so aussieht (vereinfacht)
Logline sample
MyLine data={"firstname":"bob","lastname":"the builder"}
Ich möchte den in @ enthaltenen json extrahierDate und erstelle zwei Felder, eines für den Vornamen, eines für den Nachnamen. Die Ausgabe, die ich bekomme, ist jedoch die folgende:
{"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"}}
Wie du sehen kanns
..."parsedJson":{"firstname":"bob","lastname":"the builder"}}
Das ist nicht das, was ich brauche, ich muss Felder für Vor- und Nachnamen in Kibana erstellen, aber Logstash extrahiert die Felder nicht mit dem JSON-Filter.
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"
}
}
Jede Hilfe sehr geschätzt, ich bin sicher, ich verpasse etwas Einfaches
Vielen Dan