Crear un analizador de registros personalizado para Amazon ECS mediante un enrutador de registros Firelens - Recomendaciones de AWS

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.

Crear un analizador de registros personalizado para Amazon ECS mediante un enrutador de registros Firelens

Creado por Varun Sharma (AWS)

Resumen

Firelens es un router de registros para Amazon Elastic Container Service (Amazon ECS) y AWS Fargate. Puede usar Firelens para enrutar los registros de contenedores desde Amazon ECS a Amazon CloudWatch y otros destinos (por ejemplo, Splunk o Sumo Logic). Firelens funciona con Fluentd o Fluent Bit como agente de registro, lo que significa que puede utilizar los parámetros de definición de tareas de Amazon ECS para enrutar los registros.

Al elegir analizar los registros en el nivel de origen, puede analizar los datos de registro y realizar consultas para responder de manera más eficiente y eficaz a los problemas operativos. Como las distintas aplicaciones tienen patrones de registro diferentes, es necesario utilizar un analizador personalizado que estructure los registros y facilite la búsqueda en el destino final.

Este patrón utiliza un router de registro Firelens con un analizador personalizado para enviar los registros CloudWatch desde una aplicación Spring Boot de muestra que se ejecuta en Amazon ECS. A continuación, puede utilizar Amazon CloudWatch Logs Insights para filtrar los registros en función de los campos personalizados generados por el analizador personalizado.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta de Amazon Web Services (AWS) activa.

  • Interfaz de la línea de comandos de AWS (AWS CLI), instalada y configurada en su equipo local.

  • Docker, instalado y configurado en su equipo local.

  • Una aplicación en contenedores existente basada en Spring Boot en Amazon Elastic Container Registry (Amazon ECR). 

Arquitectura

Uso de un router de registros Firelens para enviar registros CloudWatch desde una aplicación que se ejecuta en Amazon ECS.

Pila de tecnología

  • CloudWatch

  • Amazon ECR

  • Amazon ECS

  • Fargate

  • Docker

  • Fluent Bit

Herramientas

  • Amazon ECR: Amazon Elastic Container Registry (Amazon ECR) es un servicio de registro de imágenes de contenedor administrado por AWS que es seguro, escalable y fiable.

  • Amazon ECS: Amazon Elastic Container Service (Amazon ECS) es un servicio de administración de contenedores altamente escalable y rápido que facilita la tarea de ejecutar, detener y administrar contenedores en un clúster.

  • AWS Identity and Access Management (IAM): IAM es un servicio web que le ayuda a controlar el acceso seguro a los servicios de AWS.

  • AWS CLI: la interfaz de la línea de comandos de AWS (AWS CLI) es una herramienta de código abierto que permite interactuar con los servicios de AWS mediante comandos en el intérprete de comandos de línea de comandos.

  • Docker – Docker es una plataforma abierta para desarrollar, enviar y ejecutar aplicaciones.

Código

Los siguientes archivos se adjuntan a este patrón:

  • customFluentBit.zip – Contiene los archivos para añadir el análisis y las configuraciones personalizados.

  • firelens_policy.json – Contiene el documento de política para crear una política de IAM.

  • Task.json – Contiene una muestra de definición de tarea para Amazon ECS.

Epics

TareaDescripciónHabilidades requeridas

Cree un repositorio de Amazon ECR.

Inicie sesión en la consola de administración de AWS, abra la consola de Amazon ECR y cree un repositorio llamado fluentbit_custom.

Para obtener más información al respecto, consulte Creación de un repositorio en la documentación de Amazon ECR.

Administrador de sistemas, desarrollador

Descomprima el paquete .zip. customFluentBit

 

  1. Descargue el paquete customFluentBit.zip (adjunto) en su máquina local. 

  2. Descomprima en el directorio customFluentBit ejecutando el siguiente comando: unzip -d customFluentBit.zip

  3. El directorio contiene los siguientes archivos que son necesarios para añadir el análisis y las configuraciones personalizados:

    • parsers/springboot_parser.conf – Contiene la directiva del analizador y define el patrón de expresión regular (regex) del analizador personalizado. Puede añadir el patrón de expresiones regulares para su analizador específico.

    •  conf/parse_springboot.conf – Contiene el filtro y la directiva de servicio.

    • El Dockerfile

