我希望获得位于us-west-2数据中心的EC2实例的通知架构设置。我已阅读CloudWatch和SNS文档,我知道只有在us-east-1中设置SNS主题时才能使用SMS通知。
我想知道是否有人找到了一种方法来获取不在us-east-1中的实例的CloudWatch警报,以便在us-east-1中的主题设置上进行广播?
答案 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中)。