You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置单条CloudWatch Event Rule实现区域全EC2健康检查告警

单条CloudWatch规则实现同区域全EC2健康检查告警方案

你需要的同区域所有EC2实例健康检查通过率低于1/2时触发通知的需求,无需为每台实例单独配置告警,以下是两种可实现的方案:

方案1:CloudWatch聚合指标告警(更简单,推荐)

直接通过CloudWatch指标数学计算(Metric Math)做跨实例聚合,全程仅需1条告警规则:

  • 进入CloudWatch控制台「指标」页面,选择EC2的「状态检查」指标分类,添加两个聚合指标:
    1. 所有实例StatusCheckFailed_Instance指标的求和结果,命名为unhealthy_count
    2. 所有实例总数的统计结果,可通过EC2实例指标做COUNT()聚合得到,命名为total_count
  • 新增Metric Math表达式:IF(unhealthy_count / total_count >= 0.5, 1, 0),命名为alarm_trigger,返回值为1时代表健康检查通过率≤1/2
  • 为alarm_trigger指标创建告警,阈值设为≥1,统计周期可按需求选择(通常1~5分钟),告警触发动作绑定用于发通知的SNS主题即可

如果你需要监控的是ALB/NLB目标组下实例的负载均衡健康检查,直接替换上述指标为AWS/ApplicationELB或AWS/NetworkELB下的HealthyHostCount、UnHealthyHostCount做聚合即可。

方案2:EventBridge+Lambda事件驱动方案(适合需要事件触发而非定时轮询的场景)

如果你希望通过EC2/CloudTrail事件驱动检测,只需配置1条EventBridge(原CloudWatch Events)规则即可:

  • 新建EventBridge规则,事件模式填入以下配置:
{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification", "AWS API Call via CloudTrail"],
  "detail": {
    "eventName": ["DescribeInstanceStatus"]
  }
}
  • 规则目标绑定Lambda函数,在函数内调用describe_instance_status接口拉取当前区域所有实例的健康状态,计算通过率达到阈值后触发SNS通知即可
  • 如需筛选特定标签的实例,在Lambda拉取实例时添加标签过滤条件即可

内容的提问来源于stack exchange,提问作者Beginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:54:03