Tengo un servicio web implementado en un entorno de Elastic Beanstalk que ejecuta la pila Docker Multi-Container . Habilité Log Streaming a CloudWatch en el entorno, por lo que aparecen alrededor de cinco grupos de registro diferentes en Cloudwatch, y cuando hago clic en "Solicitar registros" de Beanstalk, carga una página web que me muestra todos los archivos de registro, uno tras otro. He notado que hay algunos registros en esta página web que no aparecen como grupos de registro en CloudWatch, y estos son los registros que realmente me interesan. Mi pregunta es ¿cómo hago para que aparezcan como grupos de registros de CloudWatch?
En particular, los cinco grupos de registros que Elastic Beanstalk creó automáticamente para mí son:
Y cuando miro en el archivo que se genera cuando "solicito registros", esos cinco están ahí. Pero estos otros archivos de registro también están representados:
Es el último el que realmente me interesa, el que termina en stdouterr.log. Ahí es donde mi aplicación en contenedores escribe todos sus mensajes de registro. Lo que me gustaría ver es un grupo de registros en CloudWatch que corresponda a ese archivo stdouterr.log. Por lo que puedo decir, la identificación de 12 dígitos que se encuentra en el nombre del archivo de registro es la identificación de la imagen acoplable que se instala en el host y está sujeta a cambios cada vez que reinicia el servidor. Entonces, supongo que probablemente necesitaré montar un volumen, o algo así, en la configuración de Dockerrun.aws.json. Y además, ¿supongo que luego necesitaría agregar manualmente un grupo de registro a CloudWatch? ¿Cómo puedo hacer que este archivo aparezca?
Parece que actualmente solo tiene los registros predeterminados que se envían a los registros de Cloudwatch. Puede agregar registros adicionales al agente de cloudwatch a través de sus .ebextensions
### BEGIN .ebextensions/logs.config option_settings: - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: StreamLogs value: true - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: DeleteOnTerminate value: false - namespace: aws:elasticbeanstalk:cloudwatch:logs option_name: RetentionInDays value: 7 files: "/etc/awslogs/config/stdout.conf": mode: "000755" owner: root group: root content: | [docker-stdout] log_group_name=/aws/elasticbeanstalk/environment_name/docker-stdout log_stream_name={instance_id} file=/var/log/eb-docker/containers/eb-current-app/*-stdouterr.log commands: "00_restart_awslogs": command: service awslogs restart ### END .ebextensions/logs.config