Configuration des règles de flux de données

Vous pouvez définir des règles en utilisant le DataPrime eXpression Language (DPXL) pour filtrer les données transmises à IBM® Event Streams for IBM Cloud® à partir d'une instance IBM Cloud Logs.

Pour plus d'informations sur le langage DataPrime eXpression, voir la référence DataPrime Expression Language(DPXL).

Vous ne pouvez définir que des règles qui définissent des conditions basées sur la valeur d'un ou plusieurs champs.

Vous pouvez avoir besoin d'une règle d'analyse qui extrait des valeurs spécifiques telles que le nom du service de la logSourceCRN si vous voulez filtrer par nom de service.

Les sections suivantes présentent des exemples des différents types de règles que vous pouvez configurer.

Notez que certains exemples incluent le préfixe <v1>. Ce préfixe est automatiquement inclus lors de l'utilisation de l'interface utilisateur et n'a pas besoin d'être spécifié. Toutefois, une expression DPXL utilisée dans une API doit commencer par le préfixe <v1>.

Diffusion en continu de toutes les données

Ne définissez pas de règle DataPrime lorsque vous configurez la diffusion en continu.

Données en continu contenant du texte libre

Pour diffuser des données comprenant du texte libre, vous devez configurer la règle comme suit :

$d.msg.contains('ENTER_FREE_TEXT')

Par exemple, pour rechercher Error 1234, vous pouvez inclure ce qui suit dans votre règle :

$d.msg.contains('Error1234')

Flux de données pour 1 ou plusieurs applications

Dans une instance IBM Cloud Logs, vous pouvez collecter des données provenant de plusieurs applications.

Lorsque vous configurez la diffusion en continu, vous pouvez définir des règles personnalisées pour diffuser les données sélectionnées.

Flux d'événements d'audit

Pour diffuser tous les événements d'audit, définissez la règle DataPrime suivante :

<v1> $l.applicationname =='ibm-audit-event'

Journaux de la plate-forme de diffusion en continu

Pour diffuser tous les journaux de la plate-forme, définissez la règle DataPrime suivante :

<v1> $l.applicationname =='ibm-platform-logs'

Journaux en continu par applicationName

Pour diffuser les journaux par applicationName pour les applications sélectionnées, définissez une règle DataPrime. Par exemple, pour diffuser des données à partir de 3 applications, vous pouvez utiliser :

<v1> $l.applicationname =='app1' || $l.applicationname =='app2' || $l.applicationname =='app3'

Utilisez || pour indiquer OR.

Données de flux pour 1 ou plusieurs sous-systèmes

Pour diffuser les journaux par subsystemName, définissez une règle DataPrime. Par exemple, pour diffuser des données provenant de 3 sous-systèmes, vous pouvez utiliser :

<v1> $l.subsystemname =='subsystem1' || $l.subsystemname =='subsystem2' || $l.subsystemname =='subsystem3'

Utilisez || pour indiquer OR.

Données de flux basées sur des valeurs multiples pour un champ inclus dans l'enregistrement

Si vous souhaitez diffuser des données en fonction de la valeur d'un champ de votre enregistrement, vous pouvez définir une règle comme suit :

Cet exemple montre comment définir une règle pour trois valeurs différentes d'un champ dans l'enregistrement :

<v1> $d.<FIELD_NAME> =='value1' || $d.<FIELD_NAME> =='value2' || $d.<FIELD_NAME> =='value3'

Données de flux basées sur les valeurs d'un ou plusieurs champs inclus dans l'enregistrement

Si vous souhaitez diffuser des données en fonction de la valeur d'un ou plusieurs champs de votre enregistrement, vous pouvez définir une règle comme suit :

<v1> $d.<FIELD_NAME_1> =='value1' && $d.<FIELD_NAME_2> =='value2'

Données de flux basées sur 2 conditions

Pour transmettre des données en fonction de deux conditions où la valeur d'un champ est la même, mais où la valeur de l'autre champ peut être différente, par exemple, vous pouvez définir la règle comme suit :

<v1> ( $d.<FIELD_NAME_1> =='value1' && $d.<FIELD_NAME_2> =='value2' ) || ( $d.<FIELD_NAME_1> =='value1' && $d.<FIELD_NAME_2> =='value3' )

Par exemple, pour filtrer les événements d'audit ayant des valeurs de gravité différentes et provenant de services sélectionnés, vous pouvez définir une requête comme suit :

<v1> ( ( $l.applicationname =='ibm-audit-event' && ( $d.serviceName =='iam-am' ||  $d.serviceName =='cloud-object-storage' ) && $d.severity =='critical') )
|| ( $l.applicationname =='ibm-audit-event' && $d.serviceName =='iam-identity' && $d.severity =='normal')

Valider une règle

Pour vérifier la règle de diffusion en continu, cliquez sur Explorer les journaux > Journaux. Sélectionnez DataPrime requête, et modifiez la requête comme suit :

filter 'PASTE_YOUR_CONDITION'

La sortie de la requête devrait vous donner la liste des enregistrements de journaux qui seront diffusés une fois que vous aurez activé la configuration de diffusion en continu.

Par exemple, remplacez <v1> $l.applicationname =='ibm-audit-event' par :

filter $l.applicationname =='ibm-audit-event'