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.
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
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
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
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