如何排查负载均衡SLB的后端ECS实例是否异常

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

概述

本文主要介绍当健康检查出现异常时,如何排查是否是ECS实例异常导致。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

针对七层监听的负载均衡服务,当健康检查出现异常的信息时,可以从以下几个方面对ECS实例进行排查。

说明:四层监听的负载均衡服务健康检查出现异常时,操作方法与七层监听类似。

  • 确认您能够直接通过ECS访问到您的应用服务。
  • 确认后端服务器开启了相应的端口,且该端口必须与您在负载均衡监听配置中配置的后端端口保持一致。
  • 检查后端ECS内部是否开启了防火墙或其他的安全类防护软件,这类软件很容易将负载均衡服务的本地IP地址屏蔽,导致负载均衡服务无法跟后端服务器进行通讯。
  • 检查负载均衡健康检查参数设置是否正确,建议参照缺省的健康检查参数进行设置。
  • 建议使用静态页面来进行健康检查,如果您用于健康检查的页面在后端ECS应用服务器上并不是缺省首页,需要您在健康检查配置中指定该页面的URL。健康检查指定的检测文件,建议是HTML形式的简单页面,只用于检查返回结果,不建议使用PHP等动态脚本语言编写的页面。
  • 检查后端ECS资源是否有较高负载,降低了ECS对外提供服务的响应速度。

由于负载均衡服务跟后端ECS之间通过内网通讯,因此需要检查ECS是否监听负载均衡内网的前端端口。本文以负载均衡前端端口为80,ECS后端端口为80,ECS内网IP为10.X.X.1为例介绍具体的操作示例。

  1. 检查监听功能是否正常。在ECS实例中执行如下命令,如果能看到10.X.X.1:80的监听信息,或者0.0.0.0:80的监听信息,说明端口的监听正常。
    • Windows 服务器上运行:netstat -ano | findstr :80
    • Linux 服务器上运行:netstat -anp | grep :80
  2. 检查服务器内网防火墙是否放行80端口,可以暂时关闭防火墙,排查是否是防火墙问题,关闭防火墙命令如下所示。
    • Windows:firewall.cpl
    • Linux:/etc/init.d/iptables stop
  3. 检查后端端口是否正常。
    • 对于四层负载均衡,使用telnet命令检查,若有响应即为正常,命令如下所示。
      telnet 10.X.X.1 80
    • 对于七层负载均衡,HTTP状态码需要是200等代表正常的状态码,检验方法如下。
      • Windows:需要在ECS的浏览器上访问ECS的内网IP,确认访问正常,链接如下所示。
        http://10.X.X.1 
      • Linux:参考如下命令,确认返回信息正常,例如“HTTP/1.1 200 OK”。
        curl -I 10.X.X.1

适用于

  • 负载均衡SLB