web-dev-qa-db-ja.com

Elastic Beanstalkの「eblogs」コマンドでキャプチャされたログにカスタムログファイルを追加できますか?

Webインターフェイスまたは「eblogs」を介してElasticBeanstalk環境のログファイルをリクエストすると、ログファイル/var/log/eb-version-deployment.log、/ opt/python/log/httpdの内容が取得されます。 .out、/ var/log/cfn-hup.log、およびその他いくつか。

Webインターフェイスで収集されたログや「eblogs」にtest_output.logなどのログを追加する方法はありますか?

19
user12345678

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

そして、それぞれに次のように1行あります。

/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

22
Samuel Neff

はい!やり方がある。 ElasticBeanstalkインスタンスにSSHで接続する必要はありません。

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/python/log/*
  • /opt/python/log/app.out.*
  • /opt/python/log/supervisord.log.*
  • / var/log/httpd/*

つまり、ログファイルを/opt/python/log/に置くと、Beanstalkはそれを見つけて、「ログの要求」時に表示します。ログファイルは、(アプリケーションを実行する)WSGIグループからアクセスできるため、/opt/python/log/に配置します。ちなみに、Ruby環境タイプを使用している場合は、これは少し異なります。ログ用に設定されているディレクトリのeb-activity.logを引き続き確認できます。

4
Mike