【发布时间】:2015-01-21 03:22:11
【问题描述】:
这是我在服务器上的感觉日志:
{"timestamp":"2015-01-21T09:43:21.387501+0700","level":"info","message":"publishing check result","payload":{"client":"local.com","check":{"name":"instance_xxx_check","issued":1421808200,"command":"xargs -I{} sh -c '/opt/sensu/embedded/bin/ruby /etc/sensu/plugins/check-http.rb -u {}' < /etc/sensu/conf.d/live/list/xxx.txt","handlers":["default","mailer"],"interval":60,"subscribers":["live"],"executed":1421808200,"duration":1.317,"output":"CheckHTTP OK: 200, http://link1.com\nCheckHTTP CRITICAL: Request error: http://link2.com\nCheckHTTP OK: 200, http://link3.com\n","status":123}}}
这是json格式的,你可以用json parse来查看。
并且在通过logstash过滤器之后,它会在像这个图像这样的字段中解析:
http://i.stack.imgur.com/4KA0i.jpg
现在我想添加一个名为“error”的字段,其中只包含关键“http://link.com”的信息。这意味着,如果过滤器在“payload.check.output”字段中匹配 CheckHTTP CRITICAL,它会将错误链接添加到新的“错误”字段
这是我在 logstash 过滤器中的配置:
if [type] == "sensu" {
grok {
match => [ "payload.check.output", "%{CISCO_REASON}: Request error: %{URI}" ]
}
mutate {
add_field => { "error" => "%{payload.check.output}" }
remove_field => [ "timestamp" ]
}
}
但是什么都没有发生
【问题讨论】: