我需要找到一种方法来报告基于AWS Route53监控的网站正常运行时间(以百分比表示)。此报告通常每季度完成一次。
我最初的想法是让CloudWatch通过SNS向SQS发送ALARM和OK状态,然后将此队列处理到数据库中以便以后报告。然而,据我所知,即使SQS队列订阅了该主题,CloudWatch也只会发送电子邮件。
关于如何实现这一目标的任何建议?
答案 0 :(得分:1)
Amazon Route 53可配置为将健康检查数据发送到Amazon SQS。
这对我有用 - 这是我采取的步骤:
us-east-1
中创建 Amazon SNS通知主题(路由53执行运行状况检查)us-east-1
中创建 Amazon SQS队列(与通知主题相同的区域)Amazon Route 53将自动创建 Amazon CloudWatch警报。
这将导致健康通知到达SQS队列。但是,它只会发送一个警报通知 - 再次变得健康时没有通知。接受现在健康的"通知,编辑CloudWatch警报和添加新通知,当状态正常时会触发
;以下是从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"
}
答案 1 :(得分:0)
一种选择是将Route53运行状况检查统计信息卸载到Axibase Time Series Database并启用预定报告,如uptime reports文章中所述。
实施说明:
可用报告:
报告可以通过基于网络的控制台,通过电子邮件发送或在门户网站上以交互方式生成。
免责声明:我为Axibase工作。