新EC2实例启动时的AWS CloudWatch警报

4

我希望在实例创建时应用CloudWatch告警。当CPU使用率连续1天低于10%时,告警应向电子邮件帐户发送消息。我认为实现这一点的最佳方法是在启动实例时使用用户数据脚本。

2个回答

4

是的,您可以使用用户数据来创建CloudWatch警报和通知。

首先创建一个Amazon SNS主题以接收通知。订阅电子邮件地址以接收通知。此SNS主题可用于所有通知,因此只需要创建一次。

然后,创建一个用户数据脚本来配置警报。我建议使用AWS命令行界面(CLI)。下面的示例假定为Linux,但您也可以在Windows中进行类似操作,特别是PowerShell。

首先获取InstanceId:

instance=`curl -s http://169.254.169.254/latest/meta-data/instance-id/`

接下来,创建一个告警,当CPU平均下降到10%以下时触发,持续24小时:

aws cloudwatch put-metric-alarm --alarm-name low-cpu --alarm-description "当CPU在一天内下降到10%以下时触发告警" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 3600 --threshold 10 --comparison-operator LessThanThreshold --dimensions Name=InstanceId,Value=$instance --evaluation-periods 24 --alarm-actions arn:aws:sns:us-east-1:111122223333:MyTopic --unit Percent

实际值可能需要进行调整,以获得所需结果。

或者,您可以编写一段只在实例本身运行、监控自己并发送电子邮件的脚本,而不涉及CloudWatch。这样少了很多复杂性!


根据我的使用情况,当机器关闭时我必须得到通知。根据这个指标,我可以得到通知。- http://stackoverflow.com/questions/21863805/how-do-i-set-an-alarm-to-terminate-an-ec2-instance-using-boto我也可以放置引导操作,但问题在于,在引导步骤中,没有给定instanceId的指标。你能为我的使用情况提供一些解决方案吗? - devsda
@Devsda -- 请在StackOverflow上创建一个新的问题,而不是在评论部分提出新问题。 - John Rotenstein

0
John Rotenstein是正确的。需要创建一个SNS主题,订阅它,并在“CPU利用率”指标上创建CloudWatch警报。为了自动执行这些步骤,这些步骤需要在启动新实例时执行,或者嵌入到基本AMI中,从而启动新实例!
您可以参考AwsWinSysOps快速入门指南进行设置。

AwsWinSysOps是一个快速入门指南和包,用于监视使用AWS CloudWatch指标的AWS EC2 Windows实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接