配置流数据规则
您可以使用 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'