如何在Elastic Beanstalk中实现类似Heroku的实时日志功能
Elastic Beanstalk 实时请求日志查看方案
有三种常用方式可以实现类似Heroku的实时日志输出效果:
1. 使用EB CLI 流式日志命令
3.10.0及以上版本的EB CLI原生支持日志流式输出,不需要登录实例,直接在本地终端运行:eb logs --stream
默认会输出环境所有类型的日志流,如果只需要查看请求相关日志,可以指定对应日志组,例如只看Nginx访问日志:eb logs --stream /aws/elasticbeanstalk/[你的环境名称]/var/log/nginx/access.log
注意:可通过eb --version查看当前CLI版本,版本过低时先升级CLI即可使用该特性
2. 登录实例直接tail日志
单实例场景下可以直接SSH登录到EB对应的EC2实例查看实时日志:
- 首先运行
eb ssh登录你的环境实例 - 找到对应日志路径,常用请求相关日志路径如下:
- Nginx/Apache访问日志:
/var/log/nginx/access.log或/var/log/httpd/access_log - 应用程序日志:不同运行环境路径不同,例如Node.js为
/var/log/nodejs/nodejs.log,Python为/var/log/python/app.log,Java Spring Boot为/var/log/webapp/application.log
- Nginx/Apache访问日志:
- 运行
tail -f 对应日志路径即可实时输出更新的日志内容,需要同时查看多个日志文件时可以写多个路径,例如:tail -f /var/log/nginx/access.log /var/log/nodejs/nodejs.log
3. 多实例汇总实时日志
如果你的环境是多实例部署,需要查看所有实例的汇总请求日志,可以开启环境的CloudWatch日志推送(新版EB环境默认开启),在AWS控制台进入CloudWatch的「日志组」页面,找到对应EB环境的日志分组,选择「实时视图」即可看到所有实例的汇总实时日志。
内容的提问来源于stack exchange,提问作者ololo
相关产品推荐
相关产品推荐

