我在 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% 时,不会激活此功能。你有什么想法吗?
您可以在ECS控制台获取已停止任务的详细信息 Cluster -> Tasks -> Stopped 然后进入具体任务 ECS控制台
此外,如果您在任务定义中配置了适当的日志驱动程序,则可以在该选项卡中获取容器的日志
应用程序是否写入任何日志?确保这些日志发送到容器的控制台,以便它们显示在 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