Créez un analyseur de journaux personnalisé pour Amazon ECS à l'aide d'un routeur de journaux Firelens - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez un analyseur de journaux personnalisé pour Amazon ECS à l'aide d'un routeur de journaux Firelens

Créée par Varun Sharma (AWS)

Récapitulatif

Firelens est un routeur de journaux pour Amazon Elastic Container Service (Amazon ECS) et AWS Fargate. Vous pouvez utiliser Firelens pour acheminer les journaux de conteneurs d'Amazon ECS vers Amazon CloudWatch et d'autres destinations (par exemple, Splunk ou Sumo Logic). Firelens fonctionne avec Fluentd ou Fluent Bit comme agent de journalisation, ce qui signifie que vous pouvez utiliser les paramètres de définition des tâches Amazon ECS pour acheminer les journaux.

En choisissant d'analyser les journaux au niveau de la source, vous pouvez analyser vos données de journalisation et effectuer des requêtes afin de répondre de manière plus efficace aux problèmes opérationnels. Étant donné que les différentes applications ont des modèles de journalisation différents, vous devez utiliser un analyseur personnalisé qui structure les journaux et facilite les recherches à destination finale.

Ce modèle utilise un routeur de journaux Firelens avec un analyseur personnalisé pour transférer les journaux CloudWatch depuis un exemple d'application Spring Boot s'exécutant sur Amazon ECS. Vous pouvez ensuite utiliser Amazon CloudWatch Logs Insights pour filtrer les journaux en fonction des champs personnalisés générés par l'analyseur personnalisé.

Conditions préalables et limitations

Prérequis

  • Un compte Amazon Web Services (AWS) actif.

  • Interface de ligne de commande AWS (AWS CLI), installée et configurée sur votre machine locale.

  • Docker, installé et configuré sur votre machine locale.

  • Une application conteneurisée basée sur Spring Boot existante sur Amazon Elastic Container Registry (Amazon ECR). 

Architecture

Utilisation d'un routeur de journaux Firelens pour transférer des journaux CloudWatch depuis une application exécutée sur Amazon ECS.

Pile technologique

  • CloudWatch

  • Amazon ECR

  • Amazon ECS

  • Fargate

  • Docker

  • Fluent Bit

