Envío de registros de Amazon ECS a CloudWatch - Amazon Elastic Container Service

Envío de registros de Amazon ECS a CloudWatch

Puede configurar los contenedores de las tareas para que envíen información de registro a CloudWatch Logs. Si utiliza el tipo de lanzamiento de Fargate para las tareas, puede ver los registros de los contenedores. Si utiliza el tipo de lanzamiento de EC2, esto le permite ver distintos registros desde los contenedores en una ubicación cómoda y evita que los registros de contenedor ocupen espacio en disco en sus instancias de contenedor.

nota

El tipo de información que registran los contenedores de la tarea depende en gran medida del comando ENTRYPOINT. De forma predeterminada, los registros que se capturan muestran la salida del comando que aparecería normalmente en un terminal interactivo si el contenedor se ejecutara localmente, que son los flujos de E/S STDOUT y STDERR. El controlador del registros awslogs simplemente transfiere estos registros de Docker a CloudWatch Logs. Para obtener más información acerca de cómo se procesan los registros de Docker, incluidas formas alternativas de capturar diferentes datos de archivo o flujos, consulte la página sobre cómo Ver los registros de un contenedor o servicio en la documentación de Docker.

Para enviar registros del sistema desde las instancias de contenedor de Amazon ECS a CloudWatch Logs, consulte Supervisar archivos de registro y Cuotas de registros de CloudWatch en la Guía del usuario de registros de Amazon CloudWatch.

Tipo de lanzamiento de Fargate

Si utiliza el tipo de lanzamiento de Fargate para las tareas, debe agregar los parámetros logConfiguration necesarios a la definición de tareas para activar el controlador de registros awslogs. Para obtener más información, consulte Definición de tareas de Amazon ECS de ejemplo: enrutar registros a CloudWatch.

Para el contenedor de Windows en Fargate, siga una de las siguientes opciones cuando alguno de los parámetros de definición de tareas tenga caracteres especiales como, por ejemplo, & \ < > ^ |:

  • Agregue un carácter de escape (\) con comillas dobles alrededor de toda la cadena de parámetros.

    Ejemplo

    "awslogs-multiline-pattern": "\"^[|DEBUG|INFO|WARNING|ERROR\"",
  • Agregue un carácter de escape (^) alrededor de cada carácter especial.

    Ejemplo

    "awslogs-multiline-pattern": "^^[^|DEBUG^|INFO^|WARNING^|ERROR",

Tipo de lanzamiento de EC2

Si utiliza el tipo de lanzamiento de EC2 para las tareas y desea activar el controlador de registros awslogs, las instancias de contenedor de Amazon ECS requieren al menos la versión 1.9.0 del agente de contenedor. Para obtener información acerca de cómo comprobar la versión del agente y actualizar a la versión más reciente, consulte Actualización del agente de contenedor de Amazon ECS.

nota

Debe utilizar una AMI optimizada para Amazon ECS o una AMI personalizada con al menos la versión 1.9.0-1 del paquete ecs-init. Cuando utilice una AMI personalizada, debe especificar que el controlador del registro awslogs esté disponible en la instancia de Amazon EC2 al iniciar el agente mediante la siguiente variable de entorno en la instrucción docker run o el archivo de variables de entorno.

ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]

Las instancias de contenedor de Amazon ECS también requieren el permiso logs:CreateLogStream y logs:PutLogEvents en el rol de IAM con el que se pueden lanzar las instancias de contenedor. Si creó el rol de instancia de contenedor de Amazon ECS antes de que se habilitara la compatibilidad con el controlador de registros awslogs en Amazon ECS, es posible que tenga que agregar este permiso. El ecsTaskExecutionRole se utiliza cuando se asigna a la tarea y probablemente contenga los permisos correctos. Para obtener información acerca del rol de ejecución de tareas, consulte Rol de IAM de ejecución de tareas de Amazon ECS. Si las instancias de contenedor utilizan la política de IAM administrada para instancias de contenedor, probablemente tengan los permisos correctos. Para obtener información acerca de la política de IAM administrada para las instancias de contenedor, consulte Rol de IAM de instancia de contenedor de Amazon ECS.