Direccionamiento de registros personalizado - Amazon Elastic Container Service

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.

Direccionamiento de registros personalizado

FireLens para Amazon ECS le permite utilizar parámetros de definición de tareas para enviar registros a un servicio de AWS o al destino de red de socios (APN) de AWS para el almacenamiento y el análisis de registros. FireLens funciona con Fluentd y Fluent Bit. Proporcionamos la imagen de AWS para Fluent Bit o puede utilizar su propia imagen de Fluentd o Fluent Bit.

La creación de definiciones de tareas de Amazon ECS con una configuración de FireLens se admite mediante los SDK de AWS, la AWS CLI y la Consola de administración de AWS.

Considerations

Al utilizar FireLens para , se debe tener en cuenta lo siguiente:Amazon ECS:

  • FireLens para Amazon ECS es compatible con las tareas alojadas en AWS Fargate y Amazon EC2.

  • FireLens para Amazon ECS es compatible con las plantillas de AWS CloudFormation Para obtener más información, consulte FirelensConfiguration de AWS::ECS::TaskDefinition en la Guía del usuario de AWS CloudFormation

  • 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 START o HEALTHY

Permisos de IAM necesarios

Para utilizar esta función, 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 envía los registros a Kinesis Data Firehose, la tarea necesitaría permiso para llamar a la API de 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.

La siguiente política de IAM de ejemplo añade los permisos necesarios para enviar registros a Kinesis Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch" ], "Resource": [ "*" ] } ] }

Su tarea también puede requerir 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 Amazon ECS ejecución de tareas IAM función.

  • Si la tarea está alojada en Fargate y está 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 especifica 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 el archivo de configuración y el permiso s3:GetBucketLocation en el bucket de Amazon S3 en el que se encuentra el archivo. Para obtener más información, consulte Especificación de permisos en una política en la Guía del usuario de la consola de Amazon Simple Storage Service.

    La siguiente política de IAM de ejemplo añade los permisos necesarios para recuperar un archivo de Amazon S3. Especifique el nombre del bucket de Amazon S3 y el nombre del archivo de configuración.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::examplebucket/folder_name/config_file_name" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::examplebucket" ] } ] }

Uso de bibliotecas de registro Fluent

Cuando se especifica el controlador de registros awsfirelens en una definición de tarea, el agente ECS inyecta las siguientes variables de entorno en el contenedor:

FLUENT_HOST

La dirección IP asignada al contenedor FireLens.

FLUENT_PORT

El puerto en el que se está escuchando el protocolo Fluent Forward.

Las variables de entorno FLUENT_HOST y FLUENT_PORT le permiten iniciar sesión directamente en el router de registros desde el código en lugar de pasar por stdout. Para obtener más información, consulte fluent-logger-golang en GitHub.