我想在创建实例时将CloudWatch警报应用于实例。当CPU使用率降至10%以下一整天时,警报应向电子邮件帐户发送消息。我认为实现这一目标的最佳方法是在启动实例时使用用户数据脚本。
答案 0 :(得分:4)
是的,您可以使用用户数据创建 CloudWatch警报和通知。
首先创建 Amazon SNS主题以接收通知。 订阅电子邮件地址以接收通知。此SNS主题可用于所有通知,因此只需创建一次。
然后,创建用户数据脚本以配置警报。我建议使用 AWS Command Line Interface (CLI) 。下面的示例假定Linux,但您可以在Windows中执行类似操作,尤其是PowerShell。
首先,抓住InstanceId:
instance=`curl -s http://169.254.169.254/latest/meta-data/instance-id/`
然后,创建警报,以便在24小时内按小时平均值计算CPU降至10%以下时触发:
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的情况下发送电子邮件。减少运动部件!
答案 1 :(得分:0)
John Rotenstein是对的。所需要的是创建SNS主题,订阅它,并在“CPUUtilization”度量标准上创建CloudWatch警报。为了自动执行此操作,需要在启动新实例时执行这些步骤,或者在启动新实例的基本AMI中执行这些步骤!
您可以参考AwsWinSysOps获取有关设置的快速入门指南。
AwsWinSysOps是一个用于监控AWS EC2的快速入门指南和软件包 使用AWS CloudWatch指标的Windows实例。