Envío de registros de Amazon ECS a un servicio de AWS o AWS Partner - Amazon Elastic Container Service

Envío de registros de Amazon ECS a un servicio de AWS o AWS Partner

Puede utilizar FireLens para Amazon ECS para utilizar parámetros de definición de tareas para dirigir registros a un servicio de AWS o a un destino de AWS Partner Network (APN) para el almacenamiento y el análisis de registros. La AWS Partner Network es una comunidad global de socios que aprovecha los programas, el conocimiento técnico y los recursos para crear, comercializar y vender ofertas para los clientes. Para obtener más información, consulte AWS Partner. FireLens trabaja con Fluentd y Fluent Bit. Proporcionamos AWS para la imagen de Fluent Bit o puede utilizar su propia imagen de Fluentd o Fluent Bit.

De forma predeterminada, Amazon ECS configura la dependencia del contenedor para que el contenedor Firelens se inicie antes que cualquier contenedor que lo utilice. El contenedor Firelens también se detiene después de que se detengan todos los contenedores que lo utilizan.

Al utilizar FireLens para Amazon ECS, tenga en cuenta lo siguiente:

  • Se recomienda agregar my_service_ al nombre del contenedor de registros para poder distinguir fácilmente los nombres de los contenedores en la consola.

  • Amazon ECS agrega una dependencia de orden de contenedores inicial entre los contenedores de la aplicación y el contenedor de FireLens de manera predeterminada. Al especificar un orden de contenedores entre los contenedores de la aplicación y el contenedor de FireLens, se anula el orden de contenedores inicial predeterminado.

  • FireLens para Amazon ECS es compatible con tareas que están alojadas en AWS Fargate en Linux y Amazon EC2 en Linux. Los contenedores de Windows no son compatibles con FireLens.

    Para obtener información sobre cómo configurar el registro centralizado para contenedores de Windows, consulte Centralized logging for Windows containers on Amazon ECS using Fluent Bit (Registro centralizado para contenedores de Windows en Amazon ECS con Fluent Bit).

  • Puede utilizar plantillas de AWS CloudFormation para configurar FireLens para Amazon ECS. Para obtener más información, consulte FirelensConfiguration de AWS::ECS::TaskDefinition en la Guía del usuario de AWS CloudFormation.

  • FireLens escucha en el puerto 24224, para asegurarse de que el direccionador de registros FireLens no sea accesible fuera de la tarea, no debe permitir la entrada de tráfico en el puerto 24224 en el grupo de seguridad que utiliza la tarea. Para tareas que utilizan el modo de red awsvpc, es el grupo de seguridad asociado a la tarea. Para tareas que utilizan el modo de red host, es el grupo de seguridad asociado a la instancia de Amazon EC2 que aloja la tarea. Para tareas que utilizan el modo de red bridge, no cree asignaciones de puertos que utilicen el puerto 24224.

  • Para las tareas que utilizan el modo de red bridge, el contenedor con la configuración de FireLens debe iniciarse antes de que se inicie cualquier contenedor de aplicación que se base en él. Para controlar el orden de inicio de los contenedores, utilice las condiciones de dependencia en la definición de la tarea. Para obtener más información, consulte Dependencia de contenedor.

    nota

    Si utiliza parámetros de condición de dependencia en definiciones de contenedor con una configuración de FireLens, asegúrese de que cada contenedor tenga un requisito de condición HEALTHY o START.

  • Por defecto, FireLens agrega el nombre de definición de clúster y tarea y el nombre de recurso de Amazon (ARN) del clúster como claves de metadatos a los registros de contenedor de stdout/stderr. A continuación se muestra un ejemplo del formato de los metadatos.

    "ecs_cluster": "cluster-name", "ecs_task_arn": "arn:aws:ecs:region:111122223333:task/cluster-name/f2ad7dba413f45ddb4EXAMPLE", "ecs_task_definition": "task-def-name:revision",

    Si no quiere que los metadatos estén en los registros, establezca enable-ecs-log-metadata en false en la firelensConfiguration de la definición de tareas.

    "firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"false", "config-file-type":"file", "config-file-value":"/extra.conf" }

Para utilizar esta característica, debe crear un rol de IAM para las tareas, que proporcione los permisos necesarios para utilizar los servicios de AWS que las tareas requieran. Por ejemplo, si un contenedor dirige los registros a Firehose, la tarea necesita permiso para llamar a la API firehose:PutRecordBatch. Para obtener más información, consulte Adición y eliminación de permisos de identidad de IAM en la Guía del usuario de IAM.

Es posible que la tarea también requiera el rol de ejecución de tareas de Amazon ECS en las condiciones que se describen a continuación. Para obtener más información, consulte Rol de IAM de ejecución de tareas de Amazon ECS.

  • Si la tarea está alojada en Fargate y se están extrayendo imágenes de contenedor de Amazon ECR o haciendo referencia a información confidencial de AWS Secrets Manager en la configuración de registro, debe incluir el rol de IAM de ejecución de tareas.

  • Si utiliza un archivo de configuración personalizado alojado en Amazon S3, el rol de IAM de ejecución de tareas debe incluir el permiso s3:GetObject.

Para obtener información sobre cómo usar varios archivos de configuración con Amazon ECS, incluidos los archivos que usted aloja o los archivos en Amazon S3, consulte Init process for Fluent Bit on ECS, multi-config support.