Outils

  • Amazon ECR — Amazon Elastic Container Registry (Amazon ECR) est un service de registre d'images de conteneurs géré par AWS qui est sécurisé, évolutif et fiable.

  • Amazon ECS — Amazon Elastic Container Service (Amazon ECS) est un service de gestion de conteneurs rapide et hautement évolutif qui facilite l'exécution, l'arrêt et la gestion des conteneurs sur un cluster.

  • AWS Identity and Access Management (IAM) — IAM est un service Web permettant de contrôler en toute sécurité l'accès aux services AWS.

  • AWS CLI — AWS Command Line Interface (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS à l'aide de commandes dans votre shell de ligne de commande.

  • Docker — Docker est une plateforme ouverte pour le développement, l'expédition et l'exécution d'applications.

Code

Les fichiers suivants sont joints à ce modèle :

  • customFluentBit.zip— Contient les fichiers permettant d'ajouter l'analyse et les configurations personnalisées.

  • firelens_policy.json— Contient le document de stratégie permettant de créer une politique IAM.

  • Task.json— Contient un exemple de définition de tâche pour Amazon ECS.

Épopées

TâcheDescriptionCompétences requises

Créez un référentiel Amazon ECR.

Connectez-vous à l'AWS Management Console, ouvrez la console Amazon ECR et créez un référentiel appeléfluentbit_custom.

Pour plus d'informations à ce sujet, consultez la section Création d'un référentiel dans la documentation Amazon ECR.

Administrateur système, Développeur

Décompressez le package customFluentBit .zip.

 

  1. Téléchargez le customFluentBit.zip package (joint) sur votre ordinateur local. 

  2. Décompressez le fichier customFluentBit dans le répertoire en exécutant la commande suivante : unzip -d customFluentBit.zip

  3. Le répertoire contient les fichiers suivants qui sont nécessaires pour ajouter l'analyse et les configurations personnalisées :

    • parsers/springboot_parser.conf— Contient la directive de l'analyseur et définit le modèle d'expression régulière (regex) pour l'analyseur personnalisé. Vous pouvez ajouter le modèle regex pour votre analyseur spécifique.

    •  conf/parse_springboot.conf— Contient le filtre et la directive de service.

    • Le Dockerfile

Créez l'image Docker personnalisée.

  1. Remplacez le répertoire par customFluentBit.

  2. Ouvrez la console Amazon ECR, choisissez le fluentbit_custom référentiel, puis sélectionnez Afficher les commandes push

  3. Téléchargez votre projet. 

  4. Une fois le téléchargement terminé, copiez l'URL du build. Cette URL est obligatoire lorsque vous créez un conteneur dans Amazon ECS

Pour plus d'informations à ce sujet, consultez la section Pushing a Docker image dans la documentation Amazon ECR. 

Administrateur système, Développeur
TâcheDescriptionCompétences requises

Créez un nouveau cluster Amazon ECS.

Créez un cluster Amazon ECS en suivant les instructions de la section Modèle de mise en réseau uniquement de la section Création d'un cluster de la documentation Amazon ECS.

Note

Assurez-vous de choisir Create VPC pour créer un nouveau cloud privé virtuel (VPC) pour votre cluster Amazon ECS.

Administrateur système, Développeur
TâcheDescriptionCompétences requises

Configurez le rôle IAM d'exécution de tâches Amazon ECS.

Créez un rôle IAM d'exécution de tâches Amazon ECS à l'aide de la politique AmazonECSTaskExecutionRolePolicy gérée. Pour plus d'informations à ce sujet, consultez le rôle IAM d'exécution de tâches Amazon ECS dans la documentation Amazon ECS.

Note

Assurez-vous d'enregistrer le nom de ressource Amazon (ARN) du rôle IAM.

Administrateur système, Développeur

Associez la politique IAM au rôle IAM d'exécution des tâches Amazon ECS.

  1. Créez une politique IAM à l'aide du document de stratégie firelens_policy.json (joint). Pour plus d'informations à ce sujet, consultez la section Création de politiques dans l'onglet JSON de la documentation IAM.

  2. Associez cette politique au rôle IAM d'exécution de tâches Amazon ECS que vous avez créé précédemment. Pour plus d'informations à ce sujet, consultez la section Ajout de politiques IAM (CLI AWS) dans la documentation IAM. 

Administrateur système, Développeur

Configurez la définition de tâche Amazon ECS.

  1. Mettez à jour les sections suivantes dans l'Task.jsonexemple de définition de tâche (ci-joint) :

    • Mettre à jour le executionRoleArn et taskRoleArn avec l'ARN du rôle IAM d'exécution de la tâche

    • Mettez à jour l'image containerDefinitions avec l'image Fluent Bit Docker personnalisée que vous avez créée précédemment

    • Mettez à jour l'image containerDefinitions avec le nom de l'image de votre application

  2. Ouvrez la console Amazon ECS, choisissez Définitions de tâches, choisissez Créer une nouvelle définition de tâche, puis choisissez Fargate sur la page de sélection des compatibilités.    

  3. Choisissez Configurer via Json, collez le Task.json fichier mis à jour dans la zone de texte, puis sélectionnez Enregistrer.

  4. Créez la définition de tâche.

Pour plus d'informations à ce sujet, consultez la section Création d'une définition de tâche dans la documentation Amazon ECS.

Administrateur système, Développeur
TâcheDescriptionCompétences requises

Exécutez la tâche Amazon ECS.

Sur la console Amazon ECS, choisissez Clusters, choisissez le cluster que vous avez créé précédemment, puis exécutez la tâche autonome.

Pour plus d'informations à ce sujet, consultez la section Exécuter une tâche autonome dans la documentation Amazon ECS.

Administrateur système, Développeur
TâcheDescriptionCompétences requises

Vérifiez les journaux.

  1. Ouvrez la CloudWatch console, choisissez Log groups, puis choisissez/aws/ecs/containerinsights/{{cluster_ARN}}/firelens/application.

  2. Vérifiez les journaux, en particulier les champs personnalisés ajoutés par l'analyseur personnalisé.

  3. CloudWatch À utiliser pour filtrer les journaux en fonction des champs personnalisés.

Administrateur système, Développeur

Ressources connexes

Pièces jointes

Pour accéder au contenu supplémentaire associé à ce document, décompressez le fichier suivant : attachment.zip