【问题标题】:How to debug an ECS Fargate service that occasionally restarts task due to unhealthy elastic load balancer health checks如何调试由于不健康的弹性负载均衡器健康检查而偶尔重启任务的 ECS Fargate 服务
【发布时间】:2020-09-23 11:46:41
【问题描述】:

我正在 ECS Fargate 上托管一个闪亮的应用程序。它运行良好,但偶尔在使用应用程序时会崩溃。我在事件选项卡中追踪到以下内容:

service YYYY has started 1 tasks: task XXX
service YYYY has stopped 1 running tasks: task XXX
service YYYY deregistered 1 targets in target-group (Name of Elastic Load Balancer)
service YYYY (port 3838) is unhealthy in target-group (Name of Elastic Load Balancer) due to (reason Request timed out).

有谁知道这可能是什么原因造成的? 或者,我该如何进一步调查?

这是否与应用程序中 CPU 利用率的峰值有关?

我发现在某些时候 CPU 利用率会飙升至 100%。 那么如果用户以一种导致这种高利用率的方式使用应用程序,这是否会导致容器被视为不健康?

此外,当 CPU > 50% 时,应用程序会启用自动缩放 - 但是在 CPU 利用率飙升至 100% 时不会激活此功能。有什么想法吗?

【问题讨论】:

    标签: amazon-ecs amazon-elb aws-fargate shinyapps


    【解决方案1】:

    您可以在 ECS 控制台上获取有关已停止任务的详细信息 Cluster -> Tasks -> Stopped 然后进入具体任务 ECS Console

    此外,如果您在任务定义中配置了适当的日志驱动程序,则可以在该选项卡中获取容器的日志

    【讨论】:

      【解决方案2】:

      应用程序是否写入任何日志?确保将这些日志发送到容器的控制台,以便它们显示在 ECS 的 CloudWatch 日志中。

      将以下内容添加到您的 Dockerfile 以获取日志以输出到控制台:

      RUN ln -sf /proc/self/fd/1 /var/log/mylocation/mylogfil.log && \
          ln -sf /proc/self/fd/1 /var/log/mylocation/myerrorfile.log
      

      【讨论】:

        猜你喜欢
        • 2019-08-27
        • 2013-04-11
        • 2021-04-20
        • 2014-01-08
        • 2020-01-12
        • 2021-07-28
        • 2016-08-16
        • 1970-01-01
        • 2016-08-05
        相关资源
        最近更新 更多