健康检查异常排查
更新时间:2025-05-06
场景介绍
负载均衡的健康检查是一种机制,用于定期检测后端服务器或服务的状态,来确保负载均衡器只将流量分配给那些处于正常工作状态的服务器。通过健康检查,负载均衡器可以实时了解后端服务的可用性,快速检测并隔离故障节点,确保系统的稳定性和性能。在有些时候,我们会遇到不明原因的健康检查异常情况,本文中将介绍几种可能的健康检查异常原因以及对应的排查方式。
处理步骤
检查RS安全组配置
通常情况下,后端服务器会默认放通来自BLB实例的健康检查流量,在少数不支持此能力的机型,或默认放通被关闭的情况下,健康检查流量可能会被后端服务器的安全组拦截,您需要在后端服务器所在安全组中放通入向来源段为:100.64.0.0/10(IPv4)或2403:ed40:f200::/40(IPv6)段,入向协议为健康检查所选择的协议,入向端口为配置的健康检查端口,如果BLB侧健康检查端口未配置时,默认情况下健康检查端口为后端服务器提供服务的端口。之后,后端服务器可以正常放通这个范围的健康检查流量。
检查Host配置(针对http/https监听器)
在一些后端服务器配置中,为了规避异常请求,会屏蔽HTTP Header中Host为空的情况。在配置HTTP和HTTPS的后端开放协议时,将“Host头域”这一参数配置为预期的域名,将可以解决因这一情况导致的健康检查异常。
检查后端服务器端口服务配置
当健康检查端口为单独指定的情况下,可能出现健康检查端口与后端服务器实际所提供的服务的端口不一致。在这种情况下,需要在后端服务器上对应健康检查的端口起对应的服务,目的是为了能够正确响应BLB实例的健康检查请求。
- 该服务需要开放在0.0.0.0,可以使用
netstat -antup
(Linux)或netstat -ano
(Windows)命令进行确认。 - 该服务需要正确响应对应的健康检查请求协议或方法。
- 如已配置了预期响应的条件,服务返回的响应需要能够匹配该响应条件,才可以被视为成功。
其他可能情况
如非以上问题导致的健康检查提示异常时,需要按以下步骤排查
- 检查后端服务器已开启了相应的服务端口。
- 检查后端服务器内部是否有防火墙之类的防护软件,拦截健康检查报文。
- 检查后端服务器上没有做 iptables 规则限制。
- 检查客户端直接访问后端服务器应用服务是否可以成功。
- 检查负载均衡健康检查参数设置是否正确。
- 负载均七层(http/https)监听器衡建议使用静态页面来健康检查。
- 检查后端服务器是否有高负载导致服务对外响应慢。