如何使用 EB cli 查看我的 EB ec2 的 python 日志

Posted

技术标签:

【中文标题】如何使用 EB cli 查看我的 EB ec2 的 python 日志【英文标题】:How do I view the python logs for my EB ec2 using the EB cli 【发布时间】:2021-06-04 03:35:29 【问题描述】:

所以我有一个 AWS EB 环境,应用程序在 64 位 Amazon Linux 2 上运行的 Python 3.7 上部署和运行良好。 软件配置:

日志组:/aws/elasticbeanstalk/env-uploadedenvname-env

环境属性:APP_VERSION、ENABLE_COOL_NEW_FEATURE、FLASK_DEBUG、MONGO_URI、PYTHONPATH

生命周期:终止时删除日志

日志流:启用

NumProcesses:1

线程数:15

代理服务器:nginx

保留期:3 天

轮换日志:启用

WSGIPath:应用程序

X-Ray 守护程序:禁用

在 AWS CloudWatch 中,日志组如下:

/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/eb-engine.log
/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/eb-hooks.log
/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/httpd/access_log
/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/httpd/error_log
/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/nginx/access.log  
/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/nginx/error.log
/aws/elasticbeanstalk/env-uploadedenvname-env/var/log/web.stdout.log

当我跑步时

eb logs

我得到了日志

/var/log/eb-engine.log 
/var/log/web.stdout.log
/var/log/nginx/access.log
/var/log/nginx/error.log

我的 .ebextensions 包含一个名为 python.config 的文件

option_settings:
     aws:elasticbeanstalk:application:environment:
        FLASK_DEBUG: true
        APP_VERSION: v3.1.0
        ENABLE_COOL_NEW_FEATURE: false
        MONGO_URI: gvhbjhygjhjuyghjbjhugjbjhbjn

如何增加输出最近日志的能力 /opt/python/log

我基本上希望能够查看我的 python 应用程序的日志,这样我就可以在开发中调试我的源代码中的问题。

编辑 1

在 Elastic Beanstalk > env-uploadedenvname-env > 配置 > 软件 > S3 日志存储被禁用,所以我启用它 & 实例日志流式传输到 CloudWatch Logs 已禁用,因此我启用了它。

**编辑并关闭问题 问题不在于我看不到输出,它始终在 /var/log/web.stdout.log 文件中,但是当我压缩文件以将其上传到 EB 环境时,我正在使用该文件对其进行压缩经理。这导致上传时出现问题,因为 Procfile 被放置在应用程序旁边而不是在应用程序内部。 看起来没有日志文件的效果,但实际上应用程序从未通过 Procfile。

解决办法是

cd path/to/application 
zip -r my_application_code.zip . 

现在,当我将 zip 文件上传到 EB 控制台时,Procfile 会正确生成,并且应用程序日志文件可以正常在 web.stdout.log 中找到。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

您可以尝试将以下内容添加到您的python.config,或创建新的配置文件,例如mylogs.config:

files: 
  "/opt/elasticbeanstalk/config/private/logtasks/bundle/applogs.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      /opt/python/log/*.log

/opt/python/log/*.log 应根据您的应用程序进行调整。

【讨论】:

谢谢 Marcin 我会尝试报告回来 好的,我认为没有正确设置它。反正还没有。如何在 s3 存储桶中手动查找 python 日志? @beautysleep 你能 ssh 到 EB 实例并在那里搜索吗?您的应用位于/var/app/current。那么也许你的日志在那里?

以上是关于如何使用 EB cli 查看我的 EB ec2 的 python 日志的主要内容,如果未能解决你的问题,请参考以下文章