设置健康检查

EDAS Agent(以下简称为Agent)会定期对容器和应用执行健康检查,并在控制台上报告结果。这一过程能够帮助您监控集群中服务的运行状况,并协助排查和定位问题。本文介绍如何在EDAS控制台配置端口和URL的健康检查。

检查项

健康检查分为两部分:

  • 端口健康检查:检查应用进程的相关端口是否成功打开,如果端口可以连接上,则该健康检查就会成功。因此如果应用正常运行,则端口健康检查一定是正常,但反之不一定正确,此时就需要进行URL健康检查。

  • URL健康检查:按照固定的时间间隔(间隔为10秒),向应用程序、服务器或其他资源自动提交请求,以验证其是否可到达、是否可用及功能是否正常,如果该地址HTTP状态码返回200则认为健康检查通过。

    说明

    如果您没有配置URL,将不会进行健康检查。

健康检查流程

您可以配置健康检查来监控通过IP地址或域名指定的终端节点。EDAS健康检查按照固定的时间间隔,向应用程序、服务器或其他资源自动提交请求,以验证其是否可到达、是否可用及功能是否正常。您也可以通过配置健康检查URL来发出与用户发出的请求类似的请求,以验证应用功能的运行状态。

下图为健康检查机制中的检查流程图,该图以每10秒触发一次健康检查作为示例。健康检查流程图

图中的(1)和(2)流程的具体说明如下:

  1. 检测应用所在的Ali-Tomcat是否存活。

    • 如果存活,进行第2步检测。

    • 如果没有存活,检测结束,说明健康检查失败。

  2. 检测配置的URL是否返回200

健康检查设置

在ECS集群中,您可以在创建应用过程中设置健康检查URL,也可以在应用部署完成后在应用设置页面添加或者修改健康检查。

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。

  3. 基本信息页面的应用设置区域,单击健康检查右侧的修改

    说明

    只有ECS集群中的应用会显示健康检查的设置项。

  4. 修改健康检查URL对话框设置健康检查。

    修改健康检查URL

    • 端口健康检查:开启来检查应用端口是否能正常访问。

    • 健康检查URL:开启并配置健康检查URL,监测配置的URL是否返回200,若返回200则说明服务可用。配置示例如下:

      • 一个WAR包应用的默认运行容器是Tomcat,则应用端口默认为8080,则健康检查的URL可以设置为http://127.0.0.1:8080/order/healthCheck.html

      • 若该WAR包应用配置了容器路径为根路径,端口设置为8081,WAR包中包含一个可以标识健康状态的文件healthcheck.html,则健康检查URL为http://127.0.0.1:8081/healthcheck.html

      重要

      设置URL健康检查时选取的URL地址需要注意以下几点:

      • 该地址在应用正常的情况下一定要返回200,应用不正常的时候返回非200。

      • 该地址不要具有影响业务的操作。

      • 该地址响应应该尽量迅速。

      • 该地址最好不要调用其他内部接口,例如请求OSS资源,否则会造成对OSS资源非常大流量的请求。

      • 该地址返回的数据量应当尽量小。

  5. 设置完应用健康检查之后,应用会有不同的显示状态。您可在应用基本信息页面,单击实例部署信息页签,在运行状态查看应用的健康检查状态。

    • 容器退出:在健康检查的流程图中,当第1步发现Ali-Tomcat没有存活时,显示容器退出状态。

    • 应用异常:在健康检查的流程图中,当第2步发现在3s内您配置的URL返回非200时,显示应用异常状态。

    • 运行正常:在健康检查的流程图中,如果第1步与第2步均通过,则显示运行正常状态。

      检测过程中,如果发现您没有配置健康检查URL,此时应用的运行状态同样显示为运行正常,但运行状态右侧会显示感叹号,鼠标在叹号上悬停时会提示:请启用应用的健康检查URL,以便更精准的反映应用运行状态。

    • Agent异常:在健康检查的流程图中,在EDAS Server端,如发现Agent在30秒钟之内没有任何状态的汇报,则显示Agent异常状态。

    • ECS已过期:表示ECS在ECS控制台已被释放。

后续操作

您可在应用监控 > 应用详情页面,单击调用链查询,查看调用接口及状态信息。如状态异常,请根据日志信息排查相关报错。更多信息,请参见调用链查询