【问题标题】:Formatting of logstash data for GraphiteGraphite 的 logstash 数据格式
【发布时间】: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 文件添加过滤器,但我也可以这样做。

感谢您的帮助。

【问题讨论】:

    标签: logstash graphite


    【解决方案1】:

    我对 Graphite 进行了更多研究,并将日志更改为只有一个条目(日期除外),其中服务器名称和计数器数据用句点分隔。所以 server.counter 这给了我想要的。

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

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 2018-02-17
      • 1970-01-01
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2019-01-18
      • 1970-01-01
      相关资源
      最近更新 更多