在logstash聚合过滤器中使用嵌套值作为task_id

时间:2016-08-03 00:58:17

标签: logstash

我正在尝试使用aggregate过滤器合并日志,但我遇到了一些问题。在使用aggregate过滤器之前,我使用了json过滤器来解析日志内容。我想用作task_id的字段实际上是嵌套的。我尝试使用点表示法,但它失败了:

if [msg] == "Incoming request" {
  aggregate {
  task_id => "%{content.request_id}"
  code => "map['incoming_content'] = event['content']"
  }
}      

作为没有其他错误的证明,我尝试使用顶级字段:task_id => "%{clientip}"。在这种情况下,日志正确合并。

如何让aggregate过滤器根据嵌套值聚合日志?

1 个答案:

答案 0 :(得分:1)

您需要使用官方文档中解释的bracket syntax

试试这个:

if [msg] == "Incoming request" {
  aggregate {
  task_id => "%{[content][request_id]}"
  code => "map['incoming_content'] = event['content']"
  }
}