Configurazione delle regole di streaming dei dati

È possibile definire regole utilizzando il linguaggio DataPrime eXpression (DPXL) per filtrare i dati trasmessi a IBM® Event Streams for IBM Cloud® da un'istanza IBM Cloud Logs.

Per ulteriori informazioni sul linguaggio DataPrime eXpression, vedere il riferimento DataPrime Expression Language(DPXL).

È possibile definire solo regole che definiscono condizioni basate sul valore di 1 o più campi.

Potrebbe essere necessaria una regola di parsing che estragga valori specifici, come il nome del servizio, dall'elemento logSourceCRN, se si vuole filtrare in base al nome del servizio.

Le sezioni seguenti mostrano esempi di diversi tipi di regole che è possibile configurare.

Si noti che alcuni esempi includono il prefisso <v1>. Questo prefisso viene incluso automaticamente quando si utilizza l'interfaccia utente e non deve essere specificato. Tuttavia, un'espressione DPXL utilizzata in un'API deve iniziare con il prefisso <v1>.

Streaming di tutti i dati

Non definire una regola DataPrime quando si configura lo streaming.

Dati in streaming contenenti testo libero

Per trasmettere dati che includono testo libero, è necessario impostare la regola come segue:

$d.msg.contains('ENTER_FREE_TEXT')

Ad esempio, per cercare Error 1234, si può includere nella regola quanto segue:

$d.msg.contains('Error1234')

Streaming di dati per 1 o più applicazioni

In un'istanza IBM Cloud Logs, è possibile raccogliere dati da più applicazioni.

Quando si configura lo streaming, è possibile definire regole personalizzate per lo streaming dei dati selezionati.

Eventi di auditing in streaming

Per trasmettere tutti gli eventi di auditing, definire la seguente regola DataPrime:

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

Registri della piattaforma di streaming

Per trasmettere tutti i registri della piattaforma, definire la seguente regola DataPrime:

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

Registri in streaming per applicationName

Per trasmettere i registri per applicationName per le applicazioni selezionate, definire una regola DataPrime. Ad esempio, per lo streaming di dati da 3 applicazioni, è possibile utilizzare:

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

Utilizzare || per indicare OR.

Dati di flusso per 1 o più sottosistemi

Per trasmettere i registri per subsystemName, definire una regola DataPrime. Ad esempio, per trasmettere i dati da 3 sottosistemi, si può usare:

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

Utilizzare || per indicare OR.

Streaming dei dati basato su valori multipli per un campo incluso nel record di log

Se si desidera trasmettere alcuni dati in streaming in base al valore di un campo del record di log, è possibile definire una regola come segue:

Questo esempio mostra come definire una regola per 3 diversi valori di un campo nel record di log:

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

Streaming dei dati basato sui valori di 1 o più campi inclusi nel record di log

Se si desidera trasmettere alcuni dati in streaming in base al valore di 1 o più campi del record di log, è possibile definire una regola come segue:

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

Dati di flusso basati su 2 condizioni

Per eseguire lo streaming dei dati in base a 2 condizioni in cui il valore di 1 campo è lo stesso ma il valore dell'altro campo può avere valori diversi, ad esempio, si può definire la regola come segue:

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

Ad esempio, per filtrare gli eventi di auditing con valori di gravità diversi da servizi selezionati, si può definire una query come segue:

<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')

Convalidare una regola

Per verificare la regola di streaming, nella navigazione a sinistra, fare clic su Esplora registri > Registri. Selezionare la query DataPrime e modificarla come segue:

filter 'PASTE_YOUR_CONDITION'

L'output della query dovrebbe fornire l'elenco dei record di log che verrebbero trasmessi in streaming una volta attivata la configurazione dello streaming.

Ad esempio, modificare <v1> $l.applicationname =='ibm-audit-event' in:

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