AWS 上关于 Web 服务运行状况的电子邮件警报

Email alert on AWS for webservice health

我已经在 AWS EC2 实例上部署了一个网络服务。 我还实现了一个休息调用 /getStatus 我服务中模块的 returns 状态 JSON 格式,如数据库的连接状态、ActiveMQ 缓存状态等

我想要一种创建自动电子邮件触发器的方法,它会在响应 /getStatus 休息电话时发现任何问题时发送邮件。

我正在寻找是否可以使用 cloudwatch,但欢迎提出任何其他建议

一个解决方案是使端点 return 成为一个 HTTP 状态代码,指示某些内容不正确(如 500),然后设置 Route53 Health Check with e-mail notifications(使用 SNS)。

我建议按照您决定的时间表(即每 5 分钟)运行一次 cloudwatch 事件。

该事件将调用一个 lambda 函数,该函数将调用 /getStatus 并决定是否需要发送电子邮件 - 如果需要,我会进一步建议 AWS SES 发送带有适当警报的自定义格式的电子邮件给应该得到它们的人。

使用上述工具将是 'serverless',而且成本非常低甚至是零,而且好处是不用 运行 在您不得不担心的实例上。

配置电子邮件警报的基本过程非常简单。使用此流程图开始。

如果您需要详细说明,此 guide 涵盖了如何在资源状态发生变化时设置 AWS 电子邮件警报,并包括一些额外的步骤来改进报告,使其更加 user-friendly 和直接发送到 third-party 信使服务。

工作流程如下所示:

  1. 创建Route53 健康检查;
  2. Route53初始化各个区域的Health Checker节点;
  3. Health Checkers ping 指定的 URL;

4a。如果在 10 秒内建立 TCP 连接并且在 2 秒内检索到 HTTP 状态代码 2xx 或 3xx,则状态为 OK

4b。状态为FAILURE否则:TCP连接失败,TCP连接超时,HTTP状态码为4xx、5xx或页面太慢(是的,慢200响应会导致失败);

  1. Health Checker 节点将按照配置重试端点;
  2. 健康检查状态变化触发云监控告警;
  3. 警报传送到 AWS SNS 主题
  4. AWS SNS 通知主题订阅者
  5. 可以应用高级配置来增强上述指南的通知内容和传递方法。

我在开发 Axibase 时间序列数据库 (atsd) 的团队工作。