¿Por qué mis registros de contenedores de Amazon ECS no se entregan a CloudWatch Logs?

4 minutos de lectura
0

No encuentro los registros de contenedores de mi tarea de Amazon Elastic Container Service (Amazon ECS) en Amazon CloudWatch Logs.

Breve descripción

Es posible que sus registros de contenedores de Amazon ECS no se entreguen a CloudWatch Logs por uno de los siguientes motivos:

  • El controlador de registro awslogs no está configurado correctamente en las definiciones de tareas de Amazon ECS.
  • El rol de AWS Identity and Access Management (IAM) carece de los permisos necesarios.
  • La red no está configurada correctamente.
  • El nivel de registro del contenedor no está configurado correctamente.

Resolución

El controlador de registro awslogs no está configurado correctamente

Para enviar la información de registro del contenedor a CloudWatch Logs, debe configurar correctamente los contenedores en sus tareas. Cuando defina los parámetros de su contenedor, asegúrese de configurar correctamente el parámetro logConfiguration. Si la definición de tareas de Amazon ECS incluye varios contenedores, debe configurar este parámetro para cada contenedor. Además, debe agregar el controlador de registro awslogs al parámetro logConfiguration en la definición de la tarea.

Para los tipos de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2), realice las siguientes tareas adicionales:

  • Actualice su instancia de contenedor de Amazon ECS a la versión 1.9.0 o posterior del agente de contenedor. Para obtener más información, consulte Actualización del agente de contenedor de Amazon ECS.
  • Para las instancias de contenedor que no utilizan la AMI optimizada para Amazon ECS, especifique el controlador de registro awslogs en la instancia de contenedor. Cuando utilice la siguiente variable de entorno para iniciar el agente, especifique el controlador de registro awslogs:
    ECS_AVAILABLE_LOGGING_DRIVERS='["json-file","awslogs"]'

Para obtener más información, consulte Instalación del agente de contenedor de Amazon ECS.

El rol de IAM no tiene los permisos necesarios

Realice las siguientes tareas:

  • Para su rol de IAM en su instancia de contenedor de Amazon ECS, añada los permisos logs:CreateLogStream y logs:PutLogEvents.
  • Para el tipo de lanzamiento de AWS Fargate, utilice el rol de IAM de ejecución de tareas de Amazon ECS con los permisos logs:CreateLogStream y logs:PutLogEvents. Para obtener más información, consulte Rol de IAM de ejecución de tareas de Amazon ECS.
  • Para ver el tipo de lanzamiento de Amazon EC2, compruebe lo siguiente:
    Para las tareas que no utilizan el rol de IAM de ejecución de tareas de Amazon ECS, conceda los permisos logs:CreateLogStream y logs:PutLogEvents al rol de IAM de la instancia de contenedor.
    Para las tareas que utilizan el rol de IAM de ejecución de tareas de Amazon ECS, actualice el valor del parámetro del agente de contenedor ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE a true.
    Nota: Cuando utiliza la AMI optimizada para Amazon ECS con la versión 1.16.0 -1 o posterior del paquete ecs-init, el valor predeterminado de este parámetro es true. En Windows, el valor predeterminado de este parámetro es false. Para obtener más información, consulte Configuración del agente de contenedor de Amazon ECS.

La red no está configurada correctamente

Las tareas que utilizan el controlador de registro awslogs con una Amazon Virtual Private Cloud (Amazon VPC) sin una puerta de enlace de Internet deben crear un punto de enlace de CloudWatch Logs. Para obtener más información, consulte Using CloudWatch Logs with interface VPC endpoints.

El nivel de registro del contenedor no está configurado correctamente

El controlador de registro awslogs transfiere los registros de contenedores que son los flujos de E/S STDOUT y STDERR de Docker a CloudWatch Logs. Actualice su aplicación para enviar los registros a los flujos de E/S STDOUT y STDERR. Configure el nivel de registro correcto para su aplicación durante la creación del contenedor. Según la aplicación, puede establecer el nivel de registro mediante una variable de entorno o un archivo de configuración.

Información relacionada

Herramientas de supervisión para Amazon ECS

How do I troubleshoot missing container logs for Amazon ECS or Amazon Elastic Kubernetes Service (Amazon EKS)?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 6 meses