【问题标题】:logstash graphite output use variable metric namelogstash 石墨输出使用变量度量名称
【发布时间】:2014-10-17 15:17:22
【问题描述】:

我正在使用带有指标过滤器和石墨输出的 logstash(centos 上的 1.4.2)来绘制访问日志 HTTP 响应代码的图形。

基本配置有效。这是我的工作配置文件。

input {
  file {
     path => "/var/log/nginx/access.log"
  }
}
filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
  metrics {
    meter => [ "http.%{response}" ]
    add_tag => "metrics" 
  }
}
output {
  if "metrics" in [tags] {
    graphite {
      host => "localhost"
      port => "2003"
      metrics => [ "mymetric.http.200", "%{http.200.rate_1m}"]
    }
  }
}

并且输出显示正确,例如

mymetric.http.200 0.8430647815095349 1413557739

但是我想在多个服务器(主机)上安装 same 配置文件,并在指标名称中包含主机名。

我尝试在指标定义中使用 %{host} 变量,例如

metrics => [ "mymetric.%{host}.http.200", "%{http.200.rate_1m}" ]

但这并没有向石墨发送任何东西,我得到了

 "Message is empty..." 

在logstash 调试输出中。有什么想法吗?

【问题讨论】:

    标签: variables filter logstash metrics graphite


    【解决方案1】:

    我目前遇到了类似的问题。作为一种解决方法,我将我想要的模式添加到仪表定义中。

    meter => [ "mymetric.%{host}.http.%{response}" ]
    

    要测试石墨的输出,您可以使用石墨编解码器的输出。

    stdout {
        codec => graphite {
            fields_are_metrics => true
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多