0
私は現在、アクセスログを検索し、どれだけのエラーがあるかを見て、それをスラックアカウントに送信するようウォッチャーを設定しています。 私が持っている問題は、クエリが実行されたときの集計数を知ることができず、設定では最大5個の「ハードコード」のようなものですが、 5以上の作品はありません。Watcher(ElasticSearch)ですべての集計をテキストとして送信
私は、私は同じように通知として、すべてのバケット結果を送信する必要がある、唯一のサーバに対してクエリやフィルタで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"
}
]
}
}
}
}
アクションで「テキスト」を送信する方法はわかりません。すべてのバケットの結果をどのように渡すべきですか? 事前に感謝、私はxpack、ELKとlogstashを使用しています。
うわー、本当にありがとうございます! – jonhatan