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



我正在寻找在us-west-2数据中心的EC2实例的通知模式设置。我已经阅读了CloudWatch和SNS文档,并且我知道只有在us-east-1中设置SNS主题时才能使用短信通知。

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

似乎文档是不正确的-当试图在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主题的功能,并且忘记更新他们的文档…

您可以使用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

如果您试图在默认区域以外的区域创建警报,您必须使用——region选项显式指定它(尽管这已经在ARN中隐含)。

这并不完全是您所要求的,但是我在us-west-1地区有需要SMS警报的实例,所以我找到了一种方法来实现此功能。诀窍是在美国东部-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

接下来,在美国-东-1地区,创建一个SNS主题,以及相关的SMS订阅。

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

此告警触发后将通过SNS发送短信通知。

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

最新更新