【问题标题】:CloudWatch SMS notifications for EC2 instances that are not in us-east-1不在 us-east-1 中的 EC2 实例的 CloudWatch 短信通知
【发布时间】:2014-07-19 07:15:14
【问题描述】:

我希望为我位于 us-west-2 数据中心的 EC2 实例设置通知架构。我已阅读 CloudWatch 和 SNS 文档,并且我知道 SMS 通知仅在 us-east-1 中设置 SNS 主题时可用。

我想知道是否有人找到了一种方法来获取不在 us-east-1 中的实例的 CloudWatch 警报,以便在 us-east-1 中的主题设置上广播?

【问题讨论】:

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


    【解决方案1】:

    您可以设置警报以使用 Amazon Cloudwatch CLI 将通知发送到不同的区域。您只需调用 mon-put-metric-alarm 在 us-west-2 中创建警报,并将您的 us-east-1 主题的 ARN 提供为 alarm-actions

    export AWS_CLOUDWATCH_URL=http://monitoring.us-west-2.amazonaws.com/
    
    mon-put-metric-alarm --alarm-name my-alarm --alarm-description "some desc"
        --metric-name CPUUtilization --namespace AWS/EC2 
        --statistic Average  --period 60 --threshold 90 
        --comparison-operator GreaterThanThreshold  
        --dimensions InstanceId=i-abcdef --evaluation-periods 3  --unit Percent 
        --alarm-actions arn:aws:sns:us-east-1:1234567890:my-topic
    

    您可以在此处阅读官方文档:
    http://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/cli-mon-put-metric-alarm.html

    并在此处找到 CLI 设置说明: http://docs.aws.amazon.com/AmazonCloudWatch/latest/cli/SetupCLI.html

    【讨论】:

      【解决方案2】:

      文档似乎不正确 - 当尝试在 us-west-2 中添加指向 us-east-1 中针对 SMS 功能的主题的新警报时,观察到以下错误(今天在2014 年 9 月 10 日):

      A client error (ValidationError) occurred when calling the PutMetricAlarm operation: Invalid region us-east-1 specified. Only us-west-2 is supported.
      

      这是基于使用 aws cli 运行以下命令(帐号更改为 1234567890):

      aws cloudwatch put-metric-alarm --alarm-name "ELB UnHealthy > 0" --alarm-description "ELB UnHealthy > 0" --actions-enabled --ok-actions arn:aws:sns:us-west-2:1234567890:EmailOnly --alarm-actions arn:aws:sns:us-east-1:1234567890:EmailAndSMS --insufficient-data-actions arn:aws:sns:us-west-2:1234567890:EmailOnly --metric-name UnHealthyHostCount --namespace AWS/ELB --statistic Average --dimensions Name=LoadBalancerName,Value=elb-name --period 60 --evaluation-periods 3 --threshold 1 --comparison-operator GreaterThanOrEqualToThreshold
      

      我猜之前的答案是来自没有实际测试过的人......是这样的,或者 AWS 在过去几个月中禁用了引用其他区域 sns 主题的能力,并且忘记更新他们的文档......

      【讨论】:

        【解决方案3】:

        如果您尝试在默认区域以外的区域创建警报,则必须使用 --region 选项明确指定它(尽管 ARN 中已隐含该选项)。

        【讨论】:

        • 问题是关于在一个地区创建一个警报,主题在另一个地区。这没有帮助
        【解决方案4】:

        这并不完全符合您的要求,但我在 us-west-1 区域中有需要 SMS 警报的实例,因此我找到了一种方法来实现它。诀窍是在 us-east-1 区域中创建指标和警报。

        在您位于 us-west-1 区域的实例上,运行以下命令以在 us-east-1 区域中创建指标并向其发布值。

        aws cloudwatch put-metric-data 
            --region us-east-1 --namespace NameSpace --metric-name MetricName 
            --dimensions InstanceId=i-12345678 --value 10
        

        接下来,在 us-east-1 区域中,创建一个 SNS 主题以及相关的 SMS 订阅。

        最后,在 us-east-1 区域中,您创建的主题将可见。根据该指标创建警报,指定您刚刚创建的 SNS 主题。

        此警报现在将在触发时通过 SNS 发送 SMS 通知。

        我原以为将指标数据从 us-west-1 发送到 us-east-1 可能会产生额外成本,但事实证明,对于我使用的指标数量和频率而言,成本为零,这是每分钟发送一次的单个指标。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-25
          • 2017-06-07
          相关资源
          最近更新 更多