【问题标题】:AWS CloudWatch Alarm On Startup Of New EC2 Instance新 EC2 实例启动时的 AWS CloudWatch 警报
【发布时间】:2015-07-01 20:22:29
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-cloudwatch


    【解决方案1】:

    是的,您可以使用用户数据来创建 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。更少的活动部件!

    【讨论】:

    • 对于我的用例,我必须在机器关闭时得到通知。根据这个指标,我可以得到通知。 - stackoverflow.com/questions/21863805/… 我也可以进行引导操作,但这里的问题是,在引导步骤中,没有给定 instanceId 的度量。你能为我的用例推荐一些解决方案吗?
    • @Devsda -- 请在 StackOverflow 上创建一个新问题,而不是在评论部分提出新问题。
    【解决方案2】:

    约翰·罗滕斯坦是正确的。需要的是创建一个 SNS 主题,订阅它,并在“CPUUtilization”指标上创建一个 CloudWatch 警报。为了自动执行此操作,需要在启动新实例时执行这些步骤,或者将这些步骤嵌入到启动新实例的基础 AMI 中!

    您可以参考AwsWinSysOps 获取设置它的快速入门指南。

    AwsWinSysOps 是用于监控 AWS EC2 的快速入门指南和软件包 使用 AWS CloudWatch 指标的 windows 实例。

    【讨论】:

      猜你喜欢
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 2016-11-22
      • 1970-01-01
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-21
      相关资源
      最近更新 更多