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.
Filter
Verwenden Sie filter
, um Protokollereignisse abzurufen, die einer oder mehreren Bedingungen entsprechen.
Beispiel: Filtern von Protokollereignissen mithilfe einer Bedingung
Das Code-Snippet zeigt ein Beispiel für eine Abfrage, die alle Protokollereignisse zurückgibt, deren Wert für range
größer als 3 000 ist. Die Abfrage begrenzt die Ergebnisse auf 20 Protokollereignisse und sortiert die Protokollereignisse nach @timestamp
und in absteigender Reihenfolge.
fields @timestamp, @message | filter (range>3000) | sort @timestamp desc | limit 20
Beispiel: Filtern von Protokollereignissen mit mehr als einer Bedingung
Sie können die Schlüsselwörter and
und or
verwenden, um mehr als eine Bedingung zu kombinieren.
Der Codeausschnitt zeigt ein Beispiel für Protokollereignisse, bei denen der Wert für range
größer als 3 000 und der Wert für accountId
gleich 123 456 789 012 ist. Die Abfrage begrenzt die Ergebnisse auf 20 Protokollereignisse und sortiert die Protokollereignisse nach @timestamp
und in absteigender Reihenfolge.
fields @timestamp, @message | filter (range>3000 and accountId=123456789012) | sort @timestamp desc | limit 20
Indizierte Felder und der Filterbefehl
Wenn Sie Feldindizes für eine Protokollgruppe erstellt haben, können Sie diese Feldindizes nutzen, um Ihre filter
Abfragen effizienter zu gestalten und das gescannte Volumen zu reduzieren. Nehmen wir beispielsweise an, Sie haben einen Feldindex für erstellt. requestId
Dann jede CloudWatch Logs Insights-Abfrage für diese Protokollgruppe, die Protokollereignisse enthält filter requestId =
oder versucht, value
filter requestId IN [
die Verarbeitung von Protokollereignissen zu überspringen, von denen bekannt ist, dass sie das indizierte Feld nicht enthalten. Wenn Sie versuchen, nur die Protokollereignisse zu scannen, von denen bekannt ist, dass sie dieses indizierte Feld enthalten, kann das Scanvolumen reduziert und die Abfrage beschleunigt werden.value
, value
, ...]
Weitere Informationen zu Feldindizes und deren Erstellung finden Sie unter. Erstellen Sie Feldindizes, um die Abfrageleistung zu verbessern und das Scanvolumen zu reduzieren
Wichtig
Nur Abfragen mit filter
und fieldName
=...filter
profitieren von den Verbesserungen des Feldindexes. Abfragen mit verwenden fieldName
IN...filter
keine Indizes und scannen immer alle Protokollereignisse in den ausgewählten Protokollgruppen.fieldName
like
Beispiel: Suchen Sie mithilfe von Indizes nach Protokollereignissen, die sich auf eine bestimmte Anforderungs-ID beziehen
In diesem Beispiel wird davon ausgegangen, dass Sie einen Feldindex für erstellt haben. requestId
Bei Protokollgruppen, die diesen Feldindex verwenden, versucht die Abfrage anhand von Feldindizes, die geringste Anzahl von Protokollereignissen nach Ereignissen requestId
mit einem Wert von zu durchsuchen 123456
fields @timestamp, @message | filter requestId = "1234656" | limit 20
Übereinstimmungen und Reguläre Ausdrücke im Filterbefehl
Der Filterbefehl unterstützt die Verwendung regulärer Ausdrücke. Sie können die folgenden Vergleichsoperatoren (=
, !=
, <
, <=
, >
, >=
) und Booleschen Operatoren (and
, or
und not
) verwenden.
Sie können das Schlüsselwort in
verwenden, um auf eine festgelegte Mitgliedschaft zu testen und auf Elemente in einem Array zu prüfen. Platzieren Sie das Array nach in
, um auf Elemente in einem Array zu prüfen. Sie können den Booleschen Operator not
mit in
verwenden. Sie können Abfragen erstellen, die in
verwenden, um Protokollereignisse zurückzugeben, die mit Zeichenfolgen übereinstimmen. Die Felder müssen vollständige Zeichenfolgen sein. Der folgende Codeausschnitt zeigt beispielsweise eine Abfrage, die in
verwendet, um Protokollereignisse zurückzugeben, wobei das Feld logGroup
die vollständige Zeichenfolge example_group
ist.
fields @timestamp, @message | filter logGroup in ["example_group"]
Sie können die Schlüsselwortausdrücke like
und not like
für den Abgleich mit Teilzeichenfolgen verwenden. Sie können den Operator für reguläre Ausdrücke =~
für den Abgleich mit Teilzeichenfolgen verwenden. Schließen Sie für den Abgleich einer Teilzeichenfolge mit like
und not like
die Teilzeichenfolge, die abgeglichen werden soll, in einfache oder doppelte Anführungszeichen ein. Sie können Muster von regulären Ausdrücken mit like
und not like
verwenden. Um eine Teilzeichenfolge mit dem Operator für reguläre Ausdrücke abzugleichen, schließen Sie die Teilzeichenfolge, die Sie abgleichen möchten, in Schrägstriche ein. Die folgenden Beispiele enthalten Code-Snippets, die zeigen, wie Sie Teilzeichenfolgen mit dem Befehl filter
abgleichen können.
Beispiele: Abgleich von Teilzeichenfolgen
Die folgenden drei Beispiele geben Protokollereignisse zurück, bei denen f1
das Wort Exception (Ausnahme) enthält. Bei allen drei Beispielen muss die Groß-/Kleinschreibung beachtet werden.
Das erste Beispiel gleicht eine Teilzeichenfolge mit like
ab.
fields f1, f2, f3 | filter f1 like "Exception"
Das zweite Beispiel gleicht eine Teilzeichenfolge mit like
und einem Muster von regulären Ausdrücken ab.
fields f1, f2, f3 | filter f1 like /Exception/
Das dritte Beispiel gleicht eine Teilzeichenfolge mit einem regulären Ausdruck ab.
fields f1, f2, f3 | filter f1 =~ /Exception/
Beispiel: Abgleichen von Teilzeichenfolgen mit Platzhaltern
Sie können das Punktsymbol (.
) als Platzhalter in regulären Ausdrücken verwenden, um Teilzeichenfolgen abzugleichen. Im folgenden Beispiel gibt die Abfrage Übereinstimmungen zurück, bei denen der Wert für f1
mit der Zeichenfolge ServiceLog
beginnt.
fields f1, f2, f3 | filter f1 like /ServiceLog./
Sie können ein Sternchen nach dem Punktsymbol (.*
) platzieren, um einen gierigen Quantifizierer zu erstellen, der so viele Übereinstimmungen wie möglich zurückgibt. Beispielsweise gibt die folgende Abfrage Übereinstimmungen zurück, bei denen der Wert für f1
nicht nur mit der Zeichenfolge ServiceLog
beginnt, sondern auch die Zeichenfolge ServiceLog
beinhaltet.
fields f1, f2, f3 | filter f1 like /ServiceLog.*/
Mögliche Übereinstimmungen können wie folgt formatiert werden:
-
ServiceLogSampleApiLogGroup
-
SampleApiLogGroupServiceLog
Beispiel: Ausschließen von Teilzeichenfolgen aus Abgleichen
Das folgende Beispiel zeigt eine Abfrage, die Protokollereignisse zurückgibt, bei denen f1
nicht das Wort Exception (Ausnahme) enthält. Das Beispiel berücksichtigt Groß- und Kleinschreibung.
fields f1, f2, f3 | filter f1 not like "Exception"
Beispiel: Abgleichen von Teilzeichenfolgen mit Mustern, die Groß- und Kleinschreibung nicht berücksichtigen
Sie können Teilzeichenfolgen, bei denen die Groß-/Kleinschreibung nicht beachtet wird, mit like
und regulären Ausdrücken abgleichen. Platzieren Sie den folgenden Parameter (?i) vor der Teilzeichenfolge, die Sie abgleichen möchten. Das folgende Beispiel zeigt eine Abfrage, die Protokollereignisse zurückgibt, bei denen f1
das Wort Exception (Ausnahme) oder exception (ausnahme) enthält.
fields f1, f2, f3 | filter f1 like /(?i)Exception/