【问题标题】:ELB, EC2, Instance has failed at least the UnhealthyThreshold number of health checks consecutivelyELB、EC2、Instance 至少连续失败了 UnhealthyThreshold 次数的健康检查
【发布时间】:2018-03-10 04:52:48
【问题描述】:

我在 AWS 中使用 EC2 配置 ELB 并遇到“实例至少连续失败了 UnhealthyThreshold 健康检查次数”错误导致实例停止服务。我查过了,

1) 因为我使用 8080 作为安全检查端口并且我的路径是“/index.html”。我在浏览器中测试链接http://ec2DNSname:8080/index.html,它返回,

Response header:
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
ETag: "150-1420697739000"
Date: Thu, 08 Jan 2015 06:16:21 GMT
Cache-Control: public, max-age=0
Last-Modified: Thu, 08 Jan 2015 06:15:39 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 150
Vary: Accept-Encoding
Connection: keep-alive

2) 在我的 EC2 配置中,我允许来自任何机器的 8080 上的入站 TCP 流量

还有其他可能导致健康检查失败的原因吗?

谢谢 锤子

【问题讨论】:

  • 安全组配置的来源设置是什么?
  • 它是源安全组:982702088483/默认所有者别名:982702088483 组名:默认我需要为它配置什么?
  • 你能给我看看规则,选择那个ec2实例,描述,view rules,它会告诉你那个实例的真实防火墙设置。你能把屏幕截图放在这里吗?
  • 感谢BMW,当我点击“查看规则”时,我看到显示与我在安全组中配置的不同。看起来有一些同步问题。我再次更改安全组中的规则,然后单击保存。 1 分钟后,更改会反映并正确显示在“查看规则”下。

标签: amazon-ec2 amazon-elb


【解决方案1】:

只要页面返回 200 响应,它就应该最终通过健康检查。健康检查配置包括健康检查需要返回良好结果的次数以及检查频率。因此,每 30 秒检查一次的健康计数为 5 需要 2.5 分钟才能恢复为健康。

如果 HTTP 健康检查失败,请尝试在端口 8080 上进行 TCP 健康检查。

此外,以防万一,请检查您的 VPC 配置是否允许从负载均衡器连接到 EC2 实例。如果它们在同一个子网中,这将是自动的,但网络 ACL 会影响不同子网之间的连接。

【讨论】:

  • 假设我的端口配置是 ELB 8080 -> EC2 8080 并且健康检查端口是 8080 http。为了源安全,我应该启用,入站,http:8080 到所有,和出站所有流量到所有?
  • 我试过了,1)将健康端口更改为 tcp 8080,仍然失败。 2)我更改为安全组以允许所有入站 http 8080、tcp 8080。两者都不起作用:(
  • 在与 EC2 实例关联的安全组上,尝试允许来自“0.0.0.0/0”的入站“所有流量”用于测试目的。这将删除安全组作为问题的可能原因。如果这可行,那么就是适当配置安全组的问题。如果它不起作用,那么是其他原因。
  • 谢谢。约翰,我的现在正在工作。看起来我在安全组中配置的一些同步问题与“查看规则”下的不同。我再次更改并重新保存。
  • 我可以确认将“HTTP”健康检查更改为“TCP”健康检查为我解决了这个问题。谢谢@约翰
【解决方案2】:

如果你创建了一个 linux 服务器,那么你只需要将一个 index.html 文件附加到你的服务器上,它就可以与 http 和 TCP 一起使用。 请让我它是否有效。或者您查看对 Classic Load Balancer 进行故障排除:运行状况检查(第一个错误)。

【讨论】:

    猜你喜欢
    • 2020-12-18
    • 2017-07-16
    • 2014-10-02
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2019-10-25
    相关资源
    最近更新 更多