5

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

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

4

4 回答 4

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主题的能力并且忘记更新他们的文档......

于 2014-09-10T15:15:12.767 回答
1

您可以设置警报以使用 Amazon Cloudwatch CLI 将通知发送到不同的区域。您只需通过调用在 us-west-2 中创建警报mon-put-metric-alarm并将您的 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

于 2014-05-31T15:11:07.813 回答
1

这不完全是您所要求的,但我在 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 可能会产生额外的成本,但事实证明,对于我使用的指标数量和频率而言,成本为零,这是一个单一的指标每分钟发送一次。

于 2016-04-08T16:25:27.407 回答
0

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

于 2015-12-22T14:42:43.503 回答