AWS Elastic Beanstalk NodeJS 和日志
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk NodeJS 和日志【英文标题】:AWS Elastic Beanstalk NodeJS and logs 【发布时间】:2015-01-14 08:09:30 【问题描述】:我想将我的 NodeJS 项目从单个 EC2 迁移到 ElasticBeanstalk。在我当前的代码中,我使用在文件系统上创建日志文件的依赖项 log4js。在 EC2 上,这可以创建,但是 ElasticBeanstalk 中记录某些内容的最佳方式是什么?如果我从 ElasticBeanstalk 下载生成的日志,我的 log4js 自定义日志文件不存在。
最好的问候
【问题讨论】:
【参考方案1】:要查看日志,您可以:
按下弹性豆茎环境 按“日志”(在左侧) 按“请求日志”(通常只需最后 100 行即可)并下载文件。您可以在那里看到几个不同的日志文件。
相信你在Node.js中使用log4js写的日志会在:
/var/log/nodejs/nodejs.log
我喜欢通过 ssh 进入弹性 beanstalk 实例并跟踪日志以查看它是否正在“实时”更新(当我使用我的服务器时)。执行以下操作:
eb ssh
tail -n 50 -f /var/log/nodejs/nodejs.log
以上日志路径取决于 EC2 的类型。在 Linux 2 上是:/var/log/web.stdout.log
一般来说,当您部署到 Elastic Beanstalk linux 环境时,您的应用程序将位于:
/var/app/当前
尝试在此路径下查找您的日志文件 - 它们与您在本地运行应用程序时的名称相同。
【讨论】:
如果您的 EB 环境有多个负载均衡的 EC2 实例怎么办? eb ssh 不会仅连接到单个 EC2 实例吗? 那么您应该通过 ssh 进入您的 EC2(而不是使用 eb ssh)。必须在多台机器上执行此操作会使事情变得更加困难,但我没有找到解决办法。 在 Linux 2 上仅供参考,AWS 使用/var/log/web.stdout.log
而不是 /var/log/nodejs/nodejs.log
^^^ @Tyler 说了什么。
使用 linux 2 我看不到 /var/log/nodejs 文件夹或 /var/log/web.stdout.log 文件以上是关于AWS Elastic Beanstalk NodeJS 和日志的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk CLI 安装错误