View a markdown version of this page

Analyse des modèles - CloudWatch Journaux Amazon

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.

Analyse des modèles

CloudWatch Logs Insights utilise des algorithmes d'apprentissage automatique pour trouver des modèles lorsque vous interrogez vos journaux. Un modèle est une structure de texte partagée qui revient dans les champs de votre journal. Lorsque vous consultez les résultats d'une requête, vous pouvez choisir l'onglet Modèles pour voir les modèles détectés par CloudWatch Logs sur la base d'un échantillon de vos résultats. Vous pouvez également ajouter la pattern commande à votre requête pour analyser les modèles de l'ensemble des événements de journal correspondants.

Les modèles sont utiles pour analyser de grands ensembles de journaux, car un grand nombre d'événements de journal peuvent souvent être compressés en quelques modèles.

Examinez l'exemple suivant de trois événements de journalisation.

2023-01-01 19:00:01 [INFO] Calling DynamoDB to store for resource id 12342342k124-12345 2023-01-01 19:00:02 [INFO] Calling DynamoDB to store for resource id 324892398123-12345 2023-01-01 19:00:03 [INFO] Calling DynamoDB to store for resource id 3ff231242342-12345

Dans l'exemple précédent, les trois événements du journal suivent le même schéma :

<Time-1> [INFO] Calling DynamoDB to store for resource id <ID-2>

Les champs d'un modèle sont appelés jetons. Les champs qui varient selon un modèle, comme un ID de demande ou un horodatage, sont des jetons dynamiques. Chaque jeton dynamique est représenté par<string-number>. stringIl s'agit d'une description du type de données que représente le jeton. Cela number montre où ce jeton apparaît dans le modèle, par rapport aux autres jetons dynamiques.

Les exemples courants de jetons dynamiques incluent les codes d'erreur, les horodatages et les ID de demande. Une valeur de jeton représente une valeur particulière d'un jeton dynamique. Par exemple, si un jeton dynamique représente un code d'erreur HTTP, la valeur d'un jeton peut l'être501.

La détection de formes est également utilisée dans le détecteur d'anomalies CloudWatch Logs et les fonctionnalités de comparaison. Pour plus d’informations, consultez Détection des anomalies du journal et Comparer (diff) avec les plages de temps précédentes.

Débuter avec l'analyse des modèles

La détection des modèles est automatiquement effectuée dans toutes CloudWatch les requêtes Logs Insights. Les requêtes qui n'incluent pas la pattern commande enregistrent à la fois les événements et les modèles dans les résultats.

Si vous incluez la pattern commande dans votre requête, une analyse des modèles est effectuée sur l'ensemble complet des événements de journal correspondants. Cela vous donne des résultats de modèle plus précis, mais les événements bruts du journal ne sont pas renvoyés lorsque vous utilisez la pattern commande. Lorsqu'une requête n'inclut paspattern, les résultats du modèle sont basés soit sur les 1 000 premiers événements de journal renvoyés, soit sur la valeur limite que vous avez utilisée dans votre requête. Si vous les incluez pattern dans la requête, les résultats affichés dans l'onglet Modèles sont dérivés de tous les événements de journal correspondant à la requête.

