AWS Application Load Balancer指标未显示及502错误排查求助
问题描述
- 搭建AWS Application Load Balancer(ALB)并配置目标组后,测试时出现预期的502 Bad Gateway错误,但ALB的CloudWatch监控面板完全没记录这约5次请求的相关指标。
- 把ECS服务注册到目标组后,访问仍返回502,已经给ECS服务和ALB的安全组开了所有出入站流量权限。
- 创建ECS服务时明明指定了两个可用区,但目标组里只显示一个可用区的已注册目标。
排查方案
一、ALB监控无请求记录的排查
- 先查ALB访问日志:如果没开日志赶紧开启,日志里能精准看到所有打到ALB的请求细节。要是日志里也找不到那几次测试请求,说明请求根本没到ALB,得先排查DNS解析、客户端到ALB的网络链路问题。
- 核对监控时间范围:CloudWatch指标有1-5分钟延迟,别刚测试完就去看监控,把时间范围拉宽到测试时段再检查。
- 确认指标维度:检查监控面板选的是不是你测试的那个ALB、对应的监听器或目标组,别选错资源导致看不到数据。
二、ECS注册后仍502的排查
- 检查目标组健康检查:确认健康检查的路径、端口、协议和ECS容器里的服务完全匹配。健康检查失败的话,ALB会把目标标为不健康,直接返回502。
- 看ECS容器状态:如果是EC2启动类型,登到对应EC2实例上用
docker logs <容器ID>看日志,确认服务有没有正常启动、是不是在监听指定端口。 - 查目标组状态:去目标组控制台看每个目标的状态,要是显示
unhealthy就针对性排查健康检查失败原因;要是initial或draining,等几分钟看状态会不会更新。 - 验证ALB监听器规则:确认监听器是不是把请求转发到了正确的目标组,有没有路径规则写错导致转发失败。
三、仅单个可用区有注册目标的排查
- 检查ECS资源配置:EC2启动类型的话,确认两个可用区都有足够的EC2实例能运行任务;Fargate类型的话,看两个可用区的CPU/内存配额够不够。
- 核对目标组可用区配置:确认目标组是不是启用了两个可用区,创建时有没有勾选对应的可用区,或者有没有手动添加另一个可用区的目标。
- 检查ECS服务子网:创建ECS服务时指定的子网是不是覆盖了两个可用区,别只选了一个可用区的子网。
相关截图
- 目标组状态:

- ALB监控面板:

- ECS服务配置:

- 安全组规则:

内容的提问来源于stack exchange,提问作者tmp dev
相关产品推荐
相关产品推荐

