配置流数据规则

您可以使用 DataPrime eXpression 语言 (DPXL) 定义规则,以过滤从 IBM® Event Streams for IBM Cloud® 实例流向 IBM Cloud Logs 的数据。

有关 DataPrime eXpression 语言的更多信息,请参阅 DataPrime 表达式语言(DPXL)参考

您只能定义基于 1 个或多个字段值的条件的规则。

如果要按服务名称进行筛选,您可能需要一个解析规则,从 logSourceCRN 中提取特定值(如服务名称)。

以下各节展示了可以配置的不同类型规则的示例。

请注意,有些示例包含 <v1> 前缀。 使用用户界面时会自动包含该前缀,无需指定。 但是,在 API 中使用的 DPXL 表达式必须以 <v1> 前缀开头。

流式传输所有数据

配置流时,请勿定义 DataPrime 规则。

包含自由文本的流式数据

要流式传输包含自由文本的数据,必须按如下方式设置规则:

$d.msg.contains('ENTER_FREE_TEXT')

例如,要搜索 Error 1234,可以在规则中包含以下内容:

$d.msg.contains('Error1234')

为 1 个或多个应用程序提供数据流

在 IBM Cloud Logs 实例中,您可以从多个应用程序收集数据。

配置流式传输时,可以定义自定义规则来传输所选数据。

流式审计事件

要对所有审计事件进行流式处理,请定义以下 DataPrime 规则:

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

流媒体平台日志

要流式传输所有平台日志,请定义以下 DataPrime 规则:

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

applicationName的流日志

要按 applicationName 对选定应用程序进行日志流处理,请定义 DataPrime 规则。 例如,要从 3 个应用程序流式传输数据,可以使用

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

使用 || 表示 OR

1 个或多个子系统的数据流

要按subsystemName,流式传输日志,请定义一条DataPrime规则。 例如,要从 3 个子系统流式传输数据,可以使用

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

使用 || 表示 OR

根据日志记录中包含的字段的多个值生成数据流

如果您想根据日志记录中的字段值对某些数据进行流式处理,可以定义如下规则:

本示例演示了如何为日志记录中一个字段的 3 个不同值定义规则:

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

根据日志记录中包含的 1 个或多个字段的值生成数据流

如果您想根据日志记录中 1 个或多个字段的值对某些数据进行流式处理,可以定义如下规则:

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

基于 2 个条件的数据流

例如,要根据 2 个条件流式传输数据,其中 1 个字段的值相同,但另一个字段的值可能不同,您可以定义如下规则:

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

例如,要从选定的服务中过滤具有不同严重性值的审计事件,可以定义如下查询:

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

验证规则

要验证流规则,请在左侧导航中单击 Explore logs > Logs。 选择 DataPrime 查询,然后更改查询如下:

filter 'PASTE_YOUR_CONDITION'

查询的输出结果将显示启用流配置后的日志记录列表。

例如,将 <v1> $l.applicationname =='ibm-audit-event' 更改为:

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