我对此很陌生,但我需要一些关于我的观察者设置的帮助。- 我正在使用 X-Pack Watchers。
我已经设置了 Heartbeat,我目前有 7 台显示器。即monitor-01 monitor-02等。
我需要帮助设置我的确切场景,我需要 3 个场景的帮助:
场景 1:如果 monitor-01 离线,我只想向“test@domain.com”发送 1 封电子邮件,正文为:“您好,monitor-01 刚刚离线!请检查,谢谢。”
如果 monitor-02 离线,我想要与上面完全相同的结果。如果监视器关闭,我不希望每秒/分钟有多封电子邮件提醒我,我只想要一封电子邮件。
场景 2:如果 monitor-01 或我的任何监视器处于脱机状态...每 3 小时,我希望发送一封刷新电子邮件(我希望电子邮件正文包含特定监视器停机的时间,即监视器停机 120 小时13 分钟)。因此,如果 3 小时过去了,我想向“test@domain.com”发送一封电子邮件,正文为:“您好,这是一个提醒电子邮件,monitor-01 仍处于离线状态!请检查,谢谢。”
场景 3:如果任何监视器重新联机,我想向“test@domain.com”发送一封电子邮件,正文如下:“您好,好消息!监视器 02 重新联机。监视器已关闭7 小时 12 分钟。谢谢。”
有人可以帮忙吗?我到处寻找,找不到创建上述场景的正确语法。这些将是我认为可以使社区的其他成员受益的场景。
Ps,我目前在论坛上找到了一块高级手表,但不符合我的标准。这是它的代码:
{
"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] 测试网站正文:您好,当前有一个监视器离线。请检查...
有人可以协助我的方案吗?我已经在这上面花了好几天了。很多小时过去了,没有多少可以从中出来!
谢谢。