Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Unterstützte Protokolle und erkannte Felder
CloudWatch Logs Insights unterstützt verschiedene Protokolltypen. Für jedes Protokoll, das an eine Protokollgruppe der Standardklasse in Amazon CloudWatch Logs gesendet wird, generiert CloudWatch Logs Insights automatisch fünf Systemfelder:
-
@message
enthält das rohe, unverarbeitete Protokollereignis. Dies entspricht demmessage
Feld in InputLogevent. -
@timestamp
enthält den Ereignis-Zeitstempel imtimestamp
-Feld des Protokollereignisses. Dies entspricht demtimestamp
Feld in InputLogevent. -
@ingestionTime
enthält die Uhrzeit, zu der CloudWatch Logs das Protokollereignis empfangen hat. -
@logStream
enthält den Namen des Protokoll-Streams, zu dem das Protokollereignis hinzugefügt wurde. Protokolldatenstromgruppen werden nach demselben Prozess protokolliert, der sie generiert hat. -
@log
ist ein Protokollgruppen-Bezeichner im folgenden Format:
Beim Abfragen mehrerer Protokollgruppen kann dies nützlich sein, um zu bestimmen, zu welcher Protokollgruppe ein bestimmtes Ereignis gehört.account-id
:log-group-name
-
@entity
enthält vereinfachtes JSON-Format, das sich auf Entitäten bezieht, für die Telemetriefunktion im Zusammenhang mit Explore.Diese JSON-Datei kann beispielsweise eine Entität darstellen.
{ "Entity": { "KeyAttributes": { "Type": "Service", "Name": "PetClinic" }, "Attributes": { "PlatformType": "AWS::EC2", "EC2.InstanceId": "i-1234567890123" } } }
Für diese Entität wären die extrahierten Systemfelder die folgenden:
@entity.KeyAttributes.Type = Service @entity.KeyAttributes.Name = PetClinic @entity.Attributes.PlatformType = AWS::EC2 @entity.Attributes.EC2.InstanceId = i-1234567890123
Anmerkung
Die Felderkennung wird nur für Protokollgruppen in der Standard-Protokollklasse unterstützt. Weitere Hinweise zu Protokollklassen finden Sie unterKlassen protokollieren.
CloudWatch Logs Insights fügt das @-Symbol am Anfang der generierten Felder ein.
Bei vielen Protokolltypen erkennt CloudWatch Logs auch automatisch die in den Protokollen enthaltenen Protokollfelder. Diese automatischen Suchfelder sind in der folgenden Tabelle dargestellt.
Bei anderen Protokolltypen mit Feldern, die CloudWatch Logs Insights nicht automatisch erkennt, können Sie den parse
Befehl verwenden, um extrahierte Felder für die Verwendung in dieser Abfrage zu extrahieren und zu erstellen. Weitere Informationen finden Sie unter CloudWatch Abfragesyntax in Logs Insights.
Wenn der Name eines erkannten Protokollfeldes mit dem @
Zeichen beginnt, zeigt CloudWatch Logs Insights es mit einem zusätzlichen Zeichen an, das am Anfang @
angehängt wird. Wenn z. B. ein Protokollfeldname @example.com
lautet, wird dieser Feldname als @@example.com
angezeigt.
Anmerkung
Mit Ausnahme von @message
@timestamp
@log
, oder können Sie Feldindizes für entdeckte Felder erstellen. Weitere Hinweise zu Feldindizes finden Sie unter. Erstellen Sie Feldindizes, um die Abfrageleistung zu verbessern und das Scanvolumen zu reduzieren
Protokolltyp | Erkannte Protokollfelder |
---|---|
Amazon VPC-Flussprotokolle |
|
Route-53-Protokolle |
|
Lambda-Protokolle |
Wenn eine Lambda-Protokollzeile eine X–Ray-Trace-ID enthält, enthält sie auch die folgenden Felder: CloudWatch Logs Insights erkennt automatisch Protokollfelder in Lambda-Protokollen, jedoch nur für das erste eingebettete JSON-Fragment in jedem Protokollereignis. Wenn ein Lambda-Protokollereignis mehrere JSON-Fragmente enthält, können Sie die Protokollfelder mit dem |
CloudTrail Logs Protokolle im JSON-Format |
Weitere Informationen finden Sie unter Felder in JSON-Protokollen. |
Andere Protokolltypen |
|
Felder in JSON-Protokollen
Mit CloudWatch Logs Insights verwenden Sie die Punktnotation zur Darstellung von JSON-Feldern. Dieser Abschnitt enthält ein Beispiel für ein JSON-Ereignis und ein Code-Snippet, die Ihnen zeigen, wie Sie mit der Punktnotation auf JSON-Felder zugreifen können.
Example: JSON event (Beispiel: JSON-Ereignis)
{ "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" } } ] } } }
Das JSON-Beispielereignis enthält ein Objekt namens userIdentity
. userIdentity
enthält ein Feld namens type
. Um den Wert von type
mit Punktnotation darzustellen, verwenden Sie userIdentity.type
.
Das JSON-Beispielereignis enthält Arrays, die sich zu Listen mit verschachtelten Feldnamen und Werten vereinfachen lassen. Verwenden Sie requestParameters.instancesSet.items.0.instanceId
, um den Wert von instanceId
für das erste Element in requestParameters.instancesSet
darzustellen. Die Zahl 0
, die vor dem Feld instanceID
platziert ist, bezieht sich auf die Position von Werten für das Feld items
. Das folgende Beispiel enthält ein Code-Snippet, das zeigt, wie Sie in einem JSON-Protokollereignis auf verschachtelte JSON-Felder zugreifen können.
Beispiel: Abfrage
fields @timestamp, @message | filter requestParameters.instancesSet.items.0.instanceId="i-abcde123" | sort @timestamp desc
Der Code-Ausschnitt zeigt eine Abfrage, die Punktnotation mit dem Befehl filter
verwendet, um auf den Wert des verschachtelten JSON-Felds instanceId
zuzugreifen. Die Abfrage filtert nach Nachrichten, bei denen der Wert von instanceId
"i-abcde123"
entspricht, und gibt alle Protokollereignisse zurück, die den angegebenen Wert enthalten.
Anmerkung
CloudWatch Logs Insights kann maximal 200 Protokollereignisfelder aus einem JSON-Protokoll extrahieren. Zusätzliche Felder, die nicht extrahiert werden, können Sie mit dem Befehl parse
aus dem nicht analysierten Protokollereignis im Nachrichtenfeld extrahieren. Weitere Informationen zu dem parse
Befehl finden Sie unter Abfragesyntax im CloudWatch Amazon-Benutzerhandbuch.