gpt4 book ai didi

node.js - Elastic beanstalk 环境的 Cloudwatch 日志组中没有出现任何日志

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:54 25 4
gpt4 key购买 nike

我有一个弹性beanstalk环境,它正在运行一个具有node js API的docker容器。在 AWS 控制台上,如果我选择我的环境,则转到配置/软件,我有以下内容:

  • 日志组:/aws/elasticbeanstalk/my-environment
  • 日志流:已启用
  • 保留:3 天
  • 生命周期:终止后保留

但是,如果我在 Cloudwatch 控制台上单击该日志组,我会看到几周前的最后事件时间(我相信这与创建环境的时间相对应)并且没有内容在日志上。

由于这是一个 Docker 化应用程序,因此服务器本身的日志应位于 /aws/elasticbeanstalk/my-environment/var/log/eb-docker/containers/eb-current-app/stdouterr.log 。如果我再次进入我的 EB 环境,单击“日志”,然后单击“请求最后 100 行”,直接从实例获取日志,则日志记录会正确发生。使用 CloudWatch 时我什么也看不到。

非常感谢任何帮助

最佳答案

我能够解决这个问题。因此,CloudWatch 根据日志文件的第一行和日志流 key 生成哈希,问题是我的 stdouterr.log 文件上的第一行实际上是一个空行!

经过几天的尝试并从优秀的 AWS 支持团队获得帮助后,我首先通过 SSH 连接到与 EB 环境关联的 EC2 实例,您需要将以下行添加到 /etc/awslogs/config/beanstalklogs.conf 文件,位于“file=/var/log/eb-docker/containers/eb-current-app/stdouterr.log”行之后:

file_fingerprint_lines=1-20

通过这些,您可以告诉 AWS 服务它应该使用日志文件上的第 1 行到第 20 行计算哈希值。您可以根据您的日志内容将 20 更改为更大或更小的数字;但我不知道该值是否有上限。

执行此操作后,您需要在实例上重新启动AWS Logs Service

为此,您将执行:

  • sudo service awslogs stop
  • sudo service awslogs start

或更简单:

sudo 服务 awslogs 重新启动

完成这些步骤后,我开始使用我的环境,日志记录现在已正确传输到 CloudWatch 控制台!但是,如果进行新部署、更换 EC2 实例或自动可扩展组生成另一个实例,则此方法将不起作用。

要解决此问题,可以在部署之前通过应用程序根目录的 .ebextensions 目录添加日志配置。

我将一个名为 logs.config 的文件添加到新创建的 .ebextensions 目录中,并放置以下内容:

files:
"/etc/awslogs/config/beanstalklogs.conf":
mode: "000644"
user: root
group: root
content: |
[/var/log/eb-docker/containers/eb-current-app/stdouterr.log]
log_group_name=/aws/elasticbeanstalk/EB-ENV-NAME/var/log/eb-docker/containers/eb-current-app/stdouterr.log
log_stream_name={instance_id}
file=/var/log/eb-docker/containers/eb-current-app/*stdouterr.log
file_fingerprint_lines=1-20

commands:
01_remove_eb_stream_config:
command: 'rm /etc/awslogs/config/beanstalklogs.conf.bak'
02_restart_log_agent:
command: 'service awslogs restart'

当然EB-ENV-NAME更改为我在 EB 上的环境名称。

希望它可以帮助别人!

关于node.js - Elastic beanstalk 环境的 Cloudwatch 日志组中没有出现任何日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57481837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com