【发布时间】:2015-07-01 20:22:29
【问题描述】:
我想在创建实例时将 CloudWatch 警报应用于实例。当 CPU 使用率持续 1 天低于 10% 时,警报应向电子邮件帐户发送消息。我相信实现这一点的最佳方法是在启动实例时使用用户数据脚本。
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-cloudwatch
我想在创建实例时将 CloudWatch 警报应用于实例。当 CPU 使用率持续 1 天低于 10% 时,警报应向电子邮件帐户发送消息。我相信实现这一点的最佳方法是在启动实例时使用用户数据脚本。
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-cloudwatch
是的,您可以使用用户数据来创建 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/`
然后,创建警报以在 CPU 低于 10% 时触发(按小时平均测量,在 24 小时内):
aws cloudwatch put-metric-alarm --alarm-name low-cpu --alarm-description "当 CPU 一天内低于 10% 时发出警报" --metric-name CPUUtilization --namespace AWS/EC2 --statistic平均 --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 百分比
实际值可能需要进行一些调整才能获得您想要的结果。
或者,您可以只编写一个在实例本身上运行、监控自身并发送电子邮件的脚本,而不涉及 CloudWatch。更少的活动部件!
【讨论】:
约翰·罗滕斯坦是正确的。需要的是创建一个 SNS 主题,订阅它,并在“CPUUtilization”指标上创建一个 CloudWatch 警报。为了自动执行此操作,需要在启动新实例时执行这些步骤,或者将这些步骤嵌入到启动新实例的基础 AMI 中!
您可以参考AwsWinSysOps 获取设置它的快速入门指南。
AwsWinSysOps 是用于监控 AWS EC2 的快速入门指南和软件包 使用 AWS CloudWatch 指标的 windows 实例。
【讨论】: