配置流資料規則
您可以使用DataPrime eXpression Language (DPXL) 來定義規則,以過濾從IBM Cloud Logs實例串流傳輸到IBM® Event Streams for IBM Cloud®資料。
有關DataPrime eXpression語言的更多信息,請參閱 DataPrime表達式語言(DPXL)參考。
您只能定義基於 1 個或多個欄位的值定義條件的規則。
如果您想要按服務名稱進行過濾,您可能需要一個解析規則來提取特定值,例如從 logSourceCRN 中提取服務名稱。
以下部分顯示了您可以設定的不同類型規則的範例。
請注意,某些範例包含 <v1> 前綴。 使用 UI 時會自動包含此前綴,無需指定。 但是,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')
驗證規則
若要驗證流程規則,請在左側導覽中按一下瀏覽日誌 > 日誌。 選擇 DataPrime 查詢,並將查詢變更如下:
filter 'PASTE_YOUR_CONDITION'
查詢的輸出應該為您提供啟用串流配置後將串流傳輸的日誌記錄清單。
例如,將 <v1> $l.applicationname =='ibm-audit-event' 更改為:
filter $l.applicationname =='ibm-audit-event'