2016-04-15 10 views
1

jsonデータの一連の行を含むログファイルがあります。logstashとkibanaを使用してjsonデータを分割する方法

{"name":"sampleApplicationName","hostname":"sampleHostName","pid":000000,"AppModule":"sampleAppModuleName","msg":"testMessage","time":"2016-02-23T19:33:10.468Z","v":0} 

私はlogstashが、私はこれらのコンポーネントをオフに基づいてKibanaで視覚化を作成できるようにJSON文字列のこれらの異なるコンポーネントを破ることができるようにしたい:例えば、ここでは1行です。私はインデクサーファイルで遊んでみて、jsonフィルターとgrokパターンの両方を使って無数のバリエーションを試してみましたが、何もできません。どんな助けでも大歓迎です。

+0

jsonコーデックで入力された{}ファイルの統計情報です。それでも問題が解決しない場合は、あなたが行ったことを投稿して、それを修正する際に助けを求める。 –

答えて

0

以下は私が使用するexampkeの設定です。 json行をコマンドプロンプトに貼り付けて、正常に動作していることを確認してください。

input { 
    stdin {} 
} 

filter { 
    json { 
     source => "message" 
    } 

    mutate { 
     add_field => { 
      "[@metadata][tenant-id]" => "%{[tenant-id]}" 
      "[@metadata][data-type]" => "%{[data-type]}" 
      "[@metadata][data-id]" => "%{[data-id]}" 
     } 
    } 

    if [data-type] == "build" { 
     mutate { 
      add_field => { "[@metadata][action]" => "index" } 
     } 
    } 
} 


output { 
    stdout { codec => rubydebug { metadata => true } } 

    file { path => "/tmp/jenkins-logstash.log" } 

    elasticsearch { 
     action => "%{[@metadata][action]}" 
     hosts => "XXX:9200" 
     index => "tenant-%{[@metadata][tenant-id]}" 
     document_type => "builds" 
     document_id => "%{[@metadata][data-id]}" 
     workers => 1 
    } 
} 
関連する問題