负载均衡(SLB)
时间:2023-06-21 22:07:00
健康检查异常排查思路
1. 四层排查
TCP在协议下,负载均衡使用 SYN探测包;
在监听器页面上,选择查看的监听器,选择服务器信息选项,查看负载平衡后端服务器的健康状况。如果不健康,调查思路如下:
确定 SLB 后端服务器是否配备了影响服务的防火墙
使用 netstat 命令确定后端服务器的端口是否有监控过程。如果没有启动,则重新启动服务
2. 七层排查
针对7层(HTTP协议)服务,当某一监听员健康检查状态为不健康时,可通过以下方面进行调查:
由于七层健康检查服务和后端负载均衡 KEC 之间的通信是通过内网进行的。您需要登录服务器检查应用服务器端口是否正常监控内网地址。如果内网地址没有监控,请在内网监控应用服务器端口,以确保负载平衡系统和后端 KEC 通信正常。
假设负载均衡前端端口为80,KEC 后端端口也是80,KEC 内网IP是:10.1.1.2
Windows系统服务器使用以下命令:
netstat -ano | findstr :80
Linux系统服务器使用以下命令:
netstat -anp | grep :80
如果能看到 10.1.1.2:80 的监听或 0.0.0.0:80 监听说明这部分正常。
请确保后端服务器打开相应的端口,必须与负载均衡监控配置中配置的后端端口一致。
如果4层负载均衡,只要后端口 telnet如果有响应,可以使用telnet 10.1.1.2 80来测试。如果是7层负载均衡,需要 HTTP状态码是200 代表正常状态码。检验方法如下:
Windows系统可以直接存在 KEC 内部浏览器输入内网IP本例为:http://10.1.1.2
Linux可通过系统curl -I命令看状态是否为HTTP/1.1 200 OK,本例是:curl -I 10.1.1.2
检查后端 KEC 内部是否有防火墙或其他安全防护软件,容易将负载平衡系统的本地化IP地址屏蔽,导致负载平衡系统无法与后端服务器通信。
检查服务器内网防火墙是否放行80端口,可暂时关闭防火墙进行测试。
Windows该系统可以运行输入firewall.cpl操作关闭
Linux系统可以输入/etc/init.d/iptables stop关闭
检查负载均衡健康检查参数设置是否正确,请参考监听器 健康检查 文档。
建议使用健康检查指定的检测文件html简单的页面只用于检查返回结果,不建议使用php等动态脚本语言。
检查后端负载是否高 KEC 外部服务响应缓慢。