Konfigurieren von Regeln für Datenströme

Sie können Regeln definieren, indem Sie die DataPrime eXpression Language (DPXL) verwenden, um zu filtern, welche Daten von einer IBM® Event Streams for IBM Cloud®-Instanz nach IBM Cloud Logs gestreamt werden.

Weitere Informationen über die DataPrime eXpression Sprache finden Sie in der DataPrime Expression Language(DPXL)Referenz.

Sie können nur Regeln definieren, die Bedingungen auf der Grundlage des Wertes von einem oder mehreren Feldern festlegen.

Sie benötigen möglicherweise eine Parsing-Regel, die bestimmte Werte wie den Dienstnamen aus logSourceCRN extrahiert, wenn Sie nach dem Dienstnamen filtern möchten.

In den folgenden Abschnitten finden Sie Beispiele für die verschiedenen Arten von Regeln, die Sie konfigurieren können.

Beachten Sie, dass einige Beispiele das Präfix <v1> enthalten. Dieses Präfix wird bei Verwendung der Benutzeroberfläche automatisch eingefügt und muss nicht angegeben werden. Ein in einer API verwendeter DPXL-Ausdruck muss jedoch mit dem Präfix <v1> beginnen.

Streaming aller Daten

Definieren Sie keine DataPrime-Regel, wenn Sie Streaming konfigurieren.

Streaming-Daten, die freien Text enthalten

Um Daten zu streamen, die freien Text enthalten, müssen Sie die Regel wie folgt einrichten:

$d.msg.contains('ENTER_FREE_TEXT')

Um zum Beispiel nach Error 1234 zu suchen, können Sie Folgendes in Ihre Regel aufnehmen:

$d.msg.contains('Error1234')

Datenstrom für 1 oder mehrere Anwendungen

In einer IBM Cloud Logs-Instanz können Sie Daten von mehreren Anwendungen sammeln.

Wenn Sie Streaming konfigurieren, können Sie benutzerdefinierte Regeln für das Streaming ausgewählter Daten festlegen.

Streaming von Auditing-Ereignissen

Um alle Überwachungsereignisse zu streamen, definieren Sie die folgende Regel DataPrime:

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

Protokolle der Streaming-Plattform

Um alle Plattformprotokolle zu streamen, definieren Sie die folgende DataPrime-Regel:

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

Streaming-Protokolle nach applicationName

Um Protokolle nach applicationName für ausgewählte Anwendungen zu streamen, definieren Sie eine DataPrime Regel. Um beispielsweise Daten aus 3 Anwendungen zu streamen, können Sie verwenden:

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

Verwenden Sie ||, um OR anzuzeigen.

Streamdaten für 1 oder mehrere Subsysteme

Um Protokolle nach subsystemName, zu streamen, definieren Sie eine DataPrime Regel. Um beispielsweise Daten von 3 Subsystemen zu streamen, können Sie verwenden:

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

Verwenden Sie ||, um OR anzuzeigen.

Datenstrom basierend auf mehreren Werten für ein Feld, das im Protokollsatz enthalten ist

Wenn Sie daran interessiert sind, einige Daten auf der Grundlage des Wertes eines Feldes in Ihrem Protokollsatz zu streamen, können Sie eine Regel wie folgt definieren:

Dieses Beispiel zeigt, wie man eine Regel für 3 verschiedene Werte eines Feldes im Protokollsatz definiert:

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

Datenstrom basierend auf den Werten von 1 oder mehreren Feldern, die im Protokollsatz enthalten sind

Wenn Sie daran interessiert sind, einige Daten auf der Grundlage des Wertes von einem oder mehreren Feldern in Ihrem Protokollsatz zu streamen, können Sie eine Regel wie folgt definieren:

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

Streamdaten basierend auf 2 Bedingungen

Um Daten auf der Grundlage von 2 Bedingungen zu streamen, bei denen der Wert eines Feldes gleich ist, der Wert des anderen Feldes aber unterschiedliche Werte haben kann, können Sie die Regel beispielsweise wie folgt definieren:

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

Um beispielsweise Überwachungsereignisse mit unterschiedlichen Schweregraden von ausgewählten Diensten zu filtern, können Sie eine Abfrage wie folgt definieren:

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

Eine Regel validieren

Um die Streaming-Regel zu überprüfen, klicken Sie in der linken Navigation auf Protokolle durchsuchen > Protokolle. Wählen Sie die Abfrage DataPrime, und ändern Sie die Abfrage wie folgt:

filter 'PASTE_YOUR_CONDITION'

Die Ausgabe der Abfrage sollte Ihnen die Liste der Protokolldatensätze liefern, die gestreamt werden, sobald Sie die Streaming-Konfiguration aktivieren.

Ändern Sie zum Beispiel <v1> $l.applicationname =='ibm-audit-event' in:

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