Analyse de modèles - Amazon CloudWatch Logs

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 de modèles

CloudWatch Logs Insights utilise des algorithmes d'apprentissage automatique pour identifier des modèles lorsque vous interrogez vos journaux. Un modèle est une structure de texte partagée récurrente dans vos champs de journal. Lorsque vous consultez les résultats d'une requête, vous pouvez choisir l'onglet Modèles pour voir les modèles trouvé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 du 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 plusieurs modèles.

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

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 :

<*> <*> [INFO] Calling DynamoDB to store for resource id <*>

Les champs d'un modèle sont appelés jetons. Les champs qui varient au sein d'un modèle, tels qu'un ID de demande ou un horodatage, sont des jetons dynamiques. Chaque jeton dynamique est représenté par le <*> moment où CloudWatch Logs l'affiche.

Les exemples courants de jetons dynamiques incluent les codes d'erreur, les horodatages et les identifiants 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, une valeur de jeton peut l'être501.

La détection de modèles 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 temporelles précédentes.

Commencer à utiliser l'analyse de 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, l'analyse des modèles est effectuée sur l'ensemble des événements du journal correspondants. Cela permet d'obtenir des résultats de modèle plus précis, mais les événements du journal bruts 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 l'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 du journal correspondant à la requête.

Pour commencer à utiliser l'analyse de 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, sélectionnez Logs, Logs Insights.

    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 le menu déroulant 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 30 minutes, des intervalles de 1 heure, 3 heures et 12 heures, ou un intervalle de temps 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 du 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 à l'affichage de 1 000 enregistrements sur 71 101 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 1 000 événements de journal présentés dans le tableau de l'onglet Journaux.

    Pour chaque modèle, les informations suivantes sont affichées :

    • Le modèle, avec chaque jeton dynamique affiché sous la forme<*>.

    • Le nombre d'événements, qui est le nombre de fois que le modèle est apparu dans le journal des événements demandé. Choisissez l'en-tête de la 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 du journal interrogés qui contiennent ce modèle.

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

      • ERREUR si le modèle contient le mot Error.

      • AVERTIR si le modèle contient le mot Warn mais ne contient pas Error.

      • INFO si le modèle ne contient ni avertissement ni erreur.

      Choisissez l'en-tête de la 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 ne s'affiche dans l'onglet Logs. 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 l'ayez inclus ou non pattern dans votre requête, vous pouvez examiner plus en détail les modèles renvoyés par la requête. Pour ce faire, choisissez l'icône de l'un des modèles dans la colonne Inspecter.

    Le volet Pattern inspect apparaît et affiche les informations suivantes :

    • Le motif. 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 l'occurrence d'un modèle.

    • L'onglet Échantillons de journal affiche quelques-uns des événements du journal correspondant au modèle sélectionné.

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

      Note

      Un maximum de 10 valeurs de jeton est capturée pour chaque jeton. Le nombre de jetons peut ne pas être 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 contenant des détails supplémentaires, ce modèle est affiché ici.

Détails 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 unsort.

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

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

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

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

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