健康检查异常排查(共享型)的核心思路是:依次检查后端服务端口监听、安全组规则对健康检查IP的放行情况、以及健康检查响应超时与配置参数,任何一环出错都会导致健康检查失败。

共享型负载均衡实例因资源复用,健康检查行为与性能型实例略有差异,但排查逻辑基本一致,下面从最可能的故障点开始逐步展开。
负载均衡健康检查异常原因有哪些
后端服务器端口未监听
健康检查本质是负载均衡向后端服务器发送探测请求,如果服务器没有启动服务或对应端口未监听,健康检查必然失败。
- 操作步骤:登录服务器,运行
netstat -tlnp | grep <端口号>或ss -tlnp,确认端口处于 LISTEN 状态。 - 如果服务未启动,重启应用服务并确认监听成功。
- 注意:共享型实例的健康检查IP范围可能不同,但端口监听是前提。
安全组或网络ACL未放行健康检查IP
云平台的安全组(防火墙)可能拦截负载均衡的健康检查探测包,不同云服务商的健康检查IP段不同,需要准确添加白名单。
- 操作步骤:在安全组入方向添加上行规则,允许健康检查IP段(例如阿里云共享型SLB使用100.64.0.0/10,酷盾安全共享型ELB使用9.0.0.0/8,具体段以官方文档为准)访问对应端口,如果存在网络ACL,同样需要放行。
- 行业共识认为:健康检查IP放行是基础配置,但常被忽略,相当一部分健康检查失败源于此。
健康检查响应超时或配置不当
健康检查有间隔、超时、不健康阈值等参数,如果后端服务响应慢于健康检查超时时间,探测会超时并判定异常。

- 操作步骤:适当增大健康检查超时时间(例如从5秒调整到10秒),或增加健康检查间隔,给后端服务足够响应时间,对于HTTP健康检查,确保URI路径正确且返回2xx或3xx状态码。
- 业内专家指出:超时时间应至少为后端服务平均响应时间的2倍,以避免误判。
共享型负载均衡健康检查失败怎么办
第一步:确认健康检查配置
- 检查健康检查协议(TCP或HTTP)、端口、域名、路径等是否与后端服务实际配置一致,共享型实例可能无法自定义某些高级参数,但基础配置必须准确。
- 确保健康检查端口与后端服务监听端口相同。
第二步:后端服务本地排查
- 在服务器上通过curl或telnet模拟健康检查探测。
curl -I http://127.0.0.1:8080/health,确保返回200。 - 检查服务日志,捕捉可能的错误,如果服务本身有偶发Bug,健康检查可能反复失败。
第三步:利用云平台日志精确定位
- 部分云服务商提供健康检查日志(如SLB日志),可查看失败原因:连接超时、HTTP状态码错误、拒绝连接等。
- 分析日志后,针对性地调整配置或修复服务。
健康检查异常排查步骤详解
端口与进程排查
- 使用
ss -tlnp或netstat -tlnp查看所有监听端口,确认目标端口在列表内。 - 确保服务进程处于运行状态,且监听IP为0.0.0.0或与负载均衡通信的IP(避免只监听127.0.0.1)。
安全组与网络ACL排查
- 登录云控制台,检查安全组入方向规则,确认允许健康检查IP段访问后端端口。
- 如果使用了网络ACL子网级别,同样检查其规则,共享型负载均衡的健康检查IP段可能集中在特定范围,需查阅官方文档确认。
健康检查参数调优
- 超时与间隔:后端服务响应慢时,增大超时(如10秒)和间隔(如5秒),共享型实例的配置范围可能有限,需在控制台查看可设置值。
- HTTP检查路径:确保路径真实存在且返回成功状态码,如果使用域名,检查Host头是否被后端服务正确识别。
- 不健康阈值:连续几次失败判定为异常?通常设为3次,如果后端服务启动慢,可适当增加阈值。
后端服务响应验证
- 使用curl模拟健康检查请求,注意带上与负载均衡一致的协议和端口。
curl -v -H "Host: yourdomain.com" http://127.0.0.1:8080/health。 - 如果返回非2xx,调整后端服务或健康检查配置,返回404时,检查路径;返回503时,排查服务过载或维护。
共享型负载均衡健康检查配置要点
健康检查IP白名单
共享型实例的健康检查IP段通常为固定范围,务必在安全组中放行,不同云厂商可能不同,建议从官方文档获取最新IP段(例如阿里云共享型SLB使用100.64.0.0/10,酷盾安全共享型ELB使用9.0.0.0/8)。
- 如果忘记配置,健康检查将全部失败,后端服务正常但无法接入流量。
健康检查协议选择
- TCP检查:简单,仅检查端口连通性,适合大多数场景。
- HTTP检查:可检查路径响应,精确性更高,但要求后端服务正常响应特定URI,共享型实例可能限制HTTP检查的路径长度或Header数量,优先使用TCP检查,除非有特殊健康判断需求。
超时与间隔调整
- 如果后端服务处理时间较长,适当增大超时(如10秒)和间隔(如5秒),共享型实例的配置范围可能有限,需在控制台查看可设置值。
- 注意:超时过大会延长异常发现时间,超时过小容易误判,平衡点取决于服务响应速度。
健康检查异常排查实例场景
后端服务刚启动,健康检查一直失败
- 可能原因:服务启动慢,未在健康检查间隔内完成端口监听。
- 解决方案:增大健康检查间隔(如由3秒改为5秒)或增加不健康阈值(如由3次改为5次),给服务足够启动时间。
安全组未放行健康检查IP
- 表现:所有健康检查请求失败,但后端服务正常。
- 解决方案:在安全组入方向添加规则,允许健康检查IP段访问后端端口,如果使用网络ACL,同样处理。
HTTP健康检查路径返回404
- 表现:TCP健康检查通过,但HTTP健康检查失败。
- 解决方案:修改健康检查路径为实际存在的路径,或配置后端服务对特定路径返回200,如果路径不存在,配置重写规则或调整健康检查路径。
健康检查偶发超时,时好时坏
- 可能原因:后端服务有瞬时压力,个别请求响应慢。
- 解决方案:增大超时时间,或优化后端服务性能,同时检查健康检查日志,区分是连接超时还是响应超时。
健康检查异常排查并不复杂,遵循端口、安全组、配置这三步,结合云平台提供的日志,大多数问题都能快速解决,细心检查每一步,异常自然会迎刃而解。
健康检查异常排查(共享型)常见问题
共享型负载均衡健康检查IP地址是什么?
共享型负载均衡的健康检查IP段因云厂商而异,通常为固定范围,例如阿里云共享型SLB使用100.64.0.0/10,酷盾安全共享型ELB使用9.0.0.0/8,建议在控制台页面或官方文档中确认最新IP段,并在安全组中放行。
健康检查TCP和HTTP模式怎么选?
TCP模式仅检查端口连通性,简单且兼容性好;HTTP模式可验证路径和状态码,更精确但需后端服务正确响应,共享型实例可能仅支持TCP模式,或HTTP模式功能受限,如果后端服务无特殊健康判断需求,优先使用TCP模式。

为什么健康检查有时正常有时失败?
可能原因包括:后端服务偶发响应慢(超时设为默认值导致误判)、安全组规则有变动(如临时增删规则未同步)、健康检查IP段随时间变化(部分云厂商会更新IP段,但较少见),建议检查健康检查日志,排除超时和服务端错误,并确认安全组规则稳定。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/524930.html