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.
Filtermustersyntax für Metrikfilter, Abonnementfilter, Filterprotokollereignisse und Live Tail
Anmerkung
Informationen darüber, wie Sie Ihre Protokollgruppen mit der Abfragesprache von Amazon CloudWatch Logs Insights abfragen, finden Sie unterCloudWatch Syntax der Logs Insights-Abfrage.
Mit CloudWatch Logs können Sie Metrikfilter verwenden, um Protokolldaten in aussagekräftige Metriken umzuwandeln, Abonnementfilter, um Protokollereignisse an andere AWS Dienste weiterzuleiten, Protokollereignisse filtern, um nach Protokollereignissen zu suchen, und Live Tail, um Ihre Protokolle interaktiv in Echtzeit anzuzeigen, während sie aufgenommen werden.
Filtermuster bilden die Syntax, die Metrikfilter, Abonnementfilter, Filterprotokollereignisse und Live Tail verwenden, um Begriffe in Protokollereignissen zu finden. Begriffe können Wörter, exakte Phrasen oder numerische Werte sein. Reguläre Ausdrücke (Regex) können verwendet werden, um eigenständige Filtermuster zu erstellen, oder sie können in JSON- und durch Leerzeichen getrennte Filtermuster integriert werden.
Erstellen Sie Filtermuster mit den Begriffen, die Sie abgleichen möchten. Filtermuster geben nur die Protokollereignisse zurück, die die von Ihnen definierten Begriffe enthalten. Sie können Filtermuster in der Konsole testen. CloudWatch
Themen
- Unterstützte Syntax für reguläre Ausdrücke (Regex)
- Verwenden von Filtermustern zum Abgleichen von Begriffen mit einem regulären Ausdruck (Regex)
- Verwenden von Filtermustern zum Abgleichen von Begriffen in unstrukturierten Protokollereignissen
- Verwenden von Filtermustern zum Abgleichen von Begriffen in JSON-Protokollereignissen
- Verwenden von Filtermustern, um Begriffe in Leerzeichen-getrennten Protokollereignissen abzugleichen
Unterstützte Syntax für reguläre Ausdrücke (Regex)
Wenn Sie Regex zum Suchen und Filtern von Protokolldaten verwenden, müssen Sie Ihre Ausdrücke mit %
umgeben.
Filtermuster mit Regex können nur Folgendes enthalten:
Alphanumerische Zeichen – Ein alphanumerisches Zeichen ist ein Zeichen, das entweder ein Buchstabe (von A bis Z oder A bis Z) oder eine Ziffer (von 0 bis 9) ist.
Unterstützte Symbolzeichen – Dazu gehören: '
_
', '#
', '=
', '@
','/
', ';
', ',
' und '-
'.%something!%
würde beispielsweise abgelehnt werden, da '!
' nicht unterstützt wird.Unterstützte Operatoren – Dazu gehören: '
^
', '$
', '?
', '[
', ']
', '{
', '}
', '|
', '\
', '*
', '+
' und '.
'.
Die Operatoren (
und )
werden nicht unterstützt. Sie dürfen keine Klammern verwenden, um ein Untermuster zu definieren.
Multi-Byte-Zeichen werden nicht unterstützt.
Anmerkung
Kontingente
Bei der Erstellung von metrischen Filtern oder Abonnementfiltern können Sie für jede Protokollgruppe maximal 5 Filtermuster mit Regex verwenden.
Es gibt ein Limit von 2 Regex für jedes Filtermuster, wenn Sie ein abgegrenztes oder JSON-Filtermuster für metrische Filter und Abonnementfilter erstellen oder wenn Sie Protokollereignisse oder Live Tail filtern.
Verwendung unterstützter Operatoren
^
: Verankert die Übereinstimmung am Anfang einer Zeichenfolge. Beispielsweise stimmt%^[hc]at%
mit „hat“ und „cat“ überein, aber nur am Anfang einer Zeichenfolge.$
: Verankert die Übereinstimmung am Ende einer Zeichenfolge. Beispielsweise stimmt%[hc]at$%
mit „hat“ und „cat“ überein, aber nur am Ende einer Zeichenfolge.?
: Entspricht null oder mehr Instanzen des vorherigen Begriffs. So kann%colou?r%
sowohl mit „color“ als auch „colour“ übereinstimmen.[]
: Definiert eine Zeichenklasse. Gleicht die Zeichenliste oder den Zeichenbereich innerhalb der Klammern ab. Zum Beispiel stimmt%[abc]%
mit „a“, „b“ oder „c“ überein;%[a-z]%
stimmt mit jedem Kleinbuchstaben von „a“ bis „z“ überein; und%[abcx-z]%
stimmt mit „a“, „b“, „c“, „x“, „y“ oder „z“ überein.{m, n}
: Gleicht den vorhergehenden Begriff mindestens mit m-mal ab, aber nicht öfter als n-mal.%a{3,5}%
stimmt beispielsweise nur mit „aaa“, „aaaa“ und „aaaaa“ überein.Anmerkung
Entweder m oder n können weggelassen werden, wenn Sie kein Minimum oder Maximum definieren möchten.
|
: Boolesches „Oder“, das den Begriff auf beiden Seiten des senkrechten Balkens abgleicht.%gra|ey%
stimmt beispielsweise mit „gray“ oder „grey“ überein.Anmerkung
Ein Begriff besteht aus einem einzelnen Zeichen oder einer sich wiederholenden Zeichenklasse, die einen der folgenden Operatoren verwendet:
?
,*
,+
oder{n,m}
.\
: Escape-Zeichen, mit dem Sie die wörtliche Bedeutung eines Operators anstelle seiner speziellen Bedeutung verwenden können. Zum Beispiel stimmt%\[.\]%
mit jedem einzelnen Zeichen überein, das von [ und ] umgeben ist, da die Klammern ausgestellt sind, wie [a], [b], [7], [@], []] und [ ].Anmerkung
%10\.10\.0\.1%
ist die richtige Methode, um eine Regex zu erstellen, die der IP-Adresse 10.10.0.1 entspricht.*
: Entspricht null oder mehr Instanzen des vorhergehenden Begriffs. So kann%ab*c%
beispielsweise mit „ac“, „abc“ und „abbbc“ übereinstimmen;%ab[0-9]*%
kann mit „ab“, „ab0“ und „ab129“ übereinstimmen.+
: Entspricht einer oder mehreren Instanzen des vorhergehenden Begriffs.%ab+c%
kann beispielsweise mit „abc“, „abbc“ und „abbbc“ übereinstimmen, aber nicht mit „ac“..
: Stimmt mit einem beliebigen Einzelzeichen überein. Zum Beispiel stimmt%.at%
mit jeder Zeichenfolge mit drei Zeichen überein, die mit „at“ endet, einschließlich „hat“, „cat“, „bat“, „4at“, „#at“ und „ at“ (beginnend mit einem Leerzeichen).Anmerkung
Wenn Sie eine Regex erstellen, die IP-Adressen abgleicht, ist es wichtig, den Operator
.
auszustellen. Beispielsweise kann%10.10.0.1%
mit „10010,051“ übereinstimmen, was möglicherweise nicht der eigentliche Verwendungszweck des Ausdrucks ist.\d
,\D
: Stimmt mit einer Ziffer bzw. einem Zeichen überein, das keine Ziffer ist. Beispielsweise stimmt%\d%
mit%[0-9]%
überein und%\D%
mit%[^0-9]%
.Anmerkung
Der Operator in Großbuchstaben bezeichnet die Umkehrung seines Gegenstücks in Kleinbuchstaben.
\s
,\S
: Stimmt mit einem Leerraumzeichen/einem Nicht-Leerraumzeichen überein.Anmerkung
Der Operator in Großbuchstaben bezeichnet die Umkehrung seines Gegenstücks in Kleinbuchstaben. Zu den Leerraumzeichen gehören Tabulatorzeichen (
\t
), Leerzeichen (\n
).\w
,\W
: Stimmt mit einem alphanumerischen Zeichen/einem nicht-alphanumerischen Zeichen überein. Beispielsweise stimmt%\w%
mit%[a-zA-Z_0-9]%
überein und%\W%
mit%[^a-zA-Z_0-9]%
.Anmerkung
Der Operator in Großbuchstaben bezeichnet die Umkehrung seines Gegenstücks in Kleinbuchstaben.
\xhh
: Stimmt mit der ASCII-Zuordnung für ein zweistelliges hexadezimales Zeichen überein.\x
ist die Escape-Sequenz, die angibt, dass die folgenden Zeichen den hexadezimalen Wert für ASCII darstellen.hh
gibt die beiden hexadezimalen Ziffern (0–9 und A–F) an, die auf ein Zeichen in der ASCII-Tabelle zeigen.Anmerkung
Sie können
\xhh
verwenden, um nach Symbolzeichen zu suchen, die vom Filtermuster nicht unterstützt werden. Beispielsweise stimmt%\x3A%
mit:
überein und%\x28%
mit(
.
Verwenden von Filtermustern zum Abgleichen von Begriffen mit einem regulären Ausdruck (Regex)
Sie können Begriffe in Ihren Protokollereignissen mit einem Regex-Muster abgleichen, das von %
(Prozentzeichen vor und nach dem Regex-Muster) umgeben ist. Der folgende Codeauszug zeigt ein Beispiel für ein Filtermuster, das alle Protokollereignisse mit dem Schlüsselwort AUTHORIZED zurückgibt.
Eine Liste der unterstützten regulären Ausdrücke finden Sie unter Unterstützte reguläre Ausdrücke.
%AUTHORIZED%
Dieses Filtermuster gibt Protokollereignismeldungen wie die folgenden zurück:
[ERROR 401] UNAUTHORIZED REQUEST
[SUCCESS 200] AUTHORIZED REQUEST
Verwenden von Filtermustern zum Abgleichen von Begriffen in unstrukturierten Protokollereignissen
Die folgenden Beispiele enthalten Codeauszüge, die zeigen, wie Sie Filtermuster verwenden können, um Begriffe in Ihren unstrukturierten Protokollereignissen abzugleichen.
Anmerkung
Filtermuster beachten die Groß-/Kleinschreibung. Schließen Sie exakte Phrasen und Begriffe, die nicht alphanumerische Zeichen enthalten, in doppelte Anführungszeichen ("") ein.
Verwenden von Filtermustern zum Abgleichen von Begriffen in JSON-Protokollereignissen
Im Folgenden wird beschrieben, wie Sie die Syntax für Filtermuster schreiben, die mit JSON-Begriffen übereinstimmen, die Zeichenfolgen und numerische Werte enthalten.
Die folgenden Beispiele enthalten Codeauszüge, die zeigen, wie Filtermuster Begriffe in einem JSON-Protokollereignis abgleichen können.
Anmerkung
Wenn Sie die Beispielfiltermuster mit dem Beispiel-JSON-Protokollereignis testen, müssen Sie das Beispiel-JSON-Protokoll in einer einzigen Zeile eingeben.
JSON-Protokollereignis
{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null, "cluster.name": "c" }
Sie können die logischen Operatoren AND („&&“) und OR („||“) in Filtermustern verwenden, um zusammengesetzte Ausdrücke zu erstellen, die Protokollereignisse abgleichen, bei denen zwei oder mehr Bedingungen erfüllt sind. Zusammengesetzte Ausdrücke unterstützen die Verwendung von Klammern („()“) und die folgende Standardreihenfolge von Operationen: () > && > ||. Die folgenden Beispiele enthalten Codeauszüge, die zeigen, wie Sie Filtermuster mit zusammengesetzten Ausdrücken verwenden können, um Begriffe in einem JSON-Objekt abzugleichen.
JSON-Objekt
{ "user": { "id": 1, "email": "John.Stiles@example.com" }, "users": [ { "id": 2, "email": "John.Doe@example.com" }, { "id": 3, "email": "Jane.Doe@example.com" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ] }
Verwenden von Filtermustern, um Begriffe in Leerzeichen-getrennten Protokollereignissen abzugleichen
Sie können Filtermuster verwenden, um Begriffe in Leerzeichen-getrennten Protokollereignissen abzugleichen. Im Folgenden finden Sie ein Beispiel für ein durch Leerzeichen getrenntes Protokollereignis und es wird beschrieben, wie die Syntax für Filtermuster geschrieben wird, die Begriffe im Leerzeichen-getrennten Protokollereignis abgleichen.
Anmerkung
Sie können jeden bedingten regulären Ausdruck verwenden, wenn Sie Filtermuster erstellen, um Begriffe in Leerzeichen-getrennten Protokollereignissen abzugleichen. Eine Liste der unterstützten regulären Ausdrücke finden Sie unter Unterstützte reguläre Ausdrücke.
Sie können den Musterabgleich verwenden, um Leerzeichen-getrennte Filtermuster zu erstellen, die Begriffe in einer bestimmten Reihenfolge abgleichen. Geben Sie die Reihenfolge Ihrer Begriffe mit Indikatoren an. Verwenden Sie w1 für den ersten Begriff, w2 für den zweiten und so weiter, um die Reihenfolge der Begriffe abzubilden. Platzieren Sie Kommas („,“) zwischen Ihren Begriffen. Die folgenden Beispiele enthalten Codeauszüge, die zeigen, wie Sie den Musterabgleich mit Leerzeichen-getrennten Filtermustern verwenden können.
Anmerkung
Sie können jeden bedingten regulären Ausdruck verwenden, wenn Sie Filtermuster erstellen, um Begriffe in Leerzeichen-getrennten Protokollereignissen abzugleichen. Eine Liste der unterstützten regulären Ausdrücke finden Sie unter Unterstützte reguläre Ausdrücke.
Beispiel: Leerzeichen-getrenntes Protokollereignis
INFO 09/25/2014 12:00:00 GET /service/resource/67 1200 INFO 09/25/2014 12:00:01 POST /service/resource/67/part/111 1310 WARNING 09/25/2014 12:00:02 Invalid user request ERROR 09/25/2014 12:00:02 Failed to process request