【发布时间】: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