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

Ram Kandaswamy, Amazon Web Services

Résumé

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 effectuer les opérations suivantes :

  • Maintenez une haute disponibilité des applications.

  • Répondez rapidement aux problèmes de production.

  • Analysez les erreurs spécifiques à l'application qui ne sont pas enregistrées dans les journaux Service AWS .

  • Effectuez une analyse des journaux à la demande sans infrastructure prédéfinie.

CloudWatch Logs Insights est idéal pour analyser les journaux générés par les applications lorsque le contexte d'erreur n'existe que dans le code de votre application. CloudWatch Logs Insights excelle dans les tâches suivantes :

  • Interrogez des données de journal non structurées ou semi-structurées.

  • Effectuez une analyse à la demande lors de la réponse aux incidents.

  • Corrélez les événements entre plusieurs groupes de journaux.

  • Créez des visualisations rapides sans outils externes.

Conditions préalables et limitations

Conditions préalables

  • 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

Bonnes pratiques

Efficacité des requêtes

  • Définissez et configurez des groupes de journaux pour analyser les données de journal pertinentes.

  • Utilisez les explorateurs de champs pour comprendre la structure et les champs disponibles dans les données de votre journal.

  • Rédigez des requêtes efficaces en utilisant la syntaxe des requêtes de CloudWatch Logs Insights.

  • Adaptez les exemples de requêtes à vos besoins spécifiques pour une analyse plus rapide.

  • Limitez les plages temporelles des requêtes afin de réduire les données numérisées et d'améliorer les performances.

  • Enregistrez les requêtes pour une utilisation future afin de gagner du temps et de garantir une analyse cohérente.

Sécurité

Optimisation des coûts

  • CloudWatch Logs Insights facture par Go de données numérisées par requête. Réduisez les plages temporelles et ciblez des groupes de journaux spécifiques pour réduire les coûts.

  • Configurez des politiques de conservation des journaux appropriées pour gérer les coûts de stockage.

  • Pour une analyse fréquente de grands ensembles de données historiques, pensez à exporter les journaux vers Amazon S3 et à utiliser Amazon Athena.

  • Passez en revue CloudWatch les prix pour comprendre les implications financières pour votre cas d'utilisation.

Épopées

Sous-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 aux 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 en utilisant 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'un caractère (*) générique. L'create opération ne réussira pas sans cette autorisation générique.

Délai d'expiration des requêtes ou ralentissement des performances

Réduisez l'intervalle de temps, ciblez des groupes de journaux spécifiques ou simplifiez la requête. Les modèles d'expressions régulières (regex) complexes et les plages de temps étendues augmentent le temps de requête.

Aucune donnée renvoyée pour une plage de temps valide

Vérifiez la sélection du groupe de journaux et vérifiez que les journaux sont ingérés (examinez les flux de journaux), et vérifiez que le modèle de filtre correspond à votre format de journal.

Ressources connexes