【发布时间】:2020-04-05 20:01:55
【问题描述】:
我对此很陌生,但我需要一些关于我的观察者设置的帮助。 - 我正在使用 X-Pack Watchers。
我已设置 Heartbeat,目前有 7 台显示器。 IE 监视器-01 监视器-02 等等
我需要帮助设置我的确切场景,我需要 3 个场景的帮助:
场景 1: 如果 monitor-01 下线,我只想向“test@domain.com”发送一封电子邮件,正文为:“您好,monitor-01 刚刚下线!请检查,谢谢。”
如果 monitor-02 离线,我想要与上面完全相同的结果。我不希望多封电子邮件在显示器关闭时每秒/分钟提醒我,我只想要一封电子邮件。
场景 2: 如果 monitor-01 或我的任何监视器处于脱机状态...每 3 小时,我希望发送一封刷新电子邮件(我希望电子邮件正文包含特定监视器停机的时间,即监视器停机 120 小时 13 分钟) .因此,如果 3 小时过去了,我想向“test@domain.com”发送一封电子邮件,正文为:“您好,这是一个提醒电子邮件,monitor-01 仍处于离线状态!请检查,谢谢。”
场景 3: 如果有任何监视器重新联机,我想向“test@domain.com”发送一封电子邮件,正文如下:“您好,好消息!监视器-02 重新联机。监视器停机 7 小时 12分钟。谢谢。”
有人可以帮忙吗?我到处寻找,找不到创建上述场景的正确语法。我认为这些场景可以使社区的其他成员受益。
P.s,我目前在论坛中找到了一款高级手表,但不符合我的标准。这是它的代码:
{
"trigger": {
"schedule": {
"interval": "30s"
}
},
"input": {
"search": {
"request": {
"search_type": "query_then_fetch",
"indices": [
"heartbeat-*"
],
"rest_total_hits_as_int": true,
"body": {
"query": {
"bool": {
"must": {
"match": {
"monitor.status": "down"
}
},
"filter": {
"range": {
"@timestamp": {
"from": "now-50s"
}
}
}
}
},
"aggregations": {
"by_monitors": {
"terms": {
"field": "monitor.name"
}
}
}
}
}
}
},
"condition": {
"compare": {
"ctx.payload.hits.total": {
"gt": 0
}
}
},
"actions": {
"email_admin": {
"email": {
"profile": "standard",
"from": "noreply@domain.com",
"to": [
"test@domain.com"
],
"subject": "Monitor is DOWN: {{ctx.payload.aggregations.by_monitors.buckets.0.key}}",
"body": {
"text": "Hello, there is a monitor offline currently. Please check..."
}
}
}
}
}
如果监视器出现故障,我编写的上述脚本每 30 秒发送一封电子邮件,这不是我想要的。
当所有东西放在一起时,电子邮件是这样说的: 主题:监视器已关闭:[UAT] 测试网站 正文:您好,目前有显示器离线。请检查...
有人可以协助我的方案吗?我已经在这上面花了好几天了。. 花了好几个小时,却没有多少时间能从中出来!
谢谢。
【问题讨论】:
标签: elastic-stack elasticsearch-x-pack elasticsearch-watcher