Utilisation de modèles de filtres pour faire correspondre les termes dans les événements du journal JSON - Amazon CloudWatch Logs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de modèles de filtres pour faire correspondre les termes dans les événements du journal JSON

Utilisez des modèles de filtre JSON lorsque vos journaux sont structurés au format JSON. Ces modèles vous permettent de cibler des champs et des valeurs spécifiques au sein d'objets JSON, ce qui les rend idéaux pour :

  • Journaux des applications : ciblez des types d'événements, des utilisateurs IDs ou des codes d'erreur spécifiques

  • AWS journaux de service : filtre CloudTrail, journaux de flux VPC ou autres journaux structurés AWS

  • Microservices : surveillez les applications conteneurisées qui produisent du JSON structuré

Utilisez-le par exemple { $.eventType = "UpdateTrail" } pour rechercher des CloudTrail événements spécifiques ou { $.sourceIPAddress != 123.123.* } pour identifier le trafic provenant de plages d'adresses IP inattendues.

Développez les sections suivantes et parcourez les onglets pour voir des exemples qui montrent comment créer des modèles de filtre JSON pour des scénarios de surveillance courants, qu'il s'agisse de modèles à condition unique de base ou d'expressions composées complexes.

Les exemples suivants montrent comment utiliser des modèles de filtre avec des événements de journal JSON dans des scénarios courants de surveillance et de résolution des problèmes. Chaque exemple inclut la syntaxe du modèle de filtre et les cas d'utilisation pratiques dans lesquels vous pourriez l'appliquer.

Ces modèles fonctionnent avec tous les journaux au format JSON provenant d'applications, de AWS services, de conteneurs ou de systèmes personnalisés. Vous pouvez les utiliser avec des filtres métriques pour créer des CloudWatch métriques, des filtres d'abonnement pour acheminer les journaux vers d'autres services ou avec Live Tail pour surveiller les journaux en temps réel.

Note

Si vous testez un exemple de modèles de filtre avec l'exemple d'événement du journal JSON, vous devez saisir l'exemple de journal JSON sur une seule ligne.

Exemple d'événement de journal JSON à tester :

