Verwenden von Filtermustern zum Abgleichen von Begriffen in JSON-Protokollereignissen - CloudWatch Amazon-Protokolle

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.

Verwenden von Filtermustern zum Abgleichen von Begriffen in JSON-Protokollereignissen

Verwenden Sie JSON-Filtermuster, wenn Ihre Logs im JSON-Format strukturiert sind. Mit diesen Mustern können Sie auf bestimmte Felder und Werte innerhalb von JSON-Objekten abzielen. Sie eignen sich daher ideal für:

  • Anwendungsprotokolle: Zielt auf bestimmte Ereignistypen IDs, Benutzer- oder Fehlercodes ab

  • AWS Serviceprotokolle: Filter CloudTrail, VPC-Flow-Logs oder andere strukturierte AWS Logs

  • Microservices: Überwachen Sie containerisierte Anwendungen, die strukturiertes JSON ausgeben

Wird beispielsweise verwendet, um bestimmte CloudTrail Ereignisse { $.eventType = "UpdateTrail" } zu finden oder { $.sourceIPAddress != 123.123.* } um Traffic aus unerwarteten IP-Bereichen zu identifizieren.

Erweitern Sie die folgenden Abschnitte und durchsuchen Sie die Registerkarten, um Beispiele zu finden, die zeigen, wie Sie JSON-Filtermuster für gängige Überwachungsszenarien erstellen können, von einfachen Mustern mit nur einer Bedingung bis hin zu komplexen zusammengesetzten Ausdrücken.

Die folgenden Beispiele zeigen, wie Filtermuster mit JSON-Protokollereignissen in gängigen Überwachungs- und Problembehandlungsszenarien verwendet werden. Jedes Beispiel enthält die Syntax von Filtermustern und praktische Anwendungsfälle, in denen Sie sie anwenden würden.

Diese Muster funktionieren mit allen JSON-formatierten Protokollen von Anwendungen, AWS Diensten, Containern oder benutzerdefinierten Systemen. Sie können sie mit Metrikfiltern verwenden, um CloudWatch Metriken zu erstellen, mit Abonnementfiltern, um Protokolle an andere Dienste weiterzuleiten, oder mit Live Tail, um Protokolle in Echtzeit zu überwachen.

Anmerkung

Wenn Sie die Beispielfiltermuster mit dem Beispiel-JSON-Protokollereignis testen, müssen Sie das Beispiel-JSON-Protokoll in einer einzigen Zeile eingeben.

Beispiel für ein JSON-Protokollereignis zum Testen:

{ "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" }
Monitor application events by type

Verfolgen Sie bestimmte Ereignistypen in Ihren JSON-Anwendungsprotokollen, um das Systemverhalten zu überwachen.

Filtermuster:

{ $.eventType = "UpdateTrail" }

Anwendungsfälle:

  • Anwendungsüberwachung: Verfolgen Sie bestimmte Benutzeraktionen oder Systemereignisse

  • Geschäftsanalysen: Zählen Sie das Auftreten bestimmter Ereignistypen

  • Fehlerbehebung: Konzentrieren Sie sich bei der Untersuchung von Problemen auf bestimmte Vorgänge

Dieses Muster funktioniert mit allen JSON-Protokollen, die ein EventType-Feld enthalten, wie zum Beispiel:

  • Anwendungsprotokolle: {"eventType": "UserLogin", "userId": "123"}

  • Systemprotokolle: {"eventType": "ConfigUpdate", "component": "database"}

  • API-Protokolle: {"eventType": "UpdateTrail", "source": "cloudtrail"}

Block suspicious IP addresses

Identifizieren Sie für die Sicherheitsüberwachung Datenverkehr, der nicht den erwarteten IP-Adressmustern entspricht.

Filtermuster:

{ $.sourceIPAddress != 123.123.* }

Anwendungsfälle:

  • Sicherheitsüberwachung: Finden Sie Anfragen aus unerwarteten IP-Bereichen

  • Zugriffskontrolle: Überwachen Sie den Verkehr außerhalb Ihres Unternehmensnetzwerks

  • Bedrohungserkennung: Identifizieren Sie potenzielle unbefugte Zugriffsversuche

