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.
chercher
Utilisez-le lookup pour enrichir les résultats de votre requête avec des données de référence provenant d'une table de recherche. Vous pouvez remplir une table de recherche avec les données CSV que vous chargez sur Amazon CloudWatch Logs, ou avec les résultats d'une requête de journal terminée ou annulée. Lorsqu'une requête est exécutée, la lookup commande compare un champ de votre journal des événements à un champ de la table de recherche et ajoute les champs de sortie spécifiés aux résultats.
Utilisez des tables de recherche pour les scénarios d'enrichissement des données, tels que le mappage des ID utilisateur avec les détails de l'utilisateur, des codes de produit avec des informations sur le produit ou des codes d'erreur avec des descriptions d'erreurs.
Création et gestion de tables de recherche
Avant de pouvoir utiliser la lookup commande dans une requête, vous devez créer une table de recherche. Vous pouvez créer et gérer des tables de recherche depuis la CloudWatch console ou à l'aide de l'API Amazon CloudWatch Logs.
Pour créer une table de recherche (console)
-
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le volet de navigation, choisissez Paramètres, puis choisissez l'onglet Journaux.
-
Accédez à Tables de recherche et choisissez Gérer.
-
Choisissez Créer une table de recherche.
-
Entrez un nom pour la table de recherche. Le nom ne peut contenir que des caractères alphanumériques et des traits de soulignement.
-
(Facultatif) Entrez une description.
-
Téléchargez un fichier CSV. Le fichier doit inclure une ligne d'en-tête avec les noms des colonnes, utiliser un UTF-8 encodage et ne pas dépasser 10 Mo.
-
(Facultatif) Spécifiez une AWS KMS clé pour chiffrer les données de la table.
-
Choisissez Créer.
Après avoir créé une table de recherche, vous pouvez l'afficher dans l'éditeur de requêtes CloudWatch Logs Insights. Choisissez l'onglet Tables de recherche pour parcourir les tables disponibles et leurs champs.
Pour mettre à jour une table de recherche, sélectionnez-la et choisissez Actions, Mettre à jour. Téléchargez un nouveau fichier CSV pour remplacer tout le contenu existant. Pour supprimer une table de recherche, choisissez Actions, Supprimer.
Au lieu de télécharger des données CSV, vous pouvez également créer ou mettre à jour une table de recherche à partir des résultats d'une requête de journal terminée ou annulée que vous exécutez dans la console Log Analytics ou avec l'API Amazon CloudWatch Logs. Spécifiez l'ID de requête avec le queryId paramètre de l'UpdateLookupTableAPI CreateLookupTable or. Une requête annulée remplit le tableau avec les résultats partiels qui étaient disponibles lorsque la requête a été arrêtée. Vous devez spécifier le contenu CSV ou un ID de requête, mais pas les deux. La mise à jour d'un tableau est une opération de remplacement complet : tout le contenu existant est remplacé quelle que soit sa source. Pour actualiser automatiquement une table de recherche avec les résultats de la requête selon un calendrier, utilisez une requête planifiée avec une destination de table de recherche. Pour de plus amples informations, veuillez consulter Configuration des destinations des tables de recherche pour les requêtes planifiées.
Note
Vous pouvez créer jusqu'à 100 tables de recherche par compte et par Région AWS. Les fichiers CSV peuvent peser jusqu'à 10 Mo. Vous pouvez également gérer les tables de recherche à l'aide de l'API Amazon CloudWatch Logs. Pour plus d'informations, consultez CreateLookupTable le manuel Amazon CloudWatch Logs API Reference.
Note
Si la table de recherche est chiffrée à l'aide d'une clé KMS, l'appelant doit disposer de l'kms:Decryptautorisation sur la clé (la clé KMS utilisée pour chiffrer la table de recherche) pour utiliser l'StartQueryAPI avec une requête qui fait référence à cette table de recherche. Pour de plus amples informations, veuillez consulter Chiffrez les tables de recherche dans les CloudWatch journaux à l'aide de AWS Key Management Service.
Syntaxe de requête pour la recherche
Structure de commande
Le format de cette commande est illustré ci-dessous.
lookuptablematch-fieldsoutput-modeoutput-field[,...]
La commande utilise les arguments suivants :
-
— Le nom de la table de recherche à utiliser.table -
— Spécifiez un ou plusieurs champs pour faire correspondre les événements du journal à la table de recherche. Vous pouvez utiliser l'un des formulaires suivants :match-fields-
— À utiliserlookup-fieldaslog-field[,...]aslorsque le nom de colonne de la table de recherche diffère du nom du champ d'événement du journal. Par exemple,ip_address as srcAddrfait correspondre laip_addresscolonne de la table de recherche ausrcAddrchamp de votre journal des événements. -
— Lorsque le nom du champ d'événement du journal est identique au nom de la colonne de la table de recherche, vous pouvez omettrelookup-field[,...]aset spécifier directement le nom du champ. Par exemple,department, rolecompare les deux colonnes aux champs d'événements du journal portant le même nom.
Lorsque plusieurs champs de correspondance sont spécifiés, une ligne de la table de recherche doit correspondre à tous les champs pour produire un résultat (logique AND).
-
-
— Spécifie la manière dont les champs de sortie sont ajoutés aux résultats. Utilisez l'une des options suivantes :output-mode-
OUTPUT— Ajoute les champs de sortie aux résultats. Si un champ portant le même nom existe déjà dans l'événement de journal, il est remplacé par la valeur de la table de recherche. Si aucune correspondance n'est trouvée, le champ est défini sur null. -
OUTPUTNEW— Ajoute les champs de sortie aux résultats uniquement si le champ n'existe pas déjà dans le journal des événements. Si le champ possède déjà une valeur, la valeur d'origine est conservée. Si aucune correspondance n'est trouvée, le champ reste inchangé.
-
-
— Un ou plusieurs champs de la table de recherche à ajouter aux résultats.output-field
Exemple : enrichir les événements du journal avec les détails de l'utilisateur
Supposons que vous disposiez d'un groupe de journaux contenant des événements contenant un id champ et d'une table de recherche nommée user_data avec des colonnes idname,email, etdepartment. La requête suivante enrichit chaque événement du journal avec le nom, l'adresse e-mail et le service de l'utilisateur à partir de la table de recherche.
fields action, status, name, email, department | lookup user_data id OUTPUT name, email, department
Exemple : utiliser la recherche avec agrégation
Vous pouvez utiliser des champs de sortie de recherche avec des fonctions d'agrégation. La requête suivante enrichit les événements du journal avec les détails de l'utilisateur, puis compte les événements regroupés par adresse e-mail.
fields user_id, action, username, email, department | lookup user_data user_id OUTPUT username, email, department | stats count(*) by email
Exemple : Utiliser la recherche avec un filtre
Vous pouvez filtrer les résultats en fonction des champs renvoyés par la recherche. La requête suivante enrichit les événements du journal, puis filtre pour n'afficher que les événements d'un service spécifique.
fields user_id, action | lookup user_data user_id OUTPUT username, email, department | filter department = "Engineering"
Exemple : utilisez OUTPUTNEW pour enrichir sans réécrire
Si les événements de votre journal contiennent déjà un hostname champ mais que celui-ci est parfois vide, utilisez-le OUTPUTNEW pour remplir les valeurs manquantes sans remplacer les valeurs existantes.
fields srcAddr, hostname | lookup known_hosts ip_address as srcAddr OUTPUTNEW hostname, region
Exemple : utiliser la recherche avec plusieurs champs de correspondance
Vous pouvez égaler sur plus d'un champ. La requête suivante correspond à la fois à la dstPort table de recherche srcAddr et à celle-ci pour identifier les services réseau connus.
fields @timestamp, srcAddr, dstAddr, dstPort | lookup network_services ip_address as srcAddr, port as dstPort OUTPUT service_name, owner | filter ispresent(service_name)
Exemple : utiliser la fonction de recherche avec les noms de champs correspondants
Lorsque les noms de vos champs d'événements de journal correspondent exactement aux noms des colonnes de la table de recherche, vous pouvez omettre le as mot clé. La requête suivante fait correspondre department les deux role champs directement à la table de recherche.
fields @timestamp, department, role | lookup employees department, role OUTPUT office, manager