我可以将自定义日志文件添加到弹性beanstalk的'eb logs'命令捕获的日志中吗?

时间:2014-09-10 00:47:13

标签: logging amazon-web-services elastic-beanstalk amazon-elastic-beanstalk

当我通过web界面或“eb logs”请求弹性beanstalk环境的日志文件时,我得到日志文件/var/log/eb-version-deployment.log,/ opt / python /的内容log / httpd.out,/ var / log / cfn-hup.log和其他几个。

有没有办法将额外的日志(如test_output.log)添加到Web界面和“eb日志”收集的日志中?

2 个答案:

答案 0 :(得分:22)

Elastic Beanstalk在此文件夹中查找有关哪些日志尾部的配置文件:

/opt/elasticbeanstalk/tasks/taillogs.d/

我的盒子上有一些文件

[ec2-user@ip taillogs.d]$ ls -al
total 32
drwxr-xr-x 2 root root 4096 Sep 27 05:49 .
drwxr-xr-x 6 root root 4096 Sep 27 05:49 ..
-rw-r--r-- 1 root root   58 Sep 27 05:49 eb-activity.conf
-rw-r--r-- 1 root root   35 Sep 27 05:49 eb-version-deployment.conf
-rw-r--r-- 1 root root   16 Oct 15 03:44 httpd.conf
-rw-r--r-- 1 root root   16 Oct 15 03:44 nginx.conf
-rw-r--r-- 1 root root   26 Oct 15 03:44 nodejs.conf
-rw-r--r-- 1 root root   29 Oct 15 03:44 npm.conf

每个人都有一行,如下:

/var/log/nodejs/nodejs.log

/var/log/nginx/*

使用.ebextensions添加配置文件来拖尾自己的日志:

files:
  "/opt/elasticbeanstalk/tasks/taillogs.d/my-app-logs.conf":
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/log/my-app.log

更多信息:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html#health-logs-extend

答案 1 :(得分:4)

是的!有一种方法。你永远不应该ssh到你的Elastic Beanstalk实例。

我们通过检查eb-activity.log文件找到了。

根据您的环境类型(我使用Beanstalk中的Python),您可以放置​​日志文件的位置会有所不同。您需要检查eb-activity.log

例如,使用Python环境类型,在eb-activity.log中,您应该看到:

[2015-09-15T20:29:36.102Z] INFO  [2403]  - [Initialization/PreInitStage0/PreInitHook/01setuplogs.sh] : Completed activity. Result:
  + mkdir -p /opt/elasticbeanstalk/tasks/taillogs.d /opt/elasticbeanstalk/tasks/sytemtaillogs.d /opt/elasticbeanstalk/tasks/bundlelogs.d /opt/elasticbeanstalk/tasks/publishlogs.d
  + /opt/elasticbeanstalk/bin/log-conf -n python '-l/opt/python/log/*' -t taillogs,systemtaillogs,bundlelogs
  + /opt/elasticbeanstalk/bin/log-conf -n python-app '-l/opt/python/log/app.out.*' -t publishlogs
  + /opt/elasticbeanstalk/bin/log-conf -n supervisord '-l/opt/python/log/supervisord.log.*' -t publishlogs
  + /opt/elasticbeanstalk/bin/log-conf -nhttpd '-l/var/log/httpd/*' -f /opt/elasticbeanstalk/containerfiles/beanstalkhttpd

以上显示Beanstalk为以下任何文件配置日志记录:

  • 的/ opt /蟒/数/ *
  • /opt/python/log/app.out。*
  • /opt/python/log/supervisord.log。*
  • 的/ var /日志/ httpd的/ *

也就是说,如果您将日志文件放在/opt/python/log/中,Beanstalk会在您“请求日志”时找到它并显示它。我将我的日志文件放在/opt/python/log/中,因为它可以由WSGI组(运行我的应用程序)访问。如果你顺便使用Ruby环境类型,这会略有不同。您仍然可以检查eb-activity.log哪些目录设置为记录。