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
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. 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.
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
Dans le menu déroulant Sélectionner un ou plusieurs groupes de journaux, choisissez un ou plusieurs groupes de journaux à interroger.
(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é.
-
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.
Choisissez l'onglet Motifs.
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é.
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
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.
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é commeINFO
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 ajoutpattern
car une requête n'est pas valide si elle inclut unepattern
commande après unesort
commande. Il est valide d'avoir unpattern
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 lapattern
commande.Vous pouvez inclure la
filter
commande avant unepattern
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.