Pour commencer à analyser les modèles dans CloudWatch Logs Insights
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le volet de navigation, choisissez Journaux, Informations sur les journaux.

    Sur la page Logs Insights, l'éditeur de requête contient une requête par défaut qui renvoie les 20 événements du journal les plus récents.

  3. Supprimez la | limit 20 ligne dans la zone de requête afin que la requête ressemble à ce qui suit :

    fields @timestamp, @message, @logStream, @log | sort @timestamp desc
  4. Dans la liste déroulante Sélectionner un ou plusieurs groupes de journaux, choisissez un ou plusieurs groupes de journaux à interroger.

  5. (Facultatif) Utilisez le sélecteur d'intervalle de temps pour sélectionner une période à interroger.

    Vous pouvez choisir entre des intervalles de 5 minutes et de 30 minutes, des intervalles de 1 heure, 3 heures et 12 heures, ou un calendrier personnalisé.

  6. Choisissez Exécuter la requête pour démarrer la requête.

    Lorsque l'exécution de la requête est terminée, l'onglet Journaux affiche un tableau des événements de journal renvoyés par la requête. Au-dessus du tableau se trouve un message indiquant le nombre d'enregistrements correspondant à la requête, similaire au message Afficher 10 000 des 71 101 enregistrements correspondants.

  7. Choisissez l'onglet Motifs.

  8. Le tableau affiche désormais les modèles trouvés dans la requête. Comme la requête n'incluait pas la pattern commande, cet onglet affiche uniquement les modèles découverts parmi les 10 000 événements de journal présentés dans le tableau de l'onglet Journaux.

    Pour chaque motif, les informations suivantes sont affichées :

    • Le modèle, avec chaque jeton dynamique affiché sous la forme<string-number>. stringIl s'agit d'une description du type de données que représente le jeton. Cela number montre où ce jeton apparaît dans le modèle, par rapport aux autres jetons dynamiques.

    • Le nombre d'événements, qui est le nombre de fois que le modèle est apparu dans les événements du journal interrogés. Choisissez l'en-tête de colonne Nombre d'événements pour trier les modèles par fréquence.

    • Le ratio d'événements, qui est le pourcentage des événements de journal interrogés qui contiennent ce modèle.

    • Le type de gravité, qui sera l'un des suivants :

      • ERREUR si le motif contient le mot Error.

      • WARN si le motif contient le mot Warn mais ne contient pas Error.

      • INFO si le modèle ne contient ni Warn ni Error.

      Choisissez l'en-tête de colonne Informations sur la gravité pour trier les modèles par gravité.

  9. Modifiez maintenant la requête. Remplacez la | sort @timestamp desc ligne de la requête par| pattern @message, de sorte que la requête complète soit la suivante :

    fields @timestamp, @message, @logStream, @log | pattern @message
  10. Choisissez Exécuter la requête.

    Lorsque la requête est terminée, aucun résultat n'apparaît dans l'onglet Journaux. Cependant, l'onglet Modèles contient probablement un plus grand nombre de modèles répertoriés, en fonction du nombre total d'événements de journal interrogés.

  11. Que vous ayez inclus ou non pattern dans votre requête, vous pouvez inspecter de manière plus approfondie les modèles renvoyés par la requête. Pour ce faire, choisissez l'icône de la colonne Inspecter correspondant à l'un des modèles.

    Le volet d'inspection des modèles apparaît et affiche les informations suivantes :

    • Le schéma. Sélectionnez un jeton dans le modèle pour analyser les valeurs de ce jeton.

    • Un histogramme indiquant le nombre d'occurrences du modèle sur la plage de temps demandée. Cela peut vous aider à identifier des tendances intéressantes, telles qu'une augmentation soudaine de la fréquence d'une tendance.

    • L'onglet Exemples de journal affiche quelques-uns des événements de journal qui correspondent au modèle sélectionné.

    • L'onglet Valeurs des jetons affiche les valeurs du jeton dynamique sélectionné, si vous en avez sélectionné un.

      Note

      Un maximum de 10 valeurs de jeton sont capturées pour chaque jeton. Le nombre de jetons n'est peut-être pas précis. CloudWatch Logs utilise un compteur probabiliste pour générer le nombre de jetons, et non la valeur absolue.

    • L'onglet Modèles associés affiche d'autres modèles qui se sont produits fréquemment à peu près au même moment que le modèle que vous inspectez. Par exemple, si le modèle d'un ERROR message était généralement accompagné d'un autre événement de journal marqué comme INFO comportant des détails supplémentaires, ce modèle est affiché ici.

Informations sur la commande pattern

Cette section contient plus de détails sur la pattern commande et ses utilisations.

  • Dans le didacticiel précédent, nous avons supprimé la sort commande lors de son ajout, pattern car une requête n'est pas valide si elle inclut une pattern commande après une sort commande. Il est valide d'avoir un pattern avant sort a.

    Pour plus de détails sur pattern la syntaxe, consultezpattern.

  • Lorsque vous utilisez pattern dans une requête, l'un des champs @message doit être sélectionné dans la pattern commande.

  • Vous pouvez inclure la filter commande avant une pattern commande pour que seul l'ensemble filtré d'événements de journal soit utilisé comme entrée pour l'analyse des modèles.

  • Pour voir les résultats du modèle pour un champ particulier, tel qu'un champ dérivé de la parse commande, utilisezpattern @fieldname.

  • Les requêtes dont le résultat n'est pas un journal, telles que les requêtes contenant la stats commande, ne renvoient pas de résultats de modèle.