Visualización de los registros de EC2 las instancias de Amazon en su entorno de Elastic Beanstalk - AWS Elastic Beanstalk

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Visualización de los registros de EC2 las instancias de Amazon en su entorno de Elastic Beanstalk

En este tema se explican los tipos de registros de instancias que proporciona Elastic Beanstalk. También proporciona instrucciones detalladas para recuperarlos y administrarlos.

Las EC2 instancias de Amazon de su entorno de Elastic Beanstalk generan registros que puede ver para solucionar problemas con sus archivos de aplicación o configuración. Los registros los crean el servidor web, el servidor de aplicaciones y los scripts AWS CloudFormation de la plataforma Elastic Beanstalk y se almacenan localmente en instancias individuales. Puede recuperarlos fácilmente mediante la consola de administración del entorno o el EB. CLI También puede configurar su entorno para transmitir registros a Amazon CloudWatch Logs en tiempo real.

Los registros de finalización son las últimas 100 líneas de los archivos de registro que se utilizan con más frecuencia: los registros operativos de Elastic Beanstalk y los registros del servidor web o del servidor de aplicaciones. Cuando se solicita un registro de finalización utilizando la consola de administración del entorno o eb logs, una instancia del entorno concatena las entradas del registro más frecuentes en un archivo de texto y lo carga a Amazon S3.

Los registros de paquete son registros completos para un mayor conjunto de archivos de registro, como los registros yum y cron o diversos registros de AWS CloudFormation. Cuando solicita registros de paquetes, una instancia de su entorno empaqueta los archivos de registro completos en un ZIP archivo y los carga en Amazon S3.

nota

Las plataformas de Elastic Beanstalk Windows Server no admiten registros de paquetes.

Para cargar los registros rotados en Amazon S3, las instancias del entorno deben tener un perfil de instancia con permiso para escribir en el bucket de Elastic Beanstalk de Amazon S3. Estos permisos están incluidos en el perfil de instancia predeterminado que Elastic Beanstalk le pide que cree cuando lanza un entorno en la consola de Elastic Beanstalk por primera vez.

Para recuperar los registros de instancias:
  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su. Región de AWS

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Logs (Registros).

  4. Seleccione Request logs (Solicitar registro), y, a continuación, elija el tipo de registros que desea recuperar. Para obtener los registros de finalización, seleccione Last 100 Lines. Para obtener los registros de paquete, seleccione Full Logs (Registros completos).

  5. Cuando Elastic Beanstalk termine de recuperar sus registros, elija Descargar.

Elastic Beanstalk almacena los registros finales y agrupados en un bucket de Amazon S3 y genera un Amazon S3 prefirmado que puede usar para URL acceder a sus registros. Elastic Beanstalk elimina los archivos de Amazon S3 después de una duración de 15 minutos.

aviso

Cualquier persona que posea el Amazon S3 prefirmado URL puede acceder a los archivos antes de que se eliminen. Haga que URL estén disponibles solo para personas de confianza.

nota

La política de usuario debe tener el permiso s3:DeleteObject. Elastic Beanstalk utiliza sus permisos de usuario para eliminar los registros de Amazon S3.

Si desea conservar los registros, puede configurar el entorno para que los publique en Amazon S3 automáticamente después de rotarlos. Para habilitar la rotación de registros en Amazon S3, siga el procedimiento en Configuración de la visualización de registros de instancias. Las instancias del entorno intentarán cargar los logs que se han rotado una vez cada hora.

Si la aplicación genera registros en una ubicación que no forma parte de la configuración predeterminada de la plataforma del entorno, puede extender la configuración predeterminada con los archivos de configuración (.ebextensions). Puede agregar los archivos log de la aplicación a los logs de finalización, los logs de paquete o la rotación de logs.

Para la transmisión de registros en tiempo real y el almacenamiento a largo plazo, configure su entorno para transmitir los registros a Amazon CloudWatch Logs.

Ubicación del registro en las EC2 instancias de Amazon

Los registros se almacenan en ubicaciones estándar en las EC2 instancias de Amazon de su entorno. Elastic Beanstalk genera los siguientes registros.

Amazon Linux 2

  • /var/log/eb-engine.log

Amazon Linux AMI (AL1)

nota

El 18 de julio de 2022, Elastic Beanstalk estableció el estado de todas las sucursales de plataforma basadas en Amazon Linux () como retiradas. AMI AL1 Para obtener más información sobre la migración a una ramificación de la plataforma Amazon Linux 2023 actual y totalmente compatible, consulte Migración de su aplicación de Linux de Elastic Beanstalk a Amazon Linux 2023 o Amazon Linux 2.

  • /var/log/eb-activity.log

  • /var/log/eb-commandprocessor.log

Windows Server

  • C:\Program Files\Amazon\ElasticBeanstalk\logs\

  • C:\cfn\log\cfn-init.log

