如何调试由于弹性负载均衡器运行状况检查不健康而偶尔重新启动任务的 ECS Fargate 服务

问题描述 投票:0回答:2

我在 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
2个回答
1
投票

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

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


0
投票

应用程序是否写入任何日志?确保这些日志发送到容器的控制台,以便它们显示在 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
© www.soinside.com 2019 - 2024. All rights reserved.