是否可以直接在logstash elasticsearch输入插件中添加聚合或者在logstash中使用aggregation_fields过滤器进行聚合?

问题描述 投票:0回答:1

您能否帮助我了解如何使用logstash elasticsearch 输入插件来获取聚合数据,如下面的查询所示?我是否需要使用aggregation_fields过滤器{如下所示},从elasticsearch输入插件查询数据后?或者我可以直接在输入插件下添加聚合。

提前致谢!

 "query": {
                    "bool": {
                      "must": [
                        {
                          "match": {
                            "event.category": "authentication"
                          }
                        },
                        {
                          "match": {
                            "event.outcome": "failure"
                          }
                        }
                      ],
                      "filter": [
                        {
                          "range": {
                            "@timestamp": {
                              "gte": "now-1d"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "aggs": {
                    "total_logon_per_user": {
                      "terms": {
                        "field": "user.name"
                      }
                    }
                  }
filter {
      elasticsearch {
        aggregation_fields => {
          "total_logon_per_user" => "user.name"
        }
      }
    }
elasticsearch logstash
1个回答
0
投票

回复:https://www.elastic.co/guide/en/logstash/current/plugins-filters-elasticsearch.html#plugins-filters-elasticsearch-aggregation_fields

  1. 您需要将查询放在单独的 JSON 文件中,并在“query_template”属性中指定(不要使用“query”,它不允许使用聚合。
  2. 在“user.name”字段中,您将获得与 Elastic Dev 工具中看到的相同的哈希对象,因此您需要使用 mutate 或其他过滤器提取所需的值

顺便说一句:不要在“aggregation_fields”中使用方括号,它会默默地破坏获取聚合结果。

© www.soinside.com 2019 - 2024. All rights reserved.