Estos registros contienen mensajes sobre las actividades de implementación, como mensajes relacionados con los archivos de configuración (.ebextensions).

Cada aplicación y cada servidor web guarda los logs en su propia carpeta:

  • Apache: /var/log/httpd/

  • IISC:\inetpub\wwwroot\

  • Node.js: /var/log/nodejs/

  • nginx: /var/log/nginx/

  • Passenger: /var/app/support/logs/

  • Puma: /var/log/puma/

  • Python: /opt/python/log/

  • Tomcat: /var/log/tomcat/

Ubicación de registro en Amazon S3

Cuando solicita los registros de finalización o de paquete del entorno o cuando las instancias cargan registros rotados, se guardan en el bucket de Elastic Beanstalk de Amazon S3. Elastic Beanstalk crea un elasticbeanstalk-region-account-id bucket con el nombre de cada región en la que se crean AWS los entornos. En este bucket, los logs se guardan en la ruta resources/environments/logs/logtype/environment-id/instance-id.

Por ejemplo, los registros de la instanciai-0a1fd158, en el AWS entorno de Elastic e-mpcwnwheky Beanstalk us-west-2 en la región de la cuenta, se 123456789012 almacenan en las siguientes ubicaciones:

  • Registros de finalización:

    s3://elasticbeanstalk-us-west-2-123456789012/resources/environments/logs/tail/e-mpcwnwheky/i-0a1fd158

  • Registros de paquete:

    s3://elasticbeanstalk-us-west-2-123456789012/resources/environments/logs/bundle/e-mpcwnwheky/i-0a1fd158

  • Registros rotados:

    s3://elasticbeanstalk-us-west-2-123456789012/resources/environments/logs/publish/e-mpcwnwheky/i-0a1fd158

nota

Encontrará el ID del entorno en la consola de administración del entorno.

Elastic Beanstalk elimina automáticamente los registros de finalización y de paquetes de Amazon S3 15 minutos después de su creación. Los registros rotados se mantienen hasta que se eliminan o se transfieren a S3 Glacier.

Configuración de rotación de registros en Linux

En plataformas Linux, Elastic Beanstalk utiliza logrotate para rotar registros periódicamente. Si se ha configurado de este modo, cuando un registro ha rotado localmente, la tarea de rotación de registros lo selecciona y lo carga en Amazon S3. Los registros que han rotado localmente no aparecen de forma predeterminada en los registros de finalización o de paquete.

Puede encontrar los archivos de configuración de Elastic Beanstalk para logrotate en /etc/logrotate.elasticbeanstalk.hourly/. Esta configuración de rotación es específica de la plataforma y puede cambiar en futuras versiones de la plataforma. Para obtener más información sobre los ajustes disponibles y configuraciones de ejemplo, ejecute man logrotate.

Los archivos de configuración se invocan mediante trabajos cron en /etc/cron.hourly/. Para obtener más información acerca de cron, ejecute man cron.

Ampliación de la configuración predeterminada de la tarea de registro

Elastic Beanstalk utiliza los archivos de /opt/elasticbeanstalk/tasks las subcarpetas de (LinuxC:\Program Files\Amazon\ElasticBeanstalk\config) o (Windows Server) de la instancia de EC2 Amazon para configurar las tareas de los registros finales, los registros de paquetes y la rotación de registros.

En Amazon Linux:

  • Registros de finalización:

    /opt/elasticbeanstalk/tasks/taillogs.d/

  • Registros de paquete:

    /opt/elasticbeanstalk/tasks/bundlelogs.d/

  • Registros rotados:

    /opt/elasticbeanstalk/tasks/publishlogs.d/

En Windows Server:

  • Registros de finalización:

    c:\Program Files\Amazon\ElasticBeanstalk\config\taillogs.d\

  • Registros rotados:

    c:\Program Files\Amazon\ElasticBeanstalk\config\publogs.d\

Por ejemplo, el archivo eb-activity.conf en Linux agrega dos archivos de registro a la tarea de registros de finalización.

/opt/elasticbeanstalk/tasks/taillogs.d/eb-activity.conf

/var/log/eb-commandprocessor.log /var/log/eb-activity.log

Puede utilizar archivos de configuración del entorno (.ebextensions) para agregar sus propios archivos .conf a estas carpetas. Un archivo .conf muestra los archivos de registro específicos de su aplicación que Elastic Beanstalk agrega a las tareas de archivo de registro.

Utilice la sección files para agregar archivos de configuración a las tareas que desea modificar. Por ejemplo, el siguiente texto de configuración inserta un archivo de configuración de log en cada instancia del entorno. Este archivo de configuración de log, cloud-init.conf, añade /var/log/cloud-init.log a los registros de cola.

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

Agregue este texto a un archivo que tenga la extensión de nombre de archivo .config en el paquete de código fuente dentro de una carpeta llamada .ebextensions.

