【发布时间】:2016-05-16 15:17:57
【问题描述】:
我以 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 发送任何内容。因为bd_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"
}
Graphite 应该能够正确解释这一点吗?由于我要向日志中添加更多数据,因此我宁愿更改 json 格式的日志,而不是在需要时为每个计数器的 logstash .conf 文件添加过滤器,但我也可以这样做。
感谢您的帮助。
【问题讨论】: