【问题标题】:Email alert based on monitors going down / coming back up基于监视器关闭/恢复的电子邮件警报
【发布时间】: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


    【解决方案1】:

    您可以查看两件事:throttling and acknowledging notifications

    • 限制:一旦完成某个操作(例如发送电子邮件),3 小时内不要再执行该操作
    • 确认::在这种情况下,您需要调用 API 说:“我确实收到了 watcher01 发现错误的通知,不要再发送任何有关它的通知。”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多