2016-08-06 34 views
0

Ich möchte versuchen, JSON-Daten in Logstash zu analysieren. aber es ist verschachtelt und entkam.Erneutes Analysieren von ausgeblendeten Teilfeldern aus JSON-Daten in LogStash

Ich habe Frage über die erneute Parsing-Escaped Json in Unterfeldern in JSON.

Zum Beispiel:

{"d1": 1, "d2": "{\"c1\": 1, \"c2\": 2}" } 

In der Regel Programmierumgebungen, das ist so leicht, dieses Problem zu lösen.

aber Logstash-Konfiguration ist nicht einfach für diesen Fall anzugehen.

Kann ich einen Hinweis für diesen Fall bekommen? Hier

Antwort

1

we go:

filter { 

    # this parses the first json 
    json { 
     source => "message" 
    } 

    # This parses your nested json 
    json { 
     source => "d2" 
    } 

} 

Sie nur die Quelle zu was auch immer Ihr Feld festlegen können mit rohem entkam json ist. Der Filter macht alles andere für dich.

Mit stdin/stdout und Ihre Eingabe erhalten Sie:

[email protected]:~/dev/logstash$ ./logstash-2.3.2/bin/logstash -f conf2/ 
Settings: Default pipeline workers: 8 
Pipeline main started 
{"d1": 1, "d2": "{\"c1\": 1, \"c2\": 2}" } 
{ 
     "message" => "{\"d1\": 1, \"d2\": \"{\\\"c1\\\": 1, \\\"c2\\\": 2}\" }", 
     "@version" => "1", 
    "@timestamp" => "2016-08-08T11:49:19.381Z", 
      "host" => "pandaadb", 
      "d1" => 1, 
      "d2" => "{\"c1\": 1, \"c2\": 2}", 
      "c1" => 1, 
      "c2" => 2 
} 

EDIT:

Wenn die "d2" raw Eigenschaft, die Sie stört, können Sie dieses Feld entfernen, nachdem Sie es analysieren.

Cheers,

Artur

+0

Thank you very much. –