gpt4 book ai didi

elasticsearch - 使用Watcher(ElasticSearch)将所有聚合发送为文本

转载 作者:行者123 更新时间:2023-12-03 01:49:42 25 4
gpt4 key购买 nike

我现在正在配置Watcher,以在访问日志中进行搜索,看看到目前为止有多少错误,并将其发送到一个备用帐户。
好吧,我的问题是因为我不知道查询完成后以及在我的配置中将有多少个聚合,就像“硬编码”一样,最多只能发送5个,但是如果结果比5不起作用。

我正在查询中搜索404状态代码,并且仅针对一台服务器进行过滤,因此我只需要将所有存储桶结果作为通知发送为:

总数:总数
日志:
log1:结果数
log2:结果数
log3:结果数
log4:结果数
log5:结果数
log6:结果数

这是我的配置:

  "trigger" : {
"schedule" : { "interval" : "1h" }
},
"input" : {
"search" : {
"request": {
"body": {
"query": {
"bool": {
"must": [
{ "range": {
"@timestamp": {
"gte": "now-1h",
"lte": "now"
}
}
},
{
"match": {
"beat.hostname": "someserver"
}
}
],
"filter": {
"term": {
"response": "404"
}
}
}
},
"aggs": {
"host": {
"terms": {
"field": "beat.hostname",
"size": 1
}
},
"logs_list": {
"terms": {
"field": "source",
"size": 10
}
}
}
}
}
}
},
"condition": {
"compare" : { "ctx.payload.hits.total" : { "gt" : 0 }}
},
"actions" : {
"notify-slack" : {
"throttle_period" : "30m",
"slack" : {
"message" : {
"from": "Watcher",
"to" : [ "somechannel" ],
"attachments" : [
{
"title" : "400 code status found",
"text" : "Encountered: {{ctx.payload.hits.total}} in the last hour on {{ctx.payload.aggregations.host.buckets.0.key}} \n Files: \n {{ctx.payload.aggregations.logs_list.buckets.0.key}}: {{ctx.payload.aggregations.logs_list.buckets.0.doc_count}} \n {{ctx.payload.aggregations.logs_list.buckets.1.key}}: {{ctx.payload.aggregations.logs_list.buckets.1.doc_count}} \n {{ctx.payload.aggregations.logs_list.buckets.2.key}}: {{ctx.payload.aggregations.logs_list.buckets.2.doc_count}} \n {{ctx.payload.aggregations.logs_list.buckets.3.key}}: {{ctx.payload.aggregations.logs_list.buckets.3.doc_count}} \n {{ctx.payload.aggregations.logs_list.buckets.4.key}}: {{ctx.payload.aggregations.logs_list.buckets.4.doc_count}} \n {{ctx.payload.aggregations.logs_list.buckets.5.key}}: {{ctx.payload.aggregations.logs_list.buckets.5.doc_count}}",
"color" : "danger"
}
]
}
}
}
}

我不知道该如何在 Action 中发送“文本”,是否有任何想法该如何传递所有存储桶结果?
预先感谢,我正在使用xpack,ELK和logstash。

最佳答案

如果我正确理解了您的问题,则希望遍历该操作中的汇总。试试这个:

{{#ctx.payload.aggregations.myAggName.buckets}}
{{key}}: {{doc_count}}
{{/ctx.payload.aggregations.myAggName.buckets}}

关于elasticsearch - 使用Watcher(ElasticSearch)将所有聚合发送为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41495954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com