Elastic Cloud et AWS FireLens : obtention plus rapide d'informations exploitables grâce à l'ingestion de données sans agent

blog-thumb-cloud-aws.png

Désormais, les clients peuvent transférer directement des événements et des logs de conteneurs dans Elastic Cloud grâce à Amazon Web Services (AWS) FireLens. Il s'agit d'un routeur de logs de conteneurs pour les types de lancements d'Amazon Elastic Container Service (Amazon ECS), à savoir Amazon Elastic Compute Cloud (Amazon EC2) et AWS Fargate. Grâce à cette intégration, les experts en DevOps et DevSecOps peuvent rationaliser la gestion des logs AWS à toutes les étapes, depuis leur transfert jusqu'à leur conservation rentable en passant par leur monitoring et l'analyse des menaces.

Dans cet article, nous vous expliquons comment commencer à ingérer des données sans agent dans Elastic Cloud à l'aide d'AWS FireLens.

Rationalisation du transfert des événements et des logs

Par le passé, le transfert des événements et des logs de conteneurs vers des destinations différentes était un processus long et problématique. Aujourd'hui, dites adieu aux tâches chronophages, comme l'envoi de logs dans Cloudwatch, la gestion d'agrégateurs de logs sidecar Fluent Bit, l'installation manuelle de nouveaux logiciels ou l'écriture d'un code supplémentaire. Ainsi, vous pouvez configurer rapidement la définition d'une tâche en vue d'envoyer vers Elastic Cloud les logs d'application exécutés dans ECS.

Recherche, analyse et conservation des logs simplifiées

Une fois que vous diffusez vos données provenant de FireLens et que vous les stockez dans Elasticsearch, vous pouvez les visualiser et y mener des recherches dans Kibana en quelques minutes seulement. Vous pouvez aussi transférer les logs, les indicateurs et les traces de vos autres serveurs, machines virtuelles et conteneurs dans Elastic, puis les analyser à partir d'un point de surveillance unique.

Bénéficiez d'une visibilité en profondeur au sein de vos applications et diminuez le temps consacré à analyser les causes premières dans Elastic Observability. Analysez rapidement et en toute simplicité les traces, les logs et les indicateurs au niveau du code, cartographiez les dépendances de service complexes et identifiez les inconnues grâce à des corrélations automatisées et à la détection des anomalies basée sur le Machine Learning.

Éliminez le temps moyen de détection grâce à Elastic Security. Utilisez les mêmes données pour la protection et la réponse étendues (XDR). Rassemblez les données SIEM et de sécurité aux points de terminaison afin de prévenir les toutes dernières menaces de cybersécurité, de les détecter et de réagir en conséquence.

À mesure de l'évolution de vos données, vous savez que vous n'en perdrez aucune et serez en mesure d'équilibrer vos coûts de stockage avec les performances de vos systèmes grâce aux fonctionnalités Elastic de gestion du cycle de vie des index et de scaling automatique.

Prise en main d'Elastic et d'AWS FireLens

Prenons comme exemple l'utilisation de FireLens pour transférer des logs de conteneurs depuis Amazon ECS vers Elastic Cloud. Ce schéma d'architecture de référence est une représentation relativement standard de FireLens doté d'un conteneur au sein d'Amazon ECS qui transfert des logs de conteneurs dans Elastic Cloud.
transfert de logs de conteneurs d'Amazon ECS vers Elastic Cloud

Étapes de configuration de la tâche FireLens

1. Configurez la définition d'une tâche. Pour obtenir un exemple de définition, consultez la page "Amazon ECS FireLens Examples" sur GitHub.