~/workspace/my-app |-- .ebextensions | `-- tail-logs.config |-- index.php `-- styles.css

En las plataformas Linux también puede utilizar caracteres comodín en las configuraciones de tareas de registro. Este archivo de configuración agrega todos los archivos con la extensión de nombre de archivo .log de la carpeta log de la raíz de la aplicación a los logs de paquete.

files: "/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" : mode: "000755" owner: root group: root content: | /var/app/current/log/*.log

Las configuraciones de tarea de registro no admiten comodines en las plataformas de Windows.

nota

Para familiarizarse con los procedimientos de personalización de registros, puede implementar una aplicación de muestra mediante el EB. CLI Para ello, el EB CLI crea un directorio de aplicaciones local que contiene un .ebextentions subdirectorio con un ejemplo de configuración. También puede utilizar los archivos de registro de la aplicación de ejemplo para explorar la función de recuperación de registros descrita en este tema. Para obtener más información sobre cómo crear una aplicación de muestra con el EBCLI, consulte CLIConceptos básicos del EB.

Para obtener más información sobre cómo usar archivos de configuración, consulte Personalización avanzada de entornos con archivos de configuración (.ebextensions).

De forma parecida a la ampliación de registros de finalización y los registros de paquete, puede ampliar lo rotación de registros con un archivo de configuración. Siempre que Elastic Beanstalk rota sus propios registros y los carga a Amazon S3, también rota y carga los registros adicionales. La extensión de rotación de registros se comporta de forma distinta en función del sistema operativo de la plataforma. En las siguientes secciones se describen los dos casos.

Ampliación de la rotación de registros en Linux

Como se explica en Configuración de rotación de registros en Linux, Elastic Beanstalk utiliza logrotate para rotar registros en plataformas Linux. Al configurar los archivos de registro de su aplicación para la rotación de registros, la aplicación no necesita crear copias de los archivos de registro. Elastic Beanstalk configura logrotate para crear una copia de los archivos de registro de la aplicación para cada rotación. Por lo tanto, la aplicación debe mantener archivos de registro desbloqueados cuando no escriba en ellos de forma activa.

Ampliación de la rotación de registros en Windows Server

En Windows Server, al configurar los archivos de registro de su aplicación para la rotación de registros, la aplicación debe rotarlos periódicamente. Elastic Beanstalk busca los archivos con los nombres que comiencen por el patrón que ha configurado y los elige para cargarlos a Amazon S3. Además, se ignoran los puntos en el nombre de archivo y Elastic Beanstalk considera que el nombre hasta el punto será el nombre de archivo de registro base.

Elastic Beanstalk carga todas las versiones de un archivo de registro base excepto la más reciente, puesto que considera que es le archivo de registro de aplicación activo, que podría estar bloqueado. Por lo tanto, la aplicación puede mantener el archivo de registro bloqueado entre las rotaciones.

Ejemplo: su aplicación escribe en un archivo de registro denominado my_log.log y especifica este nombre en su archivo .conf. La aplicación rota de forma periódica el archivo. Durante el ciclo de rotación de Elastic Beanstalk, encuentra los siguientes archivos en la carpeta del archivo de registro: my_log.log, my_log.0800.log, my_log.0830.log. Elastic Beanstalk los considera a todos como versiones del nombre base my_log. El archivo my_log.log tiene la hora de modificación más reciente, por lo que Elastic Beanstalk carga solo los otros dos archivos, my_log.0800.log y my_log.0830.log.

Transmisión de archivos de registro a Amazon CloudWatch Logs

Puede configurar su entorno para transmitir los registros a Amazon CloudWatch Logs en la consola de Elastic Beanstalk o mediante las opciones de configuración. Con CloudWatch Logs, cada instancia de su entorno transmite los registros a grupos de registros que puede configurar para que se conserven durante semanas o años, incluso después de cerrar el entorno.

El conjunto de registros transmitidos varía en función del entorno, pero siempre incluye los registros eb-engine.log y de acceso del servidor proxy de nginx o Apache que se ejecuta delante de la aplicación.

Puede configurar la transmisión de registros en la consola de Elastic Beanstalk durante la creación de entorno o para un entorno existente. Puede configurar las siguientes opciones desde la consola: habilitar o deshabilitar la transmisión de CloudWatch registros a los registros, establecer el número de días de retención y seleccionar una de las opciones de ciclo de vida. En el siguiente ejemplo, los registros se guardan durante un máximo de siete días, incluso cuando el entorno ha terminado.

Imagen de pantalla de la configuración de CloudWatch Logs en la consola de Elastic Beanstalk.

El siguiente archivo de configuración habilita la transmisión de registros con 180 días de retención, incluso si el entorno ha terminado.

ejemplo .ebextensions/log-streaming.config
option_settings: aws:elasticbeanstalk:cloudwatch:logs: StreamLogs: true DeleteOnTerminate: false RetentionInDays: 180