全部产品
Search
文档中心

负载均衡:配置和管理健康检查

更新时间:Sep 28, 2023

文本介绍如何在添加监听时配置健康检查以及查看、编辑和关闭健康检查。

背景信息

您可以通过控制台或API配置监听的健康检查。更多详细信息,参见健康检查概述健康检查常见问题

配置健康检查

您可以在添加监听时配置健康检查,通常,使用默认的健康检查配置即可。

  1. 登录传统型负载均衡CLB控制台
  2. 在顶部菜单栏,选择CLB实例所属的地域。

  3. 实例管理页面,找到目标实例,单击实例ID。

  4. 在实例详情页,单击监听页签,单击添加监听或在目标监听操作列单击修改监听配置

  5. 根据配置向导完成监听配置,直至进入健康检查配置向导页面,健康检查默认开启,单击高级配置右侧的修改,完成以下健康检查配置。

    健康检查配置

    说明

    健康检查协议

    选择健康检查协议类型,监听为TCP协议时,健康检查方式可选TCP或HTTP模式。

    • TCP模式的健康检查是基于网络层探测,通过发送SYN握手报文来检测服务器端口是否存活。

    • HTTP模式的健康检查是通过发送head请求,通过发送HEAD或GET请求模拟浏览器的访问行为来检查服务器应用是否健康。

    健康检查方法

    (仅HTTP和HTTPS健康检查协议支持)

    七层监听(HTTP/HTTPS)健康检查支持HEAD和GET方法,默认采用HEAD方法。

    如果您的后端应用服务器不支持HEAD方法或HEAD方法被禁用,则可能会出现健康检查失败,此时可以使用GET方法来进行健康检查。

    使用GET方法时,如果Response长度超过8K,会被截断,但不会影响健康检查结果的判定。

    说明

    所有地域的七层监听健康检查都支持GET方法。

    健康检查端口

    健康检查服务访问后端时的探测端口。

    默认值为配置监听时指定的后端端口。

    说明

    如果该监听配置了虚拟服务器组或主备服务器组,且组内的ECS实例的端口都不相同,此时不需要配置检查端口。负载均衡系统会使用各自ECS的后端端口进行健康检查。

    健康检查路径健康检查域名(可选)

    (仅HTTP健康检查协议支持)

    HTTP健康检查默认由负载均衡系统通过后端ECS内网IP地址向该服务器应用配置的缺省首页发起HTTP Head请求。

    如果您用来进行健康检查的页面并不是应用服务器的缺省首页,需要指定具体的检查路径。

    因为有些应用服务器会对请求中的host字段做校验,即要求请求头中必须存在host字段。如果在健康检查中配置了域名,则SLB会将域名配置到host字段中去,反之,如果没有配置域名,SLB则不会在请求中附带host字段,因此健康检查请求就会被服务器拒绝,可能导致健康检查失败。综上原因,如果您的应用服务器需要校验请求的host字段,则需要配置相关域名,确保健康检查正常工作。

    正常状态码

    (仅HTTP健康检查协议支持)

    选择健康检查正常的HTTP状态码。

    默认值为http_2xx和http_3xx。

    健康检查响应超时时间

    接收来自运行状况检查的响应需要等待的时间。如果后端ECS在指定的时间内没有正确响应,则判定为健康检查失败。

    范围是1~300秒,UDP监听的默认值为10秒,HTTP/HTTPS/TCP监听的默认值为5秒。

    健康检查间隔时间

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

    LVS集群内所有节点,都会独立、并行地遵循该属性对后端ECS进行健康检查。由于各LVS节点的检查时间并不同步,所以,如果从后端某一ECS上进行单独统计,会发现来自负载均衡的健康检查请求在时间上并不会遵循上述时间间隔。

    范围是1~50秒,UDP监听的默认值为5秒,HTTP/HTTPS/TCP监听的默认值为2秒。

    健康检查健康阈值

    同一LVS节点服务器针对同一ECS服务器,从失败到成功的连续健康检查成功次数。

    可选值 2~10,默认为3次。

    健康检查不健康阈值

    同一LVS节点服务器针对同一ECS服务器,从成功到失败的连续健康检查失败次数。

    可选值2~10,默认为3次。

    健康检查请求健康检查返回结果

    为UDP监听配置健康检查时,您可以在健康检查请求中输入请求的内容(例如youraccountID),在健康检查返回结果中输入预期的返回结果(例如slb123)。

    同时在后端服务器的应用逻辑中加入相应的健康检查应答逻辑,如收到youraccountID的请求时,回应slb123。

    此时,当负载均衡收到后端服务器发来的正确响应时,则认为健康检查成功,否则认为健康检查失败。此方式能最大程度确保健康检查的可靠性。

  6. 单击下一步直至监听配置完成。