Track specific application events

Überwachen Sie bestimmte Werte in JSON-Arrays, um das Anwendungsverhalten und die Benutzeraktionen zu verfolgen.

Filtermuster:

{ $.arrayKey[0] = "value" }

Anwendungsfälle:

  • Nachverfolgung des Benutzerverhaltens: Überwachen Sie bestimmte Benutzeraktionen in Anwendungsprotokollen

  • Nutzung von Funktionen: Verfolgen Sie, wann bestimmte Anwendungsfunktionen verwendet werden

  • Fehleranalyse: Finden Sie Protokolle mit bestimmten Fehlerkategorien in Arrays

Find events using pattern matching

Verwenden Sie Regex-Muster, um Ereignisse mit flexiblem Abgleich für Feldwerte zu finden.

Filtermuster:

{ $.eventType = %Trail% }

Anwendungsfälle:

  • Flexibles Event-Tracking: Finden Sie alle Ereignisse mit bestimmten Textmustern

  • API-Überwachung: Verfolgen Sie API-Familien, ohne genaue Namen anzugeben

  • Protokollanalyse: Suchen Sie nach teilweisen Übereinstimmungen in den Namen oder Beschreibungen von Ereignissen

Monitor application data with wildcards

Verwenden Sie Platzhalter und Regex, um bestimmte Muster in einem beliebigen Array-Element zu finden.

Filtermuster:

{ $.arrayKey[*] = %val.{2}% }

Anwendungsfälle:

  • Datenvalidierung: Finden Sie Arrays mit Werten, die bestimmten Mustern entsprechen

  • Inhaltsfilterung: Überwachen Sie benutzergenerierte Inhalte auf bestimmte Muster

  • Qualitätssicherung: Verfolgen Sie die Einhaltung der Datenformate in allen Anwendungsprotokollen

Track network traffic patterns

Überwachen Sie IP-Adressen innerhalb bestimmter Bereiche mithilfe von Regex-Mustern und Platzhaltern.

Filtermuster:

{ $.* = %111\.111\.111\.1[0-9]{1,2}% }

Anwendungsfälle:

  • Netzwerküberwachung: Verfolgen Sie den Verkehr von bestimmten IP-Subnetzen

  • Sicherheitsanalyse: Überwachen Sie den Zugriff aus bestimmten Netzwerkbereichen

  • Lastenausgleich: Analysieren Sie die Verkehrsverteilung über IP-Bereiche

Anmerkung

Kontingente

Sie können in einem Eigenschaftenselektor nur bis zu einen Platzhalter-Selektor verwenden.

Handle JSON properties with special characters

Greifen Sie auf JSON-Eigenschaften zu, deren Namen Punkte oder andere Sonderzeichen enthalten.

Filtermuster:

{ $.['cluster.name'] = "c" }

Anwendungsfälle:

  • Kubernetes-Überwachung: Verfolgen Sie Clusternamen in Container-Logs

  • Konfigurationsverfolgung: Überwachen Sie Einstellungen mit punktierten Eigenschaftsnamen

  • Integration von Drittanbietern: Behandeln Sie Protokolle von Systemen mithilfe spezieller Benennungskonventionen

Find null or missing values

Achten Sie auf fehlende Daten oder Nullwerte, die auf Anwendungsprobleme hinweisen könnten.

Filtermuster:

{ $.SomeObject IS NULL }

Anwendungsfälle:

  • Überwachung der Datenqualität: Finden Sie Datensätze, bei denen Pflichtfelder fehlen

  • Anwendungsdebugging: Verfolgen Sie, wenn die erwarteten Daten nicht vorhanden sind

  • Fehlererkennung: Achten Sie auf unvollständige API-Antworten oder Datenbankabfragen

Detect missing configuration fields

Suchen Sie nach Protokollen, in denen die erwarteten Felder vollständig fehlen, was auf Konfigurationsprobleme hinweisen kann.

Filtermuster:

{ $.SomeOtherObject NOT EXISTS }

