2016-04-15 34 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能夠向上突破的JSON字符串的這些不同的組件,以便我可以創建基於關閉這些組件Kibana可視化。我嘗試過使用索引器文件並嘗試使用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 
    } 
}