Cree la imagen de Docker personalizada.

  1. Cambie el directorio a customFluentBit.

  2. Abra la consola Amazon ECR, seleccione el repositorio fluentbit_custom y, a continuación, seleccione Ver comandos push

  3. Cargar su proyecto 

  4. Una vez que finalice el proceso de carga, copie la URL de la compilación. Esta URL es obligatoria al crear un contenedor en Amazon ECS

Para más informaciónf sobre esto, consulte Insertar una imagen de Docker en la documentación de Amazon ECR. 

Administrador de sistemas, desarrollador
TareaDescripciónHabilidades requeridas

Cree un clúster de Amazon ECS.

Cree un clúster de Amazon ECS siguiendo las instrucciones de la sección sobre Plantillas exclusivas para redes de la sección Creación de un clúster de la documentación de Amazon ECS.

nota

Asegúrese de elegir Create VPC para crear una nueva nube privada virtual (VPC) para su clúster de Amazon ECS.

Administrador de sistemas, desarrollador
TareaDescripciónHabilidades requeridas

Configurar el rol de IAM de ejecución de tareas de Amazon ECS

Cree un rol de IAM de ejecución de tareas de Amazon ECS con la política AmazonECSTaskExecutionRolePolicy administrada. Para obtener más información al respecto, consulte Rol de IAM de ejecución de tareas de Amazon ECS en la documentación de Amazon ECS.

nota

Asegúrese de registrar el nombre de recurso de Amazon (ARN) del rol de IAM.

Administrador de sistemas, desarrollador

Adjunte la política de IAM al rol de IAM de ejecución de tareas de Amazon ECS.

  1. Cree una política de IAM mediante el documento de política firelens_policy.json (adjunto). Para obtener más información al respecto, consulte Creación de políticas en la pestaña JSON de la documentación de IAM.

  2. Adjunte esta política al rol de IAM de ejecución de tareas de Amazon ECS que creó anteriormente. Para obtener más información al respecto, consulte Cómo añadir políticas de IAM (AWS CLI) en la documentación de IAM. 

Administrador de sistemas, desarrollador

Configure la definición de tarea de Amazon ECS.

  1. Actualice las siguientes secciones de la definición de tarea de muestra Task.json (adjunta):

    • Actualice executionRoleArn y taskRoleArn con el ARN del rol de IAM de ejecución de tareas

    • Actualice la imagen en containerDefinitions con la imagen de Docker personalizada de Fluent Bit que creó anteriormente

    • Actualice la imagen en containerDefinitions con el nombre de la imagen de su aplicación

  2. Abra la consola de Amazon ECS, seleccione Definiciones de tareas, seleccione Crear nueva definición de tarea y, a continuación, seleccione Fargate en la página de Selección de compatibilidades.    

  3. Seleccione Configurar mediante Json, pegue el archivo Task.json actualizado en el área de texto y, a continuación, seleccione Guardar.

  4. Crear una definición de tarea.

Para obtener más información al respecto, consulte Crear una definición de tarea en la documentación de Amazon ECS.

Administrador de sistemas, desarrollador
TareaDescripciónHabilidades requeridas

Ejecute la tarea de Amazon ECS.

En la consola de Amazon ECS, seleccione Clústeres, seleccione el clúster que creó anteriormente y, a continuación, ejecute la tarea independiente.

Para obtener más información al respecto, consulte Ejecutar una tarea independiente en la documentación de Amazon ECS.

Administrador de sistemas, desarrollador
TareaDescripciónHabilidades requeridas

Verifique los registros.

  1. Abra la CloudWatch consola, elija Grupos de registros y, a continuación, elija/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application.

  2. Verifique los registros, en particular los campos personalizados agregados por el analizador personalizado.

  3. Se utiliza CloudWatch para filtrar los registros en función de los campos personalizados.

Administrador de sistemas, desarrollador

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip