我想在特定时间段内自动切换闹钟开/关,以便在维护时不会触发。我怀疑是否存在简单或直接的方法,因为我在文档中找不到这样的东西。有没有人知道在使用CloudWatch警报时实现这一目标的不同方法,还是我错过了一个明显的解决方案?
答案 0 :(得分:4)
它不是自动的,但可以做到:
http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_EnableAlarmActions.html
您要做的是:在维护窗口开始之前您禁用警报操作。当窗口结束时,启用警报操作。
答案 1 :(得分:2)
我到这里的时候正在寻找可以帮助我禁用机器的警报的机器,该机器每星期六在11:00至11:30之间执行备份。我发现的唯一解决方案是创建cronjob以禁用/启用特定警报并在特定时间运行它们:
59 10 * * 6 ec2-user aws cloudwatch disable-alarm-actions --alarm-names "Alarm-1" "Alarm-2"
31 11 * * 6 ec2-user aws cloudwatch disable-alarm-actions --alarm-names "Alarm-1" "Alarm-2"
显然,您的节点需要有权访问CloudWatch。我给了它CloudWatchFullAccess。
答案 2 :(得分:1)
另一个想法是使用 math expressions。在最简单的情况下,IF
和 HOUR
的组合会有所帮助。这可以直接在 cloudwatch 中完成,无需 lambda 函数。
一个例子来说明这个想法:假设一个指标 m
只将自然数作为值,如果 m=0
触发一个警报。
那么你可以使用表达式
IF(HOUR(m) > 8 && HOUR(m) < 18, m, m+0.01)
而不是警报中的 m
。请注意,HOUR
以 UTC 返回小时,因此将其调整为您的时区。 0.01
仅在小时超出区间 [8, 18] 时添加。如果 m
实际上是 0
,额外的 0.01
确保不会触发 0
的警报检查。 0.01
是一个任意值,必须小到不会改变指标的含义。对于所有指标,可能无法找到这样的数字。我想你明白了。
要通过 Cloudwatch UI 向警报定义添加数学表达式,请按以下顺序单击按钮:
(这个问题是最热门的谷歌搜索结果之一,所以我想添加一个对我有帮助的解决方法。)
答案 3 :(得分:0)
是的,就像上面你可以使用CLI来做到这一点。此外,您可以停止从自定义指标的脚本INCASE发送数据,以便自动停止警报。
另一种方法是您可以编写一个脚本,您可以使用put-alarm(CloudWatch CLI)定义警报。可能有一个创建警报的功能和一个删除它们的功能。需要时打电话给他们。
答案 4 :(得分:0)
同意。在“下班时间”上感觉到“数据存在”警报的痛苦。我希望利用AWS Lambda的预定CloudWatch触发器,这是我们新的转到调度程序,用于以少于1 /分钟的速率调用操作。
https://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cloudwatch.html#CloudWatch.Client.disable_alarm_actions