Elastic Cloud con AWS FireLens: Acelera el tiempo de obtención de información con la ingesta de datos sin agentes

blog-thumb-cloud-aws.png

Los clientes ahora pueden enviar directamente logs y eventos de contenedor a Elastic Cloud con FireLens de Amazon Web Services (AWS). AWS FireLens es un enrutador de logs de contenedor para los tipos de lanzamiento de Amazon Elastic Container Service (Amazon ECS): Amazon Elastic Compute Cloud (Amazon EC2) y AWS Fargate. Esta integración permite a los expertos en DevOps y DevSecOps optimizar la administración de logs de AWS desde el envío y la retención de logs rentable hasta el monitoreo y el análisis de amenazas.

En este blog, abarcaremos cómo dar los primeros pasos en la ingesta de datos sin agentes en Elastic Cloud mediante AWS FireLens.

Optimiza el envío de logs y eventos

Tradicionalmente, enviar logs y eventos de contenedor a diferentes destinos ha sido un proceso largo y desafiante. Despídete de las tareas que consumen mucho tiempo, como enviar logs a Cloudwatch, mantener agregadores de logs de sidecars de Fluent Bit, instalar de forma manual software adicional o escribir código adicional. Ahora puedes configurar rápidamente la definición de tareas para enviar logs de aplicaciones que se ejecutan en ECS a Elastic Cloud.

Simplifica la búsqueda, el análisis y la retención de logs

Una vez que transmites datos desde FireLens y los almacenas en Elasticsearch, puedes buscarlos y visualizarlos en Kibana en minutos. También puedes enviar logs, métricas y rastreos desde tus otros servidores, máquinas virtuales y contenedores a Elastic y analizarlos a través de un único panel.

Recibe una visibilidad profunda de las aplicaciones y reduce el tiempo dedicado al análisis de las causas raíz con Elastic Observability. Analiza de forma rápida y sencilla rastreos, logs y métricas a nivel de código, mapea dependencias de servicios complejas y detecta “incógnitas desconocidas” con la detección de anomalías basada en el aprendizaje automático y las correlaciones automatizadas.

Reduce el tiempo medio de detección a cero con Elastic Security. Amplía el uso de los mismos datos para una protección y una respuesta extendidas (XDR). Reúne SIEM y los datos de seguridad de endpoint para prevenir, detectar y responder a las últimas amenazas de ciberseguridad.

Mientras crecen tus datos, las capacidades de gestión de ciclo de vida de indexación y el escalado automático de Elastic garantizan que no se pierdan datos y, al mismo tiempo, equilibran el rendimiento y los costos de almacenamiento.

Primeros pasos con Elastic y AWS FireLens

Comencemos con un ejemplo de cómo usar FireLens para reenviar logs de contenedor de Amazon ECS a Elastic Cloud. Este diagrama de arquitectura de referencia es una representación relativamente estándar de FireLens con un contenedor en Amazon ECS que reenvía logs de contenedor a Elastic Cloud.
reenvía logs de contenedor de Amazon ECS a Elastic Cloud

Pasos de configuración de tareas de FireLens:

1. Configura la definición de una tarea. Puedes encontrar una definición de ejemplo en los ejemplos de Amazon ECS FireLens en GitHub.

2. Actualiza y reemplaza los roles de AWS Identity and Access Management (IAM) con los roles de IAM RoleArn y executionRoleArn, Elastic Cloud_Auth y Cloud_ID de tu propia tarea. La definición de la tarea actualizada y el archivo Léeme para implementar esta solución se pueden encontrar en el repositorio de GitHub. También puedes ver los detalles de la tarea a continuación como ejemplo.
{
   "family": "firelens-EC2-elastic",
   "taskRoleArn": "CHANGE ME",
   "executionRoleArn": "CHANGE ME",
   "containerDefinitions": [{
           "name": "log_router",
           "image": "amazon/aws-for-fluent-bit:latest",
           "essential": true,
           "firelensConfiguration": {
               "type": "fluentbit",
               "options": {
                   "enable-ecs-log-metadata": "true"
               }
           },
           "logConfiguration": {
               "logDriver": "awslogs",
               "options": {
                   "awslogs-create-group": "true",
                   "awslogs-group": "firelens-container",
                   "awslogs-region": "us-east-2",
                   "awslogs-stream-prefix": "firelens"
               }
           },
           "memoryReservation": 50
       },
       {
           "name": "nginx-test",
           "image": "nginx",
           "portMappings": [{
               "containerPort": 80
           }],
           "essential": true,
           "environment": [],
           "logConfiguration": {
               "logDriver": "awsfirelens",
               "secretOptions": [
                       {
                               "valueFrom": "CHANGE ME",
                               "name": "Cloud_Auth"
                       }
               ],
               "options": {
                   "Name": "es",
                   "Port": "9243",
                   "Tag_Key tags": "tags",
                   "Include_Tag_Key": "true",
                   "Cloud_ID": "CHANGE ME",
                   "Index": "elastic_firelens”,
                   "tls": "On",
                   "tls.verify": "Off"
               }
           },
           "memoryReservation": 100
       }
   ]
}

