AWS Route53 - 获取正常运行时间百分比

AWS Route53 - get uptime percentage

我需要找到一种方法来报告基于 AWS Route53 监控的网站正常运行时间(百分比)。此报告通常每季度进行一次。

我最初的想法是让 CloudWatch 通过 SNS 将 ALARM 和 OK 状态发送到 SQS,然后将此队列处理到数据库中以供以后报告。然而,据我所知,即使 SQS 队列订阅了该主题,CloudWatch 也只会发送电子邮件。

关于我如何实现这一点有什么建议吗?

Amazon Route 53 可以配置为将健康检查数据发送到 Amazon SQS。

它对我有用——这是我采取的步骤:

  1. us-east-1(Route 53 执行健康检查的地方)
  2. 中创建一个 Amazon SNS 通知主题
  3. us-east-1(与通知主题相同的区域)
  4. 中创建一个 Amazon SQS 队列
  5. 订阅 Amazon SQS 队列到 Amazon SNS 主题(通过队列操作菜单选项)
  6. 创建 Amazon Route 53 健康检查。将 创建警报 设置为是。将其配置为向现有 SNS 主题发送通知 并选择上面创建的主题。

Amazon Route 53 将自动创建 Amazon CloudWatch 警报

这将导致健康通知到达 SQS 队列。但是,它只会发送一个警报通知——当它再次恢复健康时不会有任何通知。要接收 "now healthy" 通知,请编辑 CloudWatch 警报并 添加在 "State is OK".

时触发的新通知

这是从 SQS 队列中检索到的失败通知示例:

{
  "Type" : "Notification",
  "MessageId" : "4768e8e4-0026-51c7-aa6e-a696bf02f808",
  "TopicArn" : "arn:aws:sns:us-east-1:123456789012:r53-east",
  "Subject" : "ALARM: \"awsroute53--4c2f-9816-a42c50ec8671-High-HealthCheckStatus\" in US - N. Virginia",
  "Message" : "{\"AlarmName\":\"awsroute53-4c2f-9816-a42c50ec8671-High-HealthCheckStatus\",\"AlarmDescription\":null,\"AWSAccountId\":\"743112987576\",\"NewStateValue\":\"ALARM\",\"NewStateReason\":\"Threshold Crossed: 1 datapoint (0.0) was less than the threshold (1.0).\",\"StateChangeTime\":\"2015-09-16T00:50:44.591+0000\",\"Region\":\"US - N. Virginia\",\"OldStateValue\":\"OK\",\"Trigger\":{\"MetricName\":\"HealthCheckStatus\",\"Namespace\":\"AWS/Route53\",\"Statistic\":\"MINIMUM\",\"Unit\":null,\"Dimensions\":[{\"name\":\"HealthCheckId\",\"value\":\"4c2f-9816-a42c50ec8671\"}],\"Period\":60,\"EvaluationPeriods\":1,\"ComparisonOperator\":\"LessThanThreshold\",\"Threshold\":1.0}}",
  "Timestamp" : "2015-09-16T00:50:44.656Z",
  "SignatureVersion" : "1",
  "Signature" : "KvCHsBh95q...cw8A==",
  "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-90147a5624348ee.pem",
  "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:r53-east:4b5d-8318-57bd58f0b3a4"
}

一种选择是将 Route53 健康检查统计信息卸载到 Axibase Time Series Database and enable scheduled reports as discussed in the uptime reports 文章。

实施说明:

  • 需要创建一个 read-only account 来查询 CloudWatch 统计信息和 Route53 健康检查元数据。
  • 卸载任务有 5-15 分钟的延迟(可配置)。
  • 卸载任务确保复制的 CW 统计信息中没有数据间隙,即当收集因任何原因暂时停止时。

可用报告:

  • 基本报告:一段时间内(天、周、月、季度)的平均正常运行时间。
  • 增强的正常运行时间报告,带有额外的检查配置详细信息。
  • 按协议或自定义标签过滤结果。
  • 按 GEO、环境等自定义标签汇总正常运行时间。
  • 按一天中的小时数或工作日筛选结果。
  • 按星期几汇总正常运行时间。
  • 停机事件计数。
  • 最长的停机事件。

报告可以通过 web-based 控制台以交互方式生成,通过电子邮件发送,或显示在门户网站上。

免责声明:我为 Axibase 工作。