時間枠内にインデックスに挿入されたパターンに一致するレコードがない場合、ElasticSearch ウォッチャーにアラートを出す必要があります。別のフィールドのペアでグループ化しながら、これを実行できる必要があります。つまり、レコードは次のパターンになります。 日付 タイムスタンプ レベル メッセージ クライアント サイト
各クライアントのサイトでメッセージの一致が「実行中」であることを確認する必要があります (つまり、Google マップと Bing マップにはマップの同じサイトがあります)。現時点でこれを行う最善の (?) 方法は、クライアント サイトごとに wacher を実行することだと思います。
私はこれを持っているので、タスクが20分ごとにログに書き込まれていると仮定します:
{
"trigger" : {
"schedule" : {
"interval" : "25m"
}
},
"input" : {
"search" : {
"request" : {
"search_type" : "count",
"indices" : "<logstash-{now/d}>",
"body" : {
"filtered" : {
"query" : {
"match_phrase" : { "Message" : "Is running" }
},
"filter" : {
"match" : { "Client" : "Example" } ,
"match" : { "Site" : "SomeSite" }
}
}
}
}
}
},
"condition" : {
"script" : "return ctx.payload.hits.total < 1"
},
"actions" : {
},
"email_administrator" : {
"email" : {
"to" : "me@host.tld",
"subject" : "Tasks are not running for {{ctx.payload.client}} on their site {{ctx.payload.site}}",
"body" : "Too many error in the system, see attached data",
"attach_data" : true,
"priority" : "high"
}
}
}
}