如何使用 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 日志的主要内容,如果未能解决你的问题,请参考以下文章