Configuração de regras de dados de streaming

Você pode definir regras usando a DataPrime eXpression (DPXL) para filtrar quais dados são transmitidos para IBM® Event Streams for IBM Cloud® a partir de uma instância IBM Cloud Logs.

Para obter mais informações sobre a DataPrime eXpression, consulte a DataPrime(DPXL).

Você só pode definir regras que definam condições com base no valor de um ou mais campos.

Talvez você precise de uma regra de análise que extraia valores específicos, como o nome do serviço do logSourceCRN, se quiser filtrar pelo nome do serviço.

As seções a seguir mostram exemplos de diferentes tipos de regras que podem ser configuradas.

Observe que alguns exemplos incluem o prefixo <v1>. Esse prefixo é incluído automaticamente ao usar a interface do usuário e não precisa ser especificado. No entanto, uma expressão DPXL usada em uma API deve começar com o prefixo <v1>.

Transmissão de todos os dados

Não defina uma regra DataPrime ao configurar o streaming.

Dados de streaming que contêm texto livre

Para transmitir dados que incluam texto livre, você deve configurar a regra da seguinte forma:

$d.msg.contains('ENTER_FREE_TEXT')

Por exemplo, para pesquisar Error 1234, você pode incluir o seguinte em sua regra:

$d.msg.contains('Error1234')

Transmissão de dados para 1 ou mais aplicativos

Em uma instância de IBM Cloud Logs, você pode coletar dados de vários aplicativos.

Ao configurar o streaming, você pode definir regras personalizadas para transmitir dados selecionados.

Eventos de auditoria de fluxo contínuo

Para transmitir todos os eventos de auditoria, defina a seguinte regra DataPrime:

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

Registros da plataforma de streaming

Para transmitir todos os logs da plataforma, defina a seguinte regra DataPrime:

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

Registros de fluxo contínuo por applicationName

Para transmitir logs por applicationName para aplicativos selecionados, defina uma regra DataPrime. Por exemplo, para transmitir dados de 3 aplicativos, você pode usar:

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

Use || para indicar OR.

Dados de fluxo para 1 ou mais subsistemas

Para transmitir logs por subsystemName, defina uma regra DataPrime. Por exemplo, para transmitir dados de 3 subsistemas, você pode usar:

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

Use || para indicar OR.

Dados de fluxo com base em vários valores para um campo incluído no registro de log

Se estiver interessado em transmitir alguns dados com base no valor de um campo no seu registro de log, é possível definir uma regra da seguinte forma:

Este exemplo mostra como definir uma regra para 3 valores diferentes de um campo no registro de log:

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

Dados de fluxo com base nos valores de 1 ou mais campos incluídos no registro de log

Se estiver interessado em transmitir alguns dados com base no valor de um ou mais campos no registro de log, é possível definir uma regra da seguinte forma:

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

Dados de fluxo com base em 2 condições

Para transmitir dados com base em 2 condições em que o valor de 1 campo é o mesmo, mas o valor do outro campo pode ter valores diferentes, por exemplo, você pode definir a regra da seguinte forma:

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

Por exemplo, para filtrar eventos de auditoria com diferentes valores de gravidade de serviços selecionados, você pode definir uma consulta da seguinte forma:

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

Validar uma regra

Para verificar a regra de streaming, na navegação à esquerda, clique em Explore logs > Logs. Selecione a consulta DataPrime e altere a consulta da seguinte forma:

filter 'PASTE_YOUR_CONDITION'

A saída da consulta deve fornecer a lista de registros de log que seriam transmitidos quando você habilitar a configuração de streaming.

Por exemplo, altere <v1> $l.applicationname =='ibm-audit-event' para:

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