Surveillez l'activité des applications à l'aide de CloudWatch Logs Insights - 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.

Surveillez l'activité des applications à l'aide de CloudWatch Logs Insights

Créée par Ram Kandaswamy (AWS)

Récapitulatif

Ce modèle fournit une solution pour détecter et signaler automatiquement les exceptions d'application à l'aide d'Amazon CloudWatch Logs Insights. En mettant en œuvre une analyse automatique des journaux et des alertes, vous pouvez rapidement identifier les problèmes liés aux applications dans votre environnement de production et y répondre.

Les journaux jouent un rôle crucial dans la surveillance du comportement du système, l'identification des problèmes et la garantie de performances optimales. Au cours d'un processus de migration, les fichiers journaux sont essentiels pour valider le fonctionnement du système dans le nouvel environnement, détecter les problèmes de compatibilité et identifier les comportements inattendus. Les problèmes peuvent être liés aux opérations ou à la sécurité. Pour les problèmes liés à la sécurité, il est essentiel de détecter à un stade précoce les tentatives d'accès non autorisées ou les activités suspectes afin de garantir la sécurité et la conformité réglementaire. Cette fonctionnalité est particulièrement importante lorsqu'il s'agit de données sensibles ou de systèmes critiques.

Ce modèle est particulièrement utile pour les équipes qui doivent maintenir une haute disponibilité des applications et répondre rapidement aux problèmes de production. Il est pertinent dans différents secteurs et cas d'utilisation. Par exemple, dans le domaine des télécommunications, il permet d'identifier rapidement les mauvaises configurations ou les pannes du réseau et de détecter les chemins de routage sous-optimaux pour identifier les encombrements potentiels. Dans le domaine de l'Internet des objets (IoT), les composants de Greengrass peuvent publier des journaux CloudWatch, ce qui permet à cette technique d'extraire les détails pertinents des journaux et de les présenter dans un tableau de bord complet.

Conditions préalables et limitations

Prérequis

  • Une application de production déployée en mode actif Compte AWS

  • Compréhension de base du format de journalisation et des modèles d'exception de l'application de production

  • Les journaux d'application sont configurés pour être diffusés sur Amazon CloudWatch Logs

Limites

Architecture

Le schéma suivant montre comment CloudWatch Logs Insights évalue les journaux des ressources et envoie une visualisation des données pertinente à un CloudWatch tableau de bord.

CloudWatch Logs Insights évalue les journaux des ressources et envoie la visualisation des données au tableau de bord.

Le schéma suivant illustre le flux de travail suivant :

  1. Les ressources publient des journaux dans CloudWatch Logs. Les ressources peuvent inclure AWS des ressources telles que des instances Amazon Elastic Compute Cloud (Amazon EC2) ou des buckets Amazon Simple Storage Service (Amazon S3). Un autre exemple inclut les systèmes sur site sur lesquels un CloudWatch agent est installé et qui peuvent publier des journaux sur. CloudWatch

  2. CloudWatch Logs Insights filtre la chaîne de modèle appropriée. Les exemples de chaînes de modèles de recherche incluent « error », « exception » ou une expression régulière spécifique.

  3. Généralement, l'équipe d'assistance à la production ou les développeurs ajoutent la visualisation du modèle au CloudWatch tableau de bord.

Automatisation et mise à l'échelle

Les développeurs peuvent automatiser la solution de ce modèle en utilisant le AWS Cloud Development Kit (AWS CDK) AWS CloudFormation, ou AWS SDKs pour gérer plusieurs modèles de chaînes. Les équipes peuvent intégrer cette automatisation dans leurs processus d'intégration et de déploiement continus (CI/CD). DevOps

Outils

Services AWS

  • Amazon CloudWatch Logs vous aide à centraliser les journaux de tous vos systèmes et applications, Services AWS afin que vous puissiez les surveiller et les archiver en toute sécurité.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWS Key Management Service (AWS KMS) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.

Bonnes pratiques

Épopées

TâcheDescriptionCompétences requises

Configurez les autorisations IAM.

Pour configurer les autorisations IAM, procédez comme suit :

  1. Identifiez les rôles IAM utilisés par votre application pour écrire des journaux et par les utilisateurs ou les services qui créeront des tableaux de bord, des requêtes et des alarmes.

  2. Pour le rôle d'application, ajoutez les actions et ressources d'API suivantes à une politique :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  3. Pour gérer les CloudWatch ressources, ajoutez ce qui suit à une politique :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutDashboard", "cloudwatch:GetDashboard", "logs:StartQuery", "logs:StopQuery", "logs:GetQueryResults", "cloudwatch:PutMetricAlarm" ], "Resource": "*" } ] }

