我以json格式从多个服务器创建事件计数器的日志,然后使用logstash将计数器放入Graphite / Grafana。这有效,但我没有在Grafana中看到所需的格式。我希望能够根据服务器一起显示多个计数器。现在一切都显示在第一个指标(包括服务器)中。如果我选择服务器,则没有可用于显示计数器的第二个度量标准。我想我发送给Graphite的格式不正确。
这是一个日志。每一行都是服务器(每个日志中的服务器相同),日期和计数器。如果需要,我可以更改日志格式。
{"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或不向Graphite发送任何内容。 sincebd_path和start_position用于调试。
这是stdout中的一行
{
"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"
}
Graphite能否正确解释?由于我要向日志添加更多数据,我宁愿更改json格式的日志,而不是在每个计数器的logstash .conf文件中添加过滤器(如果需要),但我可以这样做。
感谢您的帮助。
答案 0 :(得分:0)
我更多地关注Graphite并将日志更改为只有一个条目(除了日期),服务器名称和计数器数据用句点分隔。所以server.counter这给了我想要的东西。
{"@timestamp":"2016-05-13T20:59:37.5815457Z","predr01.oneLevelSearchOps":"5.6"}