查看健康检查

  1. 登录传统型负载均衡CLB控制台
  2. 在左侧导航栏,选择传统型负载均衡CLB(原SLB) > 实例管理

  3. 单击实例ID,然后单击监听页签,查看监听的健康检查状态。

    监听健康检查主要包括以下状态:

    • 初始化:表示健康检查后端服务器列表初始化中。

    • 正常:表示不存在异常状态的后端服务器。

    • 异常:表示存在异常状态的后端服务器。

    • 未打开:表示健康检查未开启。

  4. 单击对应监听后的异常或者初始化,可以查看监听健康检查为异常/初始化的监听/转发策略、服务器组、云服务器/端口、健康状态和异常原因。

健康检查探测

健康检查探测是根据负载均衡监听中的健康检查配置生成探测脚本,通过ECS云助手在您的ECS实例上执行脚本,获取健康探测结果,用于在您配置后端服务器后提前探测后端服务器的健康状态。

  • 目前不支持对转发规则的后端服务器进行探测。

  • 由于健康检查探测和实际健康检查上报采用了不同的链路,所以最终的结果可能不完全一致,探测为用户提供健康检查配置上的建议,而健康检查以配置完成后实际结果为准。

健康检查探测前提条件

  • 确保您已授权RAM的AliyunSLBHealthDiagnoseRole权限策略,以允许阿里云传统型负载均衡服务访问您的ECS服务。

  • 后端服务器ECS需要同时满足以下条件:

    • 网络类型是专有网络(Virtual Private Cloud,简称VPC)。

    • 已安装Linux系统和云助手。如何安装云助手,请参见安装云助手Agent

    • 实例处于running状态,且系统默认Shell为bash。

  • 监听已开启健康检查并且后端服务器组中已经添加ECS实例。

  1. 登录传统型负载均衡CLB控制台
  2. 实例管理页面,找到目标实例,单击实例ID。

  3. 监听页签下,找到目标监听,在操作列单击修改监听配置

  4. 配置监听页面,单击下一步健康检查

  5. 单击高级配置右侧的健康检查探测

    首次使用时,需单击立即前往开通,在弹出的云资源访问授权页面,单击同意授权授权RAM。确保您已授权RAM访问,系统会创建一个健康诊断角色AliyunSLBHealthDiagnoseRole,授权后CLB将使用此角色来访问后端服务器ECS。

  6. 健康检查探测页面,单击目标后端服务器操作列下的开始探测

    负载均衡支持同时选择5个ECS实例进行批量探测。如果ECS数量过大,请分批进行探测。健康检查探测

  7. 单击确定开始诊断。诊断完成后控制台将展示诊断结果。

    目前监听支持的诊断项如下:

    监听类型

    健康检查端口状态

    iptables配置

    rpfilter配置

    HTTP探测响应

    UDP探测

    TCP

    -

    UDP

    -

    HTTP

    -

    HTTPS

    -

    您可以登录云助手,选择ECS实例所在的地域,单击执行记录页签,查询探测脚本执行详情。

关闭健康检查

您可以关闭健康检查功能,但关闭健康检查后,当后端某个ECS出现异常时,CLB还是会把请求转发到该异常的ECS上,造成部分业务不可访问。所以建议一般情况下不要关闭健康检查。

  1. 登录传统型负载均衡CLB控制台
  2. 实例管理页面,找到目标实例,单击实例ID。

  3. 监听页签下,找到目标监听,在操作列单击修改监听配置

  4. 配置监听页面,单击下一步健康检查

  5. 关闭健康检查开关,单击下一步

  6. 单击提交,然后单击知道了

相关文档

相关API文档