是否有用于从Elastic Beanstalk应用程序中拖尾日志的CLI实用程序。特别是一个python烧瓶应用程序。
您可以使用他们的eb CLI获取快照......
eb logs
但我想这样做(类似于heroku offers)......
eb logs --tail
有没有人完成这个?
谢谢!
一些参考文献:
答案 0 :(得分:25)
更新:我的答案不断提升,但自2013年以来情况发生了变化。现在更容易拖尾EB日志 - 请查看posit labs's answer以获得更简单的方法: - )。
原始回答:
我也一直在努力争取这个。 eb CLI实用程序似乎不允许当前拖尾应用程序日志。
但是,您可以通过以下方式拖拽这些日志:
.pem
文件)tail -f /var/log/nodejs/nodejs.log
。我不知道Flask应用程序的等价物是什么。(感谢Richard Soutar指出我在这个方向上的正确方向。)
答案 1 :(得分:10)
您可以使用-g
标志设置日志组,然后使用--stream
来传输结果。无需ssh到特定的机器。
eb logs -g /aws/elasticbeanstalk/yourApp-env/var/log/nodejs/nodejs.log --stream
答案 2 :(得分:7)
现在这很简单:
eb logs --stream
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-logs.html
(我意识到posit lab's answer已包含--stream
选项,但我一直在略读这个答案,因为我想查看所有日志,而不只是一组。如果我的记忆力更好,我就不会我必须保持谷歌搜索相同的问题,并在同一个地方结束。)
答案 3 :(得分:5)
您可能不需要eb日志,先尝试eb ssh
tail -f /var/log/*
答案 4 :(得分:2)
因此对于仍在寻找它的其他人来说,我为弹性beanstalk环境编写了一个小工具来尾部日志,你只需要指定环境名称和文件名,它就会执行SSH并拖尾每个实例的文件。
./eb-tail env-name
或
./eb-tail env-name -f '/path/to/file'
答案 5 :(得分:2)
这就是我的所作所为:
从eb logs
eb logs
每个日志EB显示都带有-------
前置/前置它。例如,对于Rails上的Passenger日志:
-------------------------------------
/var/app/support/logs/production.log
-------------------------------------
然后SSH进入服务器并拖尾日志:
eb ssh # may have to eb ssh --setup for first time use
# from inside the server
tail -f /var/app/support/logs/production.log
答案 6 :(得分:1)
更详细的答案,因为我在 SSH 中使用 eb logs --stream
和 tail
时遇到错误:
使用此命令 eb logs --cloudwatch-logs enable
在 eb CLI 中启用 Cloudwatch。
转到 AWS 控制台并打开 Cloudwatch。现在,转到日志组,选择要流式传输的日志,在我的情况下为 web.stdout.log,然后 复制下图突出显示的路径
现在,再次打开 eb CLI 并输入 eb logs -g your_copied_path --stream
。例如:eb logs -g /aws/elasticbeanstalk/yourEbsApp-env/var/log/web.stdout.log --stream
。然后日志拖尾将开始。
(可选)您可以完全跳过第 3 点,直接在上面的 CloudWatch 面板中流式传输日志,只需打开日志组并 选择其下方提供的日志流。
答案 7 :(得分:0)
您无法直接拖尾日志,因为AWS EB将多个日志聚合在一起。假设它是您感兴趣的应用程序日志,您可以转到EC2选项卡并按实际服务器上的连接按钮(您可能需要)要定义密钥对,只需按照说明操作)。登录到服务器后,您可以从那里拖动日志。
答案 8 :(得分:0)
我用来从多个服务器(包括aws)拖出几个日志的东西如下。
https://gist.github.com/iolloyd/da60ef316643d7894bdf
它允许我监视本地计算机中的多个远程实例。
答案 9 :(得分:0)
这不使用eb-cli,但流式日志的最简单方法是使用eb logs -cw enable
然后在cloudwatch门户中读取流。
答案 10 :(得分:0)
对我来说,它涉及两个步骤。
您需要运行eb logs --stream
,但在此之前运行:
eb logs --cloudwatch-logs enable
Voila!
答案 11 :(得分:-5)
我没有可以测试此环境的环境,但是从查看代码看起来可以做到:
eb logs tail
查看constants.py第129行