{ "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

Suivez des types d'événements spécifiques dans les journaux de vos applications JSON pour surveiller le comportement du système.

Schéma de filtre :

{ $.eventType = "UpdateTrail" }

Cas d'utilisation :

  • Surveillance des applications : suivre les actions spécifiques des utilisateurs ou les événements du système

  • Analyses commerciales : comptez les occurrences de types d'événements particuliers

  • Résolution des problèmes : concentrez-vous sur des opérations spécifiques lorsque vous étudiez les problèmes

Ce modèle fonctionne avec tous les journaux JSON contenant un champ EventType, tels que :

  • Journaux des applications : {"eventType": "UserLogin", "userId": "123"}

  • Journaux du système : {"eventType": "ConfigUpdate", "component": "database"}

  • Journaux de l'API : {"eventType": "UpdateTrail", "source": "cloudtrail"}

Block suspicious IP addresses

Identifiez le trafic qui ne correspond pas aux modèles d'adresses IP attendus pour la surveillance de la sécurité.

Schéma de filtre :

{ $.sourceIPAddress != 123.123.* }

Cas d'utilisation :

  • Surveillance de la sécurité : recherche de requêtes provenant de plages d'adresses IP inattendues

  • Contrôle d'accès : surveillez le trafic en dehors de votre réseau d'entreprise

  • Détection des menaces : identification des tentatives d'accès non autorisées potentielles

Track specific application events

Surveillez les valeurs spécifiques des tableaux JSON pour suivre le comportement des applications et les actions des utilisateurs.

Schéma de filtre :

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

Cas d'utilisation :

  • Suivi du comportement des utilisateurs : surveillez les actions spécifiques des utilisateurs dans les journaux des applications

  • Utilisation des fonctionnalités : suivre l'utilisation de fonctionnalités spécifiques de l'application

  • Analyse des erreurs : recherchez des journaux contenant des catégories d'erreurs spécifiques dans des tableaux

Find events using pattern matching

Utilisez des modèles regex pour rechercher des événements avec une correspondance flexible pour les valeurs des champs.

Schéma de filtre :

{ $.eventType = %Trail% }

Cas d'utilisation :

  • Suivi flexible des événements : trouvez tous les événements contenant des modèles de texte spécifiques

  • Surveillance des API : suivez les familles d'API sans spécifier de noms exacts

  • Analyse du journal : recherchez des correspondances partielles dans les noms ou les descriptions des événements

Monitor application data with wildcards

Utilisez des caractères génériques et des expressions régulières pour trouver des modèles spécifiques dans n'importe quel élément du tableau.

Schéma de filtre :

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

Cas d'utilisation :

  • Validation des données : trouvez des tableaux contenant des valeurs correspondant à des modèles spécifiques

  • Filtrage du contenu : surveillez le contenu généré par les utilisateurs pour détecter des modèles spécifiques

  • Assurance qualité : suivi de la conformité des formats de données dans les journaux des applications

Track network traffic patterns

Surveillez les adresses IP dans des plages spécifiques à l'aide de modèles regex et de caractères génériques.

Schéma de filtre :

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

Cas d'utilisation :

  • Surveillance du réseau : suivi du trafic provenant de sous-réseaux IP spécifiques

  • Analyse de sécurité : surveillance de l'accès à partir de plages de réseaux spécifiques

  • Équilibrage de charge : analyse de la répartition du trafic entre les plages d'adresses IP

Note

Quotas

Vous ne pouvez utiliser qu'un seul sélecteur de caractères génériques dans un sélecteur de propriétés.

Handle JSON properties with special characters

Accédez aux propriétés JSON dont le nom contient des points ou d'autres caractères spéciaux.

Schéma de filtre :

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

Cas d'utilisation :

  • Surveillance de Kubernetes : suivi des noms de clusters dans les journaux de conteneurs

  • Suivi de la configuration : surveillez les paramètres avec des noms de propriété en pointillés

  • Intégration par des tiers : gérez les journaux des systèmes à l'aide de conventions de dénomination spéciales

Find null or missing values

Surveillez les données manquantes ou les valeurs nulles susceptibles d'indiquer des problèmes d'application.

Schéma de filtre :

{ $.SomeObject IS NULL }

Cas d'utilisation :

  • Surveillance de la qualité des données : recherche des enregistrements dans lesquels les champs obligatoires sont manquants

  • Débogage de l'application : suivre l'absence de données attendues

  • Détection des erreurs : surveillez les réponses incomplètes à l'API ou les requêtes de base de données

Detect missing configuration fields

Trouvez les journaux dans lesquels les champs attendus sont totalement absents, ce qui peut indiquer des problèmes de configuration.

Schéma de filtre :

{ $.SomeOtherObject NOT EXISTS }

Cas d'utilisation :

  • Validation de la configuration : assurez-vous que tous les champs obligatoires sont présents dans les journaux

  • Surveillance des API : suivi des demandes ou des réponses incomplètes

  • Surveillance du pipeline de données : recherche des enregistrements dont les champs de schéma attendus sont manquants

Note

Les variables IS NOT et EXISTS ne sont actuellement pas prises en charge.

Utilisez des expressions composées lorsque vous devez combiner plusieurs conditions à l'aide des opérateurs logiques AND (« && ») et OR (« || »). Ces modèles vous aident à créer des règles de surveillance sophistiquées qui nécessitent le respect de plusieurs critères ou le déclenchement de plusieurs conditions.

Les expressions composées prennent en charge les parenthèses (« () ») et suivent l'ordre standard des opérations : () > && > ||. Utilisez ces modèles lorsque de simples filtres à condition unique ne suffisent pas à répondre à vos besoins de surveillance.

Exemple d'événement de journal JSON à tester :

{ "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

Suivez les moments où des utilisateurs spécifiques exécutent des actions particulières en combinant l'identification des utilisateurs avec le suivi des actions.

Schéma de filtre :

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

Cas d'utilisation :

  • Audit de sécurité : suivre le moment où des utilisateurs administrateurs spécifiques accèdent à des ressources sensibles

  • Surveillance de la conformité : assurez-vous que certains utilisateurs n'exécutent que des actions approuvées

  • Analyse du comportement des utilisateurs : surveillez les corrélations entre les attributs et les actions des utilisateurs

Alert on any suspicious activity

Créez une surveillance étendue qui se déclenche lorsque l'une des nombreuses conditions préoccupantes se produit.

Schéma de filtre :

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

Cas d'utilisation :

  • Surveillance de la sécurité : alerte lorsque des utilisateurs spécifiques sont actifs OU lorsque des modèles de données inhabituels se produisent

  • État du système : surveillez l'une des différentes conditions d'erreur

  • Alertes flexibles : créez des règles fourre-tout pour divers scénarios préoccupants

Require multiple conditions for alerts

Réduisez les faux positifs en exigeant le respect de plusieurs conditions spécifiques avant de déclencher des alertes.

Schéma de filtre :

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

Cas d'utilisation :

  • Alertes hautement fiables : alerte uniquement lorsque plusieurs indicateurs suspects s'alignent

  • Règles métier complexes : surveillez les scénarios nécessitant plusieurs critères

  • Réduction du bruit : prévention des alertes liées à des événements isolés

Note

Quotas

Vous ne pouvez utiliser qu'un seul sélecteur de caractères génériques dans un sélecteur de propriétés, et jusqu'à trois sélecteurs de caractères génériques dans un modèle de filtre avec des expressions composées.

Monitor failed correlation attempts

Suivez les cas où les relations attendues entre les champs de données ne correspondent pas, ce qui peut indiquer des problèmes de qualité des données.

Schéma de filtre :

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

Cas d'utilisation :

  • Validation des données : recherchez les enregistrements dont les champs connexes ne correspondent pas aux modèles attendus

  • Intégrité du système : surveillez les problèmes de corruption ou de synchronisation des données

  • Assurance qualité : suivre la rupture des relations entre les données