2. Mettez à jour les rôles AWS Identity and Access Management (IAM) et remplacez-les par vos propres tâches RoleArn, executionRoleArn IAM roles, Elastic Cloud_Auth et Cloud_ID. Pour mettre en œuvre cette solution, consultez le référentiel GitHub où vous trouverez une définition de tâche actualisée et un fichier "readme". Vous trouverez également ci-dessous un exemple de tâche détaillée.
{
   "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 vous envisagez de transférer les logs de conteneurs d'Amazon ECS Fargate, remplacez les premières lignes par la configuration fournie ci-dessous.

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

Étapes de configuration

1. Assurez-vous que les interfaces de ligne de commande d'ECS et d'AWS sont installées. Si ce n'est pas le cas, suivez ce guide d'installation fourni par AWS.

2. Ouvrez un nouveau fichier nommé "enable-fluent-log-driver.sh", puis stockez l'information ci-dessous afin d'activer le pilote du log Fluentd dans l'agent ECS.

#!/bin/bash
echo "ECS_AVAILABLE_LOGGING_DRIVERS=[\"awslogs\",\"fluentd\"]" >> 
/etc/ecs/ecs.config
3. Créez un cluster EC2 ou Fargate sur ECS à l'aide des commandes suivantes.
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. Sauvegardez la définition de la tâche dans un fichier local intitulé "task_definition.json", puis enregistrez-la dans l'interface de ligne de commande d'AWS.

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

5. Créez le service ECS.

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

6. Lorsque l'exécution du service commence, vous devriez voir des logs affluer dans Elasticsearch via Kibana. L'image ci-dessous représente une requête exécutée dans Elastic qu'il est possible de visualiser dans Kibana.

Lorsque l'exécution du service commence, vous devriez voir des logs affluer dans Elasticsearch via Kibana. L'image ci-dessous représente une requête exécutée dans Elastic qu'il est possible de visualiser dans Kibana.

Dans Kibana, vous pouvez également visualiser les données provenant de vos index Elastic. Ensuite, vous pouvez concevoir des tableaux de bord affichant les visualisations connexes en fonction de vos requêtes exécutées sur Elastic. En utilisant les agrégations Elastic pour extraire et traiter les données, vous pouvez créer des graphiques et des graphes montrant les pics, les baisses et les tendances de l'utilisation de vos données. L'image ci-dessous montre un exemple d'un tableau de bord Kibana.

L'image ci-dessous montre un exemple d'un tableau de bord Kibana.

Le partenariat entre Elastic et AWS comprend des intégrations techniques, comme FireLens, qui simplifient l'ingestion des données. En outre, Elastic fournit une interface utilisateur unique dotée de contrôles inhérents de sécurité et de conformité pour les experts en DevOps et DevSecOps. Grâce aux tableaux de bord et aux intégrations d'AWS prêts à l'emploi fournis par Elastic, vous pouvez unifier la visibilité au sein de vos environnements AWS et sur site. Ainsi, vous êtes en mesure d'obtenir de meilleures informations exploitables sur la performance et l'état général de vos infrastructures, applications et activités.

Conclusion

Souhaitez-vous commencer à rationaliser l'ingestion de vos données ainsi qu'à gérer l'ensemble de vos événements et logs de conteneurs depuis un point de surveillance unique ? Elastic s'efforce en permanence de vous garantir une expérience fluide en vous conférant une liberté d'utilisation et d'exécution indépendamment de l'emplacement. Cette intégration rationalisée à AWS est juste un exemple du travail d'Elastic. Elastic Cloud vous apporte une valeur ajoutée à la Suite Elastic en élargissant votre champ d'action et en vous assurant une plus grande rapidité d'exécution. C'est la meilleure manière de tirer parti de notre plateforme. Pour en savoir plus sur les autres intégrations d'AWS, consultez la bibliothèque d'intégrations d'Elastic. Pour commencer à utiliser Elastic sur AWS, rendez-vous sur l'AWS Marketplace (Elastic) ou sur le site elastic.co. Si vous participez à l'événement AWS re:Invent qui se tiendra la semaine prochaine, venez nous rendre visite sur notre stand n1567 pour en savoir plus à ce sujet.

La publication et la date de publication de toute fonctionnalité ou fonction décrite dans le présent document restent à la seule discrétion d'Elastic. Toute fonctionnalité ou fonction qui n'est actuellement pas disponible peut ne pas être livrée à temps ou ne pas être livrée du tout.