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.
filterIndex
Wird verwendet, filterIndex um nur indizierte Daten zurückzugeben, indem eine Abfrage erzwungen wird, nur Protokollgruppen zu scannen, die in einem Feld indiziert sind, das Sie in der Abfrage angeben. Für diese Protokollgruppen, die in diesem Feld indiziert sind, wird die Abfrage weiter optimiert, indem die Protokollgruppen übersprungen werden, die keine Protokollereignisse enthalten, die das in der Abfrage für das indizierte Feld angegebene Feld enthalten. Das gescannte Volumen wird weiter reduziert, indem versucht wird, nur Protokollereignisse aus diesen Protokollgruppen zu scannen, die dem in der Abfrage für diesen Feldindex angegebenen Wert entsprechen. Weitere Informationen zu Feldindizes und deren Erstellung finden Sie unterErstellen Sie Feldindizes, um die Abfrageleistung zu verbessern und das Scanvolumen zu reduzieren.
filterIndexMithilfe indizierter Felder können Sie Protokollgruppen, die Petabyte an Protokolldaten enthalten, effizient abfragen, indem Sie den tatsächlichen Suchbereich auf Protokollgruppen und Protokollereignisse mit Feldindizes beschränken.
Nehmen wir beispielsweise an, Sie haben einen Feldindex für einige der Protokollgruppen IPaddress in Ihrem Konto erstellt. Sie können dann die folgende Abfrage erstellen und alle Protokollgruppen im Konto abfragen, um nach Protokollereignissen zu suchen, die den Wert 198.51.100.0 im IPaddress Feld enthalten.
fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20
Der filterIndex Befehl veranlasst diese Abfrage, alle Protokollgruppen zu überspringen, für IPaddress die kein Index erstellt wurde. Darüber hinaus überspringt die Abfrage innerhalb der indexierten Protokollgruppen Protokollereignisse, die ein IPaddress Feld enthalten, aber nicht 198.51.100.0 als Wert für dieses Feld beobachtet wurden.
Verwenden Sie den IN Operator, um die Ergebnisse auf einen von mehreren Werten für die indizierten Felder zu erweitern. Im folgenden Beispiel werden Protokollereignisse gesucht, die entweder den Wert 198.51.100.0 oder das 198.51.100.1 IPaddress Feld enthalten.
fields @timestamp, @message | filterIndex IPaddress in ["198.51.100.0", "198.51.100.1"] | limit 20
CloudWatch Logs stellt Standardfeldindizes für alle Protokollgruppen in der Standard-Protokollklasse bereit. Standardfeldindizes sind automatisch für die folgenden Felder verfügbar:
-
@logStream -
@aws.region -
@aws.account -
@source.log -
@data_source_name -
@data_source_type -
@data_format -
traceId -
severityText -
attributes.session.id
CloudWatch Logs bietet auch Standardfeldindizes für bestimmte Kombinationen von Datenquellennamen und -typen. Standardfeldindizes sind automatisch für die folgenden Kombinationen aus Datenquellennamen und -typ verfügbar:
| Name und Typ der Datenquelle | Standard-Feldindizes |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Standardfeldindizes kommen zusätzlich zu allen benutzerdefinierten Feldindizes hinzu, die Sie in Ihrer Richtlinie definieren. Standardfeldindizes werden nicht auf Ihr Feldindexkontingent angerechnet.
FilterIndex im Vergleich zum Filter
Betrachten Sie die folgenden Beispielabfragenfilter, um den Unterschied zwischen filterIndex und zu veranschaulichen. Angenommen, Sie haben einen Feldindex für IPaddress vier Ihrer Protokollgruppen erstellt, nicht jedoch für eine fünfte Protokollgruppe. Wenn Sie die folgende Abfrage verwenden, filterIndex wird das Scannen der Protokollgruppe übersprungen, für die das Feld nicht indexiert ist. Für jede indizierte Protokollgruppe wird versucht, nur Protokollereignisse zu scannen, die das indizierte Feld enthalten, und es werden auch nur Ergebnisse zurückgegeben, die nach der Erstellung des Feldindex entstanden sind.
fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20
Wenn Sie filter stattdessen statt filterIndex für eine Abfrage derselben fünf Protokollgruppen verwenden, versucht die Abfrage, nicht nur die Protokollereignisse zu scannen, die den Wert in den indizierten Protokollgruppen enthalten, sondern auch die fünfte Protokollgruppe zu scannen, die nicht indexiert ist, und sie scannt jedes Protokollereignis in dieser fünften Protokollgruppe.
fields @timestamp, @message | filter IPaddress = "198.51.100.0" | limit 20