弹性计算

  • 弹性计算 > 使用文档 > 负载均衡 > 负载均衡监听器 > 健康检查

    健康检查

    最近更新时间: 2017-03-24 14:09:34

    七牛云负载均衡实例可以定期向后端服务器发送 Ping、尝试连接或发送请求来测试后端服务器运行的状况,这些测试称为健康检查。

    当后端服务器实例被判定为不健康时,负载均衡实例将不会把请求转发到该实例上。但健康检查会对所有后端服务器(不管是判定为健康的还是不健康的)进行,当不健康实例恢复正常状态时,负载均衡实例将恢复把新的请求转发给它。

    健康检查配置字段的含义

    响应超时: 健康检查响应的最大超时时间。如后端云主机在相应时间内没有正确响应,则判定为健康检查失败。

    检测间隔: 进行健康检查的时间间隔。

    不健康阈值: 如果连续n次(n为填写的数值)收到了健康检查结果失败状态,则识别为不健康,控制台显示为不健康。

    健康阈值: 如果连续n次(n为填写的数值)收到了健康检查结果为成功状态,则识别为健康,控制台显示为健康。

    四层转发健康检查配置

    四层转发的健康检查机制由负载均衡器向配置中指定的服务器端口发起访问请求,如果端口访问正常则视为后端服务器运行正常,否则视为后端服务器运行异常。对于TCP的业务,使用SYN包进行探测。对于UDP业务,使用ping进行检查。

    • 响应超时时间: 2-60 秒
    • 检查间隔: 5-300 秒
    • 不健康阀值:2-10 次 (健康后端服务器出现此指定次数响应超时后,视为不健康)
    • 健康阀值:2-10 次(不健康后端服务器出现此指定次数响应超时后,视为健康)

    七层转发健康检查配置

    七层转发的健康检查机制由负载均衡器向后端服务器发送 HTTP 请求来检测后端服务,负载均衡器会通过 HTTP 返回值是否为 http_2xxhttp_4xx 来判断服务是否正常。后续将推出用户自定义的方式,对响应代码所代表的状态进行描述。假定在某场景下,HTTP 返回值为 http_1xxhttp_2xxhttp_3xxhttp_4xxhttp_5xx 这几种,用户可以根据业务需要编辑 http_1xxhttp_2xx 为服务正常状态,并设置 http_3xxhttp_5xx 的返回值代表异常状态。

    • 响应超时时间暂不能设置,默认为 5s
    • 检查间隔 30-300s,默认为 30s
    • 不健康阀值:2-10 次,默认为 3 次 (健康后端服务器出现此指定次数检查失败后,视为不健康)
    • 健康阀值:2-10 次,默认为3次(不健康后端服务器出现此指定次数检查成功后,视为健康)

    健康检查异常排查思路

    四层排查

    TCP 协议下,负载均衡使用 SYN 包进行探测;UDP 协议下,负载均衡使用 ping 命令进行探测。

    在页面查看后端服务器端口的健康状态,若不健康,排查思路如下:

    • 确定后端服务器是否有配置有安全组影响了服务。有关如何控制后端服务器的访问来保证服务正常运行,请参考 后端服务器的访问控制
    • 使用 netstat 命令,确定后端服务器的端口是否有进程在监听,若未发现进程则请重新启动服务。

    七层排查

    针对7层(HTTP/HTTPS协议)服务,当某一监听出现健康检查异常时,可以通过如下方面进行排查:

    1) 由于负载均衡的七层健康检查服务与后端 QCS 之间通过内网通信,您需要登录服务器检查应用服务器端口是否正常监听在内网地址上,如果没有监听在内网地址,请将应用服务器端口监听到内网上,从而确保负载均衡系统和后端 QCS 之间的通讯正常。

    假设负载均衡前端端口是80,QCS 后端端口也是80,QCS 的内网 IP 是:1.1.1.10

    Windows系统服务器使用如下命令:

    netstat -ano | findstr :80
    

    Linux系统服务器使用如下命令:

    netstat -anp | grep :80
    

    如果能看到 1.1.1.10:80 的监听或 0.0.0.0:80 的监听则说明此配置正常。

    2) 请确保后端服务器开启了您在负载均衡监听器中配置的后端端口。

    如果是 4层负载均衡,只要后端端口 telnet 有响应即可,可以使用telnet 1.1.1.10 80来测试。如果是 7层负载均衡,需要 HTTP 状态码是 200 等代表正常的状态码。检验方法如下:

    • Windows 系统可以直接在 QCS 内的浏览器输入内网 IP 测试是否正常,本例为:http://1.1.1.10
    • Linux系统可以通过curl -I命令看看状态是否为 HTTP/1.1 200 OK,本例使用 curl -I 1.1.1.10 命令

    3) 检查后端 QCS 内部是否有防火墙或其他安全类防护软件,这类软件很容易将负载均衡系统的本地 IP 地址屏蔽,从而导致负载均衡系统无法跟后端服务器进行通讯。

    检查服务器内网防火墙是否放行 80 端口,可以暂时关闭防火墙进行测试。

    • Windows系统可以运行输入firewall.cpl操作关闭
    • Linux系统可以输入/etc/init.d/iptables stop关闭

    4) 检查负载均衡健康检查参数设置是否正确,建议参照本文档提供的健康检查参数默认值进行设置。

    5) 健康检查指定的检测文件,建议是 HTML 形式的简单页面,只用于检查返回结果。不建议用 php 等动态脚本语言。

    6) 检查后端是否有较高负载导致 QCS 对外提供服务响应慢。

    以上内容是否对您有帮助?
  • Qvm free helper
    Close