针对不在us-east-1中的EC2实例的CloudWatch SMS通知

时间:2014-05-29 17:19:53

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

我希望获得位于us-west-2数据中心的EC2实例的通知架构设置。我已阅读CloudWatch和SNS文档,我知道只有在us-east-1中设置SNS主题时才能使用SMS通知。

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

4 个答案:

答案 0 :(得分:7)

看起来文档不正确 - 当我们尝试在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主题的能力而忘记更新他们的文档... < / p>

答案 1 :(得分: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 :(得分:1)

这并不是你要求的,但我在us-west-1区域有我需要短信提醒的实例,所以我找到了一种方法让它工作。诀窍是在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发送短信通知。

我原以为将公制数据从us-west-1发送到us-east-1可能需要额外费用,但事实证明,我使用的指标和频率的成本为零,是每分钟发送一次的单一指标。

答案 3 :(得分:0)

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