Могу ли я добавить пользовательские файлы журналов в журналы, захваченные командой "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
для которого настроены каталоги для ведения журнала.