Si tienes previsto enviar logs de contenedor de Amazon ECS Fargate, reemplaza las primeras líneas con la siguiente configuración.

{
    "family": "firelens-fargate-elastic",
    "taskRoleArn": "",
    "taskRoleArn": "CHANGE ME",
    "executionRoleArn": "CHANGE ME",
    "cpu": "512",
    "memory": "1024",
    "requiresCompatibilities": [
        "FARGATE"
    ],

Pasos de configuración:

1. Asegúrate de que ECS CLI y AWS CLI estén instalados; de lo contrario, primero sigue esta guía de instalación de AWS.

2. Abre un nuevo archivo con el nombre `enable-fluent-log-driver.sh` y almacena la información a continuación para habilitar el controlador de log de Fluentd en el agente de ECS:

#!/bin/bash
echo "ECS_AVAILABLE_LOGGING_DRIVERS=[\"awslogs\",\"fluentd\"]" >> 
/etc/ecs/ecs.config
3. Crea un cluster de EC2 o Fargate en ECS con los siguientes comandos.
ecs-cli up \
--size 2 \
--instance-type t2.medium \
--extra-user-data enable-fluent-log-driver.sh \
--keypair <changeme> \
--capability-iam \
--region=us-east-2 \
--ecs-profile=<changeme> \
--cluster-config <changeme>

4. Guarda la definición de la tarea en un archivo local con el nombre `task_definition.json` y regístralo mediante AWS CLI:

aws ecs register-task-definition --cli-input-json file://task_definition.json

5. Crea un servicio de ECS:

aws ecs create-service --cluster cluster-name --service-name demo-service --task-definition firelens-example-cloudwatch --desired-count 1 --launch-type 
"EC2"

6. Cuando el servicio comienza a ejecutarse, deberías ver que los logs fluyen hacia Elasticsearch a través de Kibana. En la siguiente imagen se muestra una búsqueda ejecutada en Elastic que se puede visualizar en Kibana.

Cuando el servicio comienza a ejecutarse, deberías ver que los logs fluyen hacia Elasticsearch a través de Kibana. En la siguiente imagen se muestra una búsqueda ejecutada en Elastic que se puede visualizar en Kibana.

En Kibana, también puedes visualizar los datos que tienes en tus índices de Elastic. Asimismo, puedes crear dashboards que muestren visualizaciones relacionadas en función de las búsquedas que ejecutas en Elastic. Al usar agregaciones de Elastic para extraer y procesar los datos, puedes crear tablas y grafos en los que se muestren los picos, las caídas y las tendencias relativos a tus datos. En la siguiente imagen se muestra un ejemplo de un dashboard de Kibana.

En la siguiente imagen se muestra un ejemplo de un dashboard de Kibana.

En la colaboración de Elastic y AWS se incluyen integraciones técnicas como FireLens para simplificar la ingesta de datos, y Elastic ofrece una sola UI que cuenta con seguridad y control de cumplimiento inherentes para expertos en DevOps y DevSecOps. Con las integraciones y los dashboards listos para usar de Elastic, puedes unificar la visibilidad de los entornos de AWS y en las instalaciones, lo que te permitirá comprender mejor el rendimiento y el estado general de tu infraestructura, aplicaciones y negocio.

Resumen

¿Estás listo para optimizar la ingesta de datos y administrar todos tus logs y eventos de contenedor desde un único panel? Elastic está en constante evolución para ofrecerte una experiencia sin complicaciones, que te permita operar donde quieras y usar lo que quieras. Y esta integración optimizada con AWS es solo un ejemplo de ello. Elastic Cloud amplía el valor del Elastic Stack, lo que te permite hacer más y más rápido, y esto lo convierte en la mejor forma de experimentar nuestra plataforma. Para obtener más información sobre otras integraciones de AWS, visita la biblioteca de integraciones de Elastic. Para dar los primeros pasos en el uso de Elastic en AWS, visita el AWS Marketplace (Elastic) o elastic.co. Si vas a asistir al evento AWS re:Invent la próxima semana, pasa por nuestro stand n.º 1567 para obtener más información.

El lanzamiento y la sincronización de cualquier característica o funcionalidad descrita en este documento quedan a la entera discreción de Elastic. Cualquier característica o funcionalidad que no esté disponible actualmente puede no entregarse a tiempo o no entregarse en absoluto.