Anwendungsfälle:

  • Überprüfung der Konfiguration: Stellen Sie sicher, dass alle erforderlichen Felder in den Protokollen vorhanden sind

  • API-Überwachung: Verfolgen Sie unvollständige Anfragen oder Antworten

  • Überwachung der Datenpipeline: Finden Sie Datensätze, denen die erwarteten Schemafelder fehlen

Anmerkung

Die Variablen IS NOT und EXISTS werden derzeit nicht unterstützt.

Verwenden Sie zusammengesetzte Ausdrücke, wenn Sie mehrere Bedingungen mit den logischen Operatoren AND („&&“) und OR („||“) kombinieren müssen. Diese Muster helfen Ihnen bei der Erstellung ausgeklügelter Überwachungsregeln, die voraussetzen, dass mehrere Kriterien erfüllt sind oder dass sie unter einer von mehreren Bedingungen ausgelöst werden.

Zusammengesetzte Ausdrücke unterstützen Klammern („()“) und folgen der Standardreihenfolge der Operationen: () > && > ||. Verwenden Sie diese Muster, wenn einfache Filter mit nur einer Bedingung für Ihre Überwachungsanforderungen nicht ausreichen.

Beispiel für ein JSON-Protokollereignis zum Testen:

{ "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] ] }
Monitor specific user actions

Verfolgen Sie, wann bestimmte Benutzer bestimmte Aktionen ausführen, indem Sie die Benutzeridentifikation mit der Aktionsüberwachung kombinieren.

Filtermuster:

{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }

Anwendungsfälle:

  • Sicherheitsüberprüfung: Verfolgen Sie, wann bestimmte Admin-Benutzer auf vertrauliche Ressourcen zugreifen

  • Compliance-Überwachung: Stellen Sie sicher, dass bestimmte Benutzer nur genehmigte Aktionen ausführen

  • Analyse des Benutzerverhaltens: Überwachen Sie die Korrelationen zwischen Benutzerattributen und Aktionen

Alert on any suspicious activity

Richten Sie eine umfassende Überwachung ein, die ausgelöst wird, wenn eine von mehreren besorgniserregenden Bedingungen eintritt.

Filtermuster:

{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }

Anwendungsfälle:

  • Sicherheitsüberwachung: Warnmeldung, wenn bestimmte Benutzer aktiv sind ODER wenn ungewöhnliche Datenmuster auftreten

  • Systemintegrität: Überwachen Sie verschiedene Fehlerbedingungen

  • Flexibles Alerting: Erstellen Sie Sammelregeln für verschiedene relevante Szenarien

Require multiple conditions for alerts

Reduzieren Sie Fehlalarme, indem Sie festlegen, dass mehrere spezifische Bedingungen erfüllt sein müssen, bevor Warnmeldungen ausgelöst werden.

Filtermuster:

{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }

Anwendungsfälle:

  • Warnmeldungen mit hoher Zuverlässigkeit: Nur dann alarmieren, wenn mehrere verdächtige Indikatoren übereinstimmen

  • Komplexe Geschäftsregeln: Überwachen Sie Szenarien, die mehrere Kriterien erfordern

  • Geräuschreduzierung: Vermeiden Sie Warnmeldungen aufgrund einzelner isolierter Ereignisse

Anmerkung

Kontingente

Sie können in einer Eigenschaftenauswahl nur bis zu einen Platzhalter-Selektor und bis zu drei Platzhalter-Selektoren in einem Filtermuster mit zusammengesetzten Ausdrücken verwenden.

Monitor failed correlation attempts

Verfolgen Sie, wenn die erwarteten Beziehungen zwischen Datenfeldern nicht übereinstimmen, was auf Datenqualitätsprobleme hinweisen kann.

Filtermuster:

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

Anwendungsfälle:

  • Datenvalidierung: Finden Sie Datensätze, bei denen verwandte Felder nicht den erwarteten Mustern entsprechen

  • Systemintegrität: Achten Sie auf Datenbeschädigung oder Synchronisierungsprobleme

  • Qualitätssicherung: Verfolgen Sie, wann Datenbeziehungen unterbrochen werden