2014-02-20 15 views
5

Ich versuche logstash zu verwenden, zum Analysieren einer Datei JSON-Objekte enthalten, wie folgt:Mit Logstash JSON Lesen

{"Query":{"project_id":"a7565b911f324a9199a91854ea18de7e","timestamp":1392076800,"tx_id":"2e20a255448742cebdd2ccf5c207cd4e","token":"3F23A788D06DD5FE9745D140C264C2A4D7A8C0E6acf4a4e01ba39c66c7c9cbd6a123588b22dc3a24"}} 
{"Response":{"result_code":"Success","project_id":"a7565b911f324a9199a91854ea18de7e","timestamp":1392076801,"http_status_code":200,"tx_id":"2e20a255448742cebdd2ccf5c207cd4e","token":"3F23A788D06DD5FE9745D140C264C2A4D7A8C0E6acf4a4e01ba39c66c7c9cbd6a123588b22dc3a24","targets":[]}} 
{"Query":{"project_id":"a7565b911f324a9199a91854ea18de7e","timestamp":1392076801,"tx_id":"f7f68c7fb14f4959a1db1a206c88a5b7","token":"3F23A788D06DD5FE9745D140C264C2A4D7A8C0E6acf4a4e01ba39c66c7c9cbd6a123588b22dc3a24"}} 

Idealerweise erwarten ich würde Logstash die JSON zu verstehen. ich die folgende Konfiguration verwendet:

input { 
file { 
    type => "recolog" 

    format => json_event 

    # Wildcards work, here :) 
    path => [ "/root/isaac/DailyLog/reco.log" ] 
    } 
} 

output { 
    stdout { debug => true } 
    elasticsearch { embedded => true } 
} 

ich diese Datei auf dieser Apache recipe gebaut basiert

Beim Laufen logstash mit debug = true, liest er die Objekte wie folgt aus: Wie konnte ich Statistiken im Kibana sehen GUI basierend auf meiner JSON-Datei, zum Beispiel Anzahl der Abfrageobjekte und sogar Abfragen basierend auf Timestamp. Für jetzt sieht es so aus, als ob es eine sehr grundlegende Version der Daten, nicht die Struktur davon, versteht.

Thx im Voraus

+0

Haben Sie sich diese [http://logstash.net/docs/1.3.3/filters/json] angesehen? – GPPK

Antwort

7

fand ich, dass logstash heraus automatisch JSON erkennen byt den Codec Feld innerhalb der Datei-Eingabe wie folgt verwendet:

input { 
    stdin { 
    type => "stdin-type" 
} 

file { 
    type => "prodlog" 

    # Wildcards work, here :) 
    path => [ "/root/isaac/Mylogs/testlog.log"] 

    codec => json 
} 
} 

output { 
    stdout { debug => true } 
    elasticsearch { embedded => true } 
} 

Dann Kibana die Felder des JSON perfekt zeigte.