我正在尝试使用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
过滤器根据嵌套值聚合日志?
答案 0 :(得分:1)
您需要使用官方文档中解释的bracket syntax。
试试这个:
if [msg] == "Incoming request" {
aggregate {
task_id => "%{[content][request_id]}"
code => "map['incoming_content'] = event['content']"
}
}