Terraform配置的AWS CloudWatch Alarm无数据不触发问题咨询
问题根因与修复方案
你遇到的CloudWatch告警无指标、不触发的核心原因是ALB指标的维度配置错误,其余配置项无逻辑问题,修复步骤如下:
1. 修正LoadBalancer维度取值
AWS AWS/ApplicationELB 命名空间下的指标要求LoadBalancer维度传入ALB的完整资源标识(格式为app/[ALB名称]/[随机后缀]),你当前使用的aws_alb.application_load_balancer.name仅为你自定义的短名称,和CloudWatch存储的维度值不匹配,因此无法匹配到指标数据。
修改aws_cloudwatch_metric_alarm资源的dimensions配置即可:
resource "aws_cloudwatch_metric_alarm" "Test_Alarm" { # 其余原有配置保持不变 dimensions = { LoadBalancer = aws_alb.application_load_balancer.arn_suffix } }
2. 可选检查项
如果修改维度后仍有异常,可依次排查以下配置:
- 确认ALB和CloudWatch告警部署在同一AWS区域,跨区域无法拉取指标
- 直接前往CloudWatch控制台的指标页面,筛选对应ALB的
RequestCount指标,确认ALB已经产生访问流量、指标有正常数据上报 - 你当前配置的
treat_missing_data = "notBreaching"会让无指标数据时告警默认判定为未触发,若需要监控指标缺失场景可调整为breaching - SNS Topic权限配置无误,若告警触发后收不到通知可单独测试SNS Topic的推送功能是否正常
内容的提问来源于stack exchange,提问作者Ashish Saxena
相关产品推荐
相关产品推荐

