Journaux pris en charge et champs découverts - 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.

Journaux pris en charge et champs découverts

CloudWatch Logs Insights prend en charge différents types de journaux. Pour chaque journal envoyé à un groupe de journaux de classe Standard dans Amazon CloudWatch Logs, CloudWatch Logs Insights génère automatiquement cinq champs système :

  • @message contient l'événement de journal non analysé brut. C'est l'équivalent du message champ dans InputLogevent.

  • @timestamp contient l'horodatage de l'événement dans le champ timestamp de l'événement du journal. C'est l'équivalent du timestamp champ dans InputLogevent.

  • @ingestionTimecontient l'heure à laquelle CloudWatch Logs a reçu l'événement du journal.

  • @logStream contient le nom du flux de journaux auquel l'événement de journal a été ajouté. Les flux de journaux regroupent les journaux à travers le même processus qui les a générés.

  • @log est un identificateur de groupe de journaux sous la forme de account-id:log-group-name. Lors de la requête de plusieurs groupes de journaux, cela peut être utile d'identifier le groupe de journaux auquel appartient un événement particulier.

  • @entitycontient du JSON aplati lié aux entités pour la fonctionnalité de télémétrie associée à Explore.

    Par exemple, ce JSON peut représenter une entité.

    { "Entity": { "KeyAttributes": { "Type": "Service", "Name": "PetClinic" }, "Attributes": { "PlatformType": "AWS::EC2", "EC2.InstanceId": "i-1234567890123" } } }

    Pour cette entité, les champs système extraits seraient les suivants :

    @entity.KeyAttributes.Type = Service @entity.KeyAttributes.Name = PetClinic @entity.Attributes.PlatformType = AWS::EC2 @entity.Attributes.EC2.InstanceId = i-1234567890123
Note

La découverte de champs n'est prise en charge que pour les groupes de journaux de la classe de journaux standard. Pour plus d'informations sur les classes de log, consultezClasses de log.

CloudWatch Logs Insights insère le symbole @ au début des champs qu'il génère.

Pour de nombreux types de CloudWatch journaux, Logs découvre également automatiquement les champs de journal contenus dans les journaux. Ces champs de détection automatique figurent dans le tableau suivant.

Pour les autres types de journaux contenant des champs que CloudWatch Logs Insights ne découvre pas automatiquement, vous pouvez utiliser la parse commande pour extraire et créer des champs extraits à utiliser dans cette requête. Pour de plus amples informations, veuillez consulter CloudWatch Syntaxe des requêtes en langage Logs Insights.

Si le nom d'un champ de journal découvert commence par le @ caractère, CloudWatch Logs Insights l'affiche avec un ajout @ ajouté au début. Par exemple, si un nom de champ de journal est @example.com, ce nom de champ s'affiche sous la forme de @@example.com.

Note

À l'exception de @message@timestamp, ou@log, vous pouvez créer des index de champs pour les champs découverts. Pour plus d'informations sur les index de champs, consultezCréez des index de champs pour améliorer les performances des requêtes et réduire le volume de numérisation.

Type de journal Champs de journal détectés

Journaux de flux Amazon VPC

@timestamp, @logStream, @message, accountId, endTime, interfaceId, logStatus, startTime, version, action, bytes, dstAddr, dstPort, packets, protocol, srcAddr, srcPort

Journaux Route 53

@timestamp, @logStream, @message, edgeLocation, ednsClientSubnet, hostZoneId, protocol, queryName, queryTimestamp, queryType, resolverIp, responseCode, version

Journaux Lambda

@timestamp, @logStream, @message, @requestId, @duration, @billedDuration, @type, @maxMemoryUsed, @memorySize

Si une ligne de journal Lambda contient un ID de suivi X-Ray, elle inclut également les champs suivants : @xrayTraceId et @xraySegmentId.

CloudWatch Logs Insights découvre automatiquement les champs de journal dans les journaux Lambda, mais uniquement pour le premier fragment JSON intégré à chaque événement de journal. Si un événement de journal Lambda contient plusieurs fragments JSON, vous pouvez analyser et extraire les champs de journal à l'aide de la commande parse. Pour de plus amples informations, veuillez consulter Champs des journaux JSON.

CloudTrail journaux

Journaux au format JSON

Pour plus d'informations, consultez Champs des journaux JSON.

Autres types de journaux

@timestamp, @ingestionTime, @logStream, @message, @log.

Champs des journaux JSON

Avec CloudWatch Logs Insights, vous utilisez la notation par points pour représenter les champs JSON. Cette section contient un exemple d'événement JSON et un extrait de code qui montre comment vous pouvez accéder aux champs JSON à l'aide de la notation par points.

Exemple : événement JSON

{ "eventVersion": "1.0", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn: aws: iam: : 123456789012: user/Alice", "accessKeyId": "EXAMPLE_KEY_ID", "accountId": "123456789012", "userName": "Alice" }, "eventTime": "2014-03-06T21: 22: 54Z", "eventSource": "ec2.amazonaws.com", "eventName": "StartInstances", "awsRegion": "us-east-2", "sourceIPAddress": "192.0.2.255", "userAgent": "ec2-api-tools1.6.12.2", "requestParameters": { "instancesSet": { "items": [ { "instanceId": "i-abcde123" } ] } }, "responseElements": { "instancesSet": { "items": [ { "instanceId": "i-abcde123", "currentState": { "code": 0, "name": "pending" }, "previousState": { "code": 80, "name": "stopped" } } ] } } }

L'exemple d'événement JSON contient un objet nommé userIdentity. userIdentity contient un champ nommé type. Pour représenter la valeur de type à l'aide de la notation par points, vous utilisez userIdentity.type.

L'exemple d'événement JSON contient des matrices qui s'aplatissent en listes de noms et de valeurs de champs imbriqués. Pour représenter la valeur de instanceId pour le premier élément de requestParameters.instancesSet, vous utilisez requestParameters.instancesSet.items.0.instanceId. Le numéro 0 placé avant le champ instanceID fait référence à la position des valeurs pour le champ items. L'exemple suivant contient un extrait de code qui montre comment vous pouvez accéder aux champs JSON imbriqués dans un événement du journal JSON.

Exemple : requête

fields @timestamp, @message | filter requestParameters.instancesSet.items.0.instanceId="i-abcde123" | sort @timestamp desc

L'extrait de code affiche une requête qui utilise la notation par points avec la commande filter pour accéder à la valeur du champ JSON imbriqué instanceId. La requête filtre les messages dont la valeur de instanceId équivaut à "i-abcde123" et renvoie tous les événements du journal contenant la valeur spécifiée.

Note

CloudWatch Logs Insights peut extraire un maximum de 200 champs d'événements de journal à partir d'un journal JSON. Pour les champs supplémentaires non extraits, vous pouvez utiliser la commande parse pour extraire ces champs à partir de l'événement du journal non analysé brut dans le champ de message. Pour plus d'informations sur la parse commande, consultez la section Syntaxe des requêtes dans le guide de CloudWatch l'utilisateur Amazon.