EDAS Agent(以下简称为Agent)会定期对容器和应用执行健康检查,并在控制台上报告结果。这一过程能够帮助您监控集群中服务的运行状况,并协助排查和定位问题。本文介绍如何在EDAS控制台配置端口和URL的健康检查。
检查项
健康检查分为两部分:
端口健康检查:检查应用进程的相关端口是否成功打开,如果端口可以连接上,则该健康检查就会成功。因此如果应用正常运行,则端口健康检查一定是正常,但反之不一定正确,此时就需要进行URL健康检查。
URL健康检查:按照固定的时间间隔(间隔为10秒),向应用程序、服务器或其他资源自动提交请求,以验证其是否可到达、是否可用及功能是否正常,如果该地址HTTP状态码返回200则认为健康检查通过。
说明如果您没有配置URL,将不会进行健康检查。
健康检查流程
您可以配置健康检查来监控通过IP地址或域名指定的终端节点。EDAS健康检查按照固定的时间间隔,向应用程序、服务器或其他资源自动提交请求,以验证其是否可到达、是否可用及功能是否正常。您也可以通过配置健康检查URL来发出与用户发出的请求类似的请求,以验证应用功能的运行状态。
下图为健康检查机制中的检查流程图,该图以每10秒触发一次健康检查作为示例。
图中的(1)和(2)流程的具体说明如下:
检测应用所在的Ali-Tomcat是否存活。
如果存活,进行第2步检测。
如果没有存活,检测结束,说明健康检查失败。
检测配置的URL是否返回
200
。
健康检查设置
在ECS集群中,您可以在创建应用过程中设置健康检查URL,也可以在应用部署完成后在应用设置页面添加或者修改健康检查。
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面单击具体的应用名称。
在基本信息页面的应用设置区域,单击健康检查右侧的修改。
说明只有ECS集群中的应用会显示健康检查的设置项。
在修改健康检查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资源非常大流量的请求。
该地址返回的数据量应当尽量小。
设置完应用健康检查之后,应用会有不同的显示状态。您可在应用基本信息页面,单击实例部署信息页签,在运行状态查看应用的健康检查状态。
容器退出:在健康检查的流程图中,当第1步发现Ali-Tomcat没有存活时,显示容器退出状态。
应用异常:在健康检查的流程图中,当第2步发现在3s内您配置的URL返回非200时,显示应用异常状态。
运行正常:在健康检查的流程图中,如果第1步与第2步均通过,则显示运行正常状态。
检测过程中,如果发现您没有配置健康检查URL,此时应用的运行状态同样显示为运行正常,但运行状态右侧会显示感叹号,鼠标在叹号上悬停时会提示:请启用应用的健康检查URL,以便更精准的反映应用运行状态。
Agent异常:在健康检查的流程图中,在EDAS Server端,如发现Agent在30秒钟之内没有任何状态的汇报,则显示Agent异常状态。
ECS已过期:表示ECS在ECS控制台已被释放。
后续操作
您可在应用监控 > 应用详情页面,单击调用链查询,查看调用接口及状态信息。如状态异常,请根据日志信息排查相关报错。更多信息,请参见调用链查询。