스트리밍 데이터 규칙 구성

DataPrime eXpression 언어(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'

두 가지 조건에 따른 데이터 스트리밍

예를 들어 한 필드의 값은 같지만 다른 필드의 값이 다른 두 가지 조건에 따라 데이터를 스트리밍하려면 다음과 같이 규칙을 정의할 수 있습니다:

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