logging - que - ¿Puedo agregar archivos de registro personalizados a los registros capturados por el comando ''eb logs'' de beanstalk elástico?
que es amazon web services (2)
Cuando solicito los archivos de registro para un entorno de beanstalk elástico a través de la interfaz web o los "registros de eb", obtengo el contenido de los archivos de registro /var/log/eb-version-deployment.log, / opt / python / log / httpd .out, /var/log/cfn-hup.log, y varios otros.
¿Hay alguna forma de agregar un registro adicional, como test_output.log, a los registros recopilados por la interfaz web y los "registros eb"?
¡Sí! Hay una manera. NUNCA debes tener que ingresar en tus instancias de Elastic Beanstalk.
Nos enteramos examinando el archivo eb-activity.log
.
Dependiendo de su tipo de entorno (yo uso Python de Beanstalk), las ubicaciones en las que puede colocar los archivos de registro varían. Es necesario comprobar eb-activity.log
.
Por ejemplo, con el tipo de entorno Python, en eb-activity.log
debería ver:
[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
Lo anterior muestra que Beanstalk configura el registro para cualquiera de los siguientes archivos:
- / opt / python / log / *
- /opt/python/log/app.out.*
- /opt/python/log/supervisord.log.*
- / var / log / httpd / *
Es decir, si coloca un archivo de registro en /opt/python/log/
, Beanstalk lo encontrará y lo presentará cuando "Solicite los registros". Puse mis archivos de registro en /opt/python/log/
porque WSGI group (que ejecuta mi aplicación) puede acceder a ellos. Esto sería ligeramente diferente si estuvieras usando el tipo de entorno Ruby por cierto. Todavía puede consultar eb-activity.log
para ver qué directorios están configurados para el registro.
Elastic Beanstalk busca en esta carpeta archivos de configuración con respecto a qué registros seguir:
/opt/elasticbeanstalk/tasks/taillogs.d/
En mi caja hay un puñado de archivos allí.
[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
Y cada uno tiene una línea, como esta:
/var/log/nodejs/nodejs.log
o
/var/log/nginx/*
Use .ebextensions
para agregar un archivo de configuración para .ebextensions
sus propios registros:
files:
"/opt/elasticbeanstalk/tasks/taillogs.d/my-app-logs.conf":
mode: "000755"
owner: root
group: root
content: |
/var/log/my-app.log
Más información aquí:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html#health-logs-extend