Pour plus d'informations sur la façon de créer des politiques IAM ou d'ajouter des autorisations à des politiques existantes, voir Définir des autorisations IAM personnalisées avec des politiques gérées par le client et Modifier les politiques IAM dans le Guide de l'utilisateur IAM. Pour plus d'informations, consultez la référence sur la gestion des identités et des accès pour Amazon CloudWatch CloudWatch Logs et les autorisations dans le guide de l'utilisateur Amazon CloudWatch Logs.

Administrateur AWS, AWS DevOps, administrateur système AWS, administrateur cloud, architecte cloud, DevOps ingénieur

Créez un groupe de journaux .

Pour créer un groupe de journaux, utilisez l'une des options suivantes :

  • Créez ou ouvrez un fichier CloudFormation modèle (format YAML ou JSON) avec une .json extension .yaml or. (Le code suivant utilise le format YAML.) Ajoutez la définition de ressource suivante à la section Ressources de votre modèle :

    MyLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: my-log-group

    Pour plus d'informations, consultez Quick Start : Use AWS CloudFormation to get started with CloudWatch Logs dans le guide de l'utilisateur Amazon CloudWatch Logs.

Administrateur AWS, AWS DevOps, administrateur système AWS, administrateur cloud, architecte cloud, DevOps ingénieur

Générez une requête CloudWatch Logs Insights.

Pour créer et enregistrer une requête CloudWatch Logs Insights, procédez comme suit :

  1. Ouvrez la CloudWatch console.

  2. Accédez à Logs Insights.

  3. Créez votre requête à l'aide de l'une des méthodes suivantes :

    • Commencez par un exemple de requête de la section Requêtes.

    • Rédigez une requête personnalisée.

    • Modifiez l'exemple de requête suivant :

      fields @timestamp, @message | filter @message like /(?i)exception/|stats count() by bin(30s)

      Cette requête vérifie le fichier journal, extrait l'horodatage et le contenu du message, filtre le mot « exception » (sans distinction majuscules/minuscules) et compte les occurrences toutes les 30 secondes.

Administrateur AWS, AWS DevOps, administrateur système AWS, administrateur cloud, architecte cloud, DevOps ingénieur

Créez une visualisation dans un CloudWatch tableau de bord.

Pour utiliser un CloudWatch tableau de bord afin de créer une visualisation, procédez comme suit :

  1. Ouvrez la CloudWatch console et créez un CloudWatch tableau de bord (si vous n'en avez pas déjà un) ou ouvrez un tableau de bord existant.

  2. Ajoutez votre visualisation de surveillance des exceptions. Des diagrammes à barres, linéaires et à secteurs sont disponibles, en fonction des besoins de votre entreprise. Pour plus d'informations, consultez la section Utilisation de widgets sur les CloudWatch tableaux de bord dans le guide de l'utilisateur Amazon CloudWatch Logs. Pour les visualisations de données en temps réel, vous pouvez personnaliser un widget en fonction de vos besoins.

Pour plus d'informations sur les options et fonctionnalités des tableaux de bord, consultez les sections Utilisation CloudWatch des tableaux de bord Amazon et Création de CloudWatch tableaux de bord flexibles avec des variables de tableau de bord dans le guide de l'utilisateur Amazon CloudWatch Logs.

Administrateur AWS, AWS DevOps, administrateur système AWS, administrateur cloud, architecte cloud, DevOps ingénieur

Résolution des problèmes

ProblèmeSolution

Impossible de voir les résultats de la requête ou la requête semble interrompue

Commencez par une requête fonctionnelle qui a été modifiée à partir d'un exemple de requête. Apportez de petites modifications incrémentielles à certaines parties de la requête (comme un filtre ou un champ) et tirez parti de la fonctionnalité de générateur de requêtes CloudWatch Logs.

Les groupes de journaux ne créent pas de flux de journaux

Dans la politique IAM, assurez-vous que la ressource pour les opérations CreateLogStreamet les CreateLogGroupopérations est dotée d'une valeur de caractère (*) générique. L'create opération ne réussira pas sans cette autorisation générique.

Ressources connexes