2017-02-06 6 views
0

私はlogstashを初めて使用し、別のブログやリンクを調べて詳細を理解しようとしています。私は通常の文字列の行に埋め込まれているJsonの文字列を解析したいという問題があります。Grep Json logstashフィルタ用の文字列

入力文字列

2017-01-27 11:54:48 INFO PropertiesReader:33 - {"timestamp":1485518878968,"h":"297268184dde", "l":"INFO", "cN":"org.com.logstash.demo", "mN":"loadProperties", "m":"load property file from /var/tmp/conf"}

私が強調したJSON文字列を抽出し、JSONでJSON形式のプラグインを適用したいです。どうすればこれを達成できますか?

+0

現時点でのlogstash設定を表示してください – Val

+0

現時点では非常に基本的です。 Jsonの文字列はgreddyのdata.filter {grok {match => ["message"、 "%{TIMESTAMP_ISO8601:LogDate}%{LOGLEVEL:loglevel}%{WORD:threadName}の一部です:%{NUMBER:ThreadID}%{GREEDYDATA: Line} "]}} – BobCoder

答えて

0

は、単にあなたのgrokフィルタの後jsonフィルタを使用する必要があります。

filter { 
    grok { 
     match => [ "message", "%{TIMESTAMP_ISO8601:LogDate} %{LOGLEVEL:loglevel} %{WORD:threadName}:%{NUMBER:ThreadID} - %{GREEDYDATA:Line}" ] 
    } 
    json { 
     source => "Line" 
    } 
} 

はまた、私はあなたのGROKパターンJSONデータの前に -を除外するために少し変更したことに注意してください。

+0

素晴らしいです。それは働き、出力を見ることができます。ご協力ありがとうございます。 – BobCoder

+0

今私はスタックトレースをjsonとして渡している別の問題を抱えています。裾野トレースの長さはかなり大きく(> 5k文字)。それは有効なJsonですが、logstashでは 'exception =># BobCoder