2016-05-16 95 views
0

我以json格式從多個服務器創建事件計數器的日誌,然後使用logstash將計數器放入Graphite/Grafana。這有效,但我沒有在Grafana中看到所需的格式。我希望能夠基於服務器一起顯示多個計數器。現在一切顯示在第一個度量(包括服務器)。如果我選擇服務器,則沒有可用於顯示計數器的第二個度量標準。我在想我發送給Graphite的格式不正確。Graphite的logstash數據的格式

這是一個日誌。每一行都是一個服務器(每個日誌中的服務器),一個日期和一個計數器。如果需要,我可以更改日誌格式。

{"Server":"10.254.70.52","@timestamp":"2016-05-13T20:58:24.0920228Z","oneLevelSearchOps":"11.07"} 
{"Server":"10.254.70.52","@timestamp":"2016-05-13T20:58:24.0920228Z","searchOps":"12.92"} 
{"Server":"10.254.70.52","@timestamp":"2016-05-13T20:58:24.0920228Z","errors":"0"} 

這是logstash .conf文件

input { 
file { 
    path => "/home/local/scott/difData-10.254.70.51.txt" 
    codec => "json" 
    sincedb_path => "/dev/null" 
    start_position => "beginning" 
} 
} 
output { 
stdout { codec => rubydebug } 
graphite{ 
    codec => "plain" 
    fields_are_metrics => true 
    host => "127.0.0.1" 
    port => "2003" 
} 
} 

使用fields_are_metrics需要或沒有被髮送到石墨。 sincebd_path和start_position用於調試。

下面是從標準輸出

{ 
     "Server" => "10.254.70.51", 
    "@timestamp" => "2016-05-13T21:28:40.918Z", 
"modifyEntryOps" => "0.10", 
     "@version" => "1", 
      "path" => "/home/local/NV/sfoley/difData-10.254.70.51.txt", 
      "host" => "lab-graphite" 
} 

一個行應該石墨能夠正確解讀?由於我將更多數據添加到日誌中,我寧願更改json格式的日誌,而不是將過濾器添加到每個計數器的logstash .conf文件(如果需要的話),但我也可以執行此操作。

感謝您的任何幫助。

回答

0

我更加關注Graphite並將日誌更改爲只有一個條目(日期除外),服務器名稱和計數器數據由句點分隔。所以server.counter這給了我想要的東西。

{"@timestamp":"2016-05-13T20:59:37.5815457Z","predr01.oneLevelSearchOps":"5.6"}