Могу ли я добавить пользовательские файлы журналов в журналы, захваченные командой "bebstalk" eb logs?

Когда я запрашиваю файлы журналов для среды эластичного beanstalk либо через веб-интерфейс, либо "журналы eb", я получаю содержимое файлов журнала /var/log/eb-version-deployment.log,/opt/python/log/httpd.out,/var/log/cfn-hup.log и несколько других.

Есть ли способ добавить дополнительный журнал, такой как test_output.log, к журналам, собранным через веб-интерфейс и "журналы eb"?

Ответ 1

Эластичный Beanstalk выглядит в этой папке для файлов конфигурации, в отношении которых используются журналы:

/opt/elasticbeanstalk/tasks/taillogs.d/

На моем ящике есть несколько файлов там

[[email protected] 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 чтобы добавить файл конфигурации, чтобы .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

Ответ 2

Да! Есть выход. Вам НИКОГДА не нужно использовать ssh в ваших экземплярах Elastic Beanstalk.

Мы выяснили, изучая файл eb-activity.log.

В зависимости от вашего типа среды (я использую Python из Beanstalk), места, в которые вы можете поместить файлы журнала, различаются. Вам нужно проверить 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/app.out.*
  • /opt/python/log/supervisord.log.*
  • /Вар/Журнал /HTTPD/*

То есть, если вы поместите файл журнала в /opt/python/log/, Beanstalk найдет его и представит его, когда вы "запросите журналы". Я помещал свои файлы журналов в /opt/python/log/ потому что он доступен WSGI-группе (которая запускает мое приложение). Это было бы немного иначе, если бы вы использовали тип среды Ruby. Вы по-прежнему можете проверить eb-activity.log для которого настроены каталоги для ведения журнала.