健康检查

在集群上可以使用健康检查功能来检查节点是否健康,进而可以控制节点是否自动上线、下线。

原理

健康检查的原理是通过访问节点上的一个URL来确定节点是否健康,原理:

  1. 1) |-----------|
  2. API Node ---> | Node1 |
  3. | | Node2 |
  4. | 2) | Node3 |
  5. \|/ |-----------|
  6. 执行动作 集群

其中:

  1. API节点并发访问边缘节点上的URL,读取响应数据;
  2. 通过是否发生网络错误以及响应数据中的状态码来判断节点是否健康,然后执行对应的动作,比如上下线等。

开启健康检查

在集群设置里 – “健康检查”菜单里可以开启健康检查:

Health1.png

表单中的选项说明如下:

  • 启用健康检查 - 选中表示启用健康检查
  • 检测URL - 用来检测节点是否能够正常访问的URL
    • 协议 - 可以访问URL中的协议
    • 域名 - 已经部署到当前集群的一个域名;如果为空则使用节点IP作为域名。 严重强调:经常有用户因为不了解健康检查原理而填写了错误的URL,这里强调一下,这个域名是用来访问节点上的网站的,而不是在节点上访问外部的某个网站的,所以域名一定是已经在集群上已经部署的网站服务域名,也就是说在管理平台网站服务列表里可以找到这个域名对应的网站服务。
    • 端口 - 可以访问URL中的端口,如果是80443,可以不用填写
    • RequestURI - URL访问路径部分,如果只是简单的健康检查,可以不用填写
  • 检测时间间隔 - 两次检查之间的间隔;并不是数值越小越好,数值越小越灵敏,但同时对系统的负担也会越大;
  • 自动下线 - 选中后系统会根据健康检查的结果自动标记节点的上线/下线状态,并可能自动同步DNS设置
  • 连续上线次数 - 连续检查N次成功后可以自动恢复上线
  • 连续下线次数 - 连续检查N次失败后可以自动下线,一般来说,连续下线次数要比连续上线次数要多,因为要尽可能减少节点下线次数,避免频繁下线影响用户访问
  • 更多选项
    • 允许的状态码 - 允许检测URL返回的状态码列表,如果返回的状态码不在这个列表里,则认为检测失败
    • 超时时间 - 读取检测URL超时时间;即超过这个时间,认为是读取失败
    • 连续尝试次数 - 如果读取检测URL失败后需要再次尝试的次数
    • 每次尝试间隔 - 如果读取检测URL失败后多次尝试之间的间隔时间
    • 终端信息 - 发送到服务器的User-Agent值,不填写表示使用默认值
    • 只基础请求 - 只做基础的请求,不处理反向代理(不检查源站)、WAF等
    • 记录访问日志 - 记录健康检查的访问日志;如果不选中表示不在访问日志中记录健康检查相关的访问日志

在检测URL填写完毕之后,可以查看拼接后的URL是否正确:

Health2.png

执行健康检查

在填写完健康检查表单并保存后,系统即开始按照设定的检测时间间隔进行自动检查。也可以点击表单下方的”立即检查”手工执行一次检查。

消息提醒

健康检查失败后,可以在管理平台消息中查看检查检查相关的错误信息,以帮助管理员诊断问题。