2.1 KiB
2.1 KiB
用 AWS CloudWatch 实现死人手柄:备份等的时效性告警
- 期号: SRE Weekly Issue #82(2017-07-23)
- 作者: —
- 链接: https://ruempler.eu/2017/06/26/dead-mans-switch-backup-alerting-aws-cloudwatch/
简介
这里有一篇很不错的小教程:
我目前参与的一个团队最近遇到的挑战,是找到一种在 AWS CloudWatch 中实现的方法:当指标超过指定阈值时发出告警。当某个指标在指定时间间隔内没有发送到 CloudWatch 时发出告警。
正文
我目前参与的一个团队最近遇到的挑战,是找到一种在 AWS CloudWatch 中实现的方法:
- 当指标超过指定阈值时发出告警。
- 当某个指标在指定时间间隔内没有被发送到 CloudWatch 时发出告警。
虽然第一种基本上是 CloudWatch 的标准功能,但后者要棘手一些。在 Nagios/Icinga 的世界里,这叫做"freshness"(时效性/新鲜度)。你也可以把它称为周期任务/cronjob 的一种特殊的"死人手柄"(dead man's switch)。
举例来说,在我们的场景中,我们想监控并告警:备份作业是否每天运行一次。
下面是我们做的(CloudFormation 代码片段见下):
- 把检查周期(check period)设为该指标应该被发送的时间间隔。例如,如果指标应该每天发送,就设为
86400。这会让 CloudWatch 每天检查一次。 - 把评估周期(evaluation periods)设为
1:我们希望在没有任何数据写入或阈值被突破时立即收到告警。 - 现在是关键一步:我们必须把缺失数据(missing data)当作
breaching(已突破)处理,这样如果在评估周期内没有任何记录,告警就会被触发。
CloudFormation 语法示例:
| 1 2 3 4 5 6 7 | HealthCheckAlarm: Type: AWS::CloudWatch::Alarm Properties: Period: 86400 EvaluationPeriods: 1 TreatMissingData: breaching ... |
喜欢这篇文章?
你可以雇用我或通过 PayPal 向我捐款!