【问题标题】:AWS ELB HealthCheck ImprovementsAWS ELB 运行状况检查改进
【发布时间】:2017-07-07 17:43:16
【问题描述】:

全部,

我们最近遇到了 ELB HealthCheck 的问题,它掩盖了导致应用程序影响的特定用例或场景。

谁能建议一种容错方法来处理这个问题?

  1. 我们有一个 nodeJS 应用程序在端口 - 80 中运行
  2. 我们在目标组中有 3 个实例,它们已在 ELB 中注册。
  3. ELB HealthCheck 配置为访问端口 80 上的根路径,如果它获得 HTTP 200 则返回成功
  4. 最近一个节点在应用程序挂载时磁盘已 100% 填满,而根挂载仍有空间。
  5. 尽管根据 ELB,HealthCheck 是成功的,但服务器没有响应任何其他服务,理想情况下它是不健康的。这意味着有一些请求得到了 成功,但其中一些失败(路由到这个磁盘填充的服务器)。
  6. 我们确实收到了其他监控系统关于磁盘填充的通知,但由于大量的电子邮件和有限的资源,我们错过了。
  7. 是否有任何其他方法可以让我们即兴运行 HealthCheck 策略,以将这些场景提示给 AutoScaling Group 或 ELB 以便我们可以将这些节点作为目标来删除并自动替换它们?

【问题讨论】:

    标签: amazon-elb


    【解决方案1】:

    您可以将 Elastic Load Balancing 配置为指向客户健康检查页面(例如 healthcheck.php),而不仅仅是检查 index.htm 页面是否返回 200 响应。

    您可以在该页面上运行一些代码来测试应用程序的总体运行状况(数据库连接、磁盘空间、可用内存)。如果一切正常,返回200 响应。如果有问题,请返回 500 响应。这将导致负载均衡器将实例视为Unhealthy,并将停止为实例提供流量。

    如果 Auto Scaling 配置为使用 ELB 健康检查,则 Auto Scaling 将终止运行状况不佳的实例并自动将其替换为新实例。

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 2017-01-05
      • 2018-03-12
      • 2013-12-01
      • 2015-11-16
      • 2019-04-25
      相关资源
      最近更新 更多