지표 필터, 구독 필터, 필터 로그 이벤트 및 Live Tail에 대한 필터 패턴 구문 - 아마존 CloudWatch 로그

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

지표 필터, 구독 필터, 필터 로그 이벤트 및 Live Tail에 대한 필터 패턴 구문

참고

Amazon CloudWatch Logs Insights 쿼리 언어를 사용하여 로그 그룹을 쿼리하는 방법에 대한 자세한 내용은 을 참조하십시오CloudWatch 로그 인사이트 쿼리 구문.

CloudWatch 로그를 사용하면 지표 필터를 사용하여 로그 데이터를 실행 가능한 지표로 변환하고, 구독 필터를 사용하여 로그 이벤트를 다른 AWS 서비스로 라우팅하고, 로그 이벤트를 필터링하여 로그 이벤트를 검색하며, Live Tail을 사용하여 로그를 수집할 때 실시간으로 대화식으로 확인할 수 있습니다.

필터 패턴은 지표 필터, 구독 필터, 필터 로그 이벤트 및 Live Tail을 사용하여 로그 이벤트에서 일치하는 용어를 검색하는 구문을 구성합니다. 용어는 단어, 정확한 문구 또는 숫자 값일 수 있습니다. 정규식을 사용하여 독립 실행형 필터 패턴을 생성하거나 JSON 및 공백으로 구분된 필터 패턴에 정규식을 통합할 수 있습니다.

일치시키려는 용어를 사용하여 필터 패턴을 생성합니다. 필터 패턴은 정의한 용어가 포함된 로그 이벤트만 반환합니다. 콘솔에서 필터 패턴을 테스트할 수 있습니다. CloudWatch

지원되는 정규식 구문

정규식을 사용하여 로그 데이터를 검색하고 필터링하는 경우 표현식을 %로 묶어야 합니다.

정규식을 포함하는 필터 패턴에는 다음만 포함할 수 있습니다.

  • 영숫자 - 영숫자는 문자(A~Z 또는 a~z) 또는 숫자(0~9)에 해당하는 문자입니다.

  • 지원되는 기호 문자 – 여기에는 '_', '#', '=', '@','/', ';', ',' 및 '-'가 포함됩니다. 예를 들어, %something!%는 '!'가 지원되지 않으므로 거부됩니다.

  • 지원되는 연산자 - 여기에는 '^', '$', '?', '[', ']', '{', '}', '|', '\', '*', '+' 및 '.'가 포함됩니다.

() 연산자는 지원되지 않습니다. 하위 패턴을 정의할 때 괄호를 사용할 수 없습니다.

멀티바이트 문자는 지원되지 않습니다.

참고

할당량

지표 필터 또는 구독 필터를 생성하는 경우 각 로그 그룹에 대한 정규식이 포함된 최대 5개의 필터 패턴이 있습니다.

지표 필터 및 구독 필터에 대해 구분된 필터 패턴 또는 JSON 필터 패턴을 생성하거나 로그 이벤트 또는 Live Tail을 필터링하는 경우 각 필터 패턴에 대해 2개의 정규식으로 제한됩니다.

지원되는 연산자 사용

  • ^: 문자열의 시작 위치로 일치 항목을 고정합니다. 예를 들어, %^[hc]at%는 문자열의 시작 위치만 일치시켜 'hat' 및 'cat'과 일치합니다.

  • $: 문자열의 끝 위치로 일치 항목을 고정합니다. 예를 들어, %[hc]at$%는 문자열의 끝 위치만 일치시켜 'hat' 및 'cat'과 일치합니다.

  • ?: 이전 용어의 0개 이상의 인스턴스와 일치합니다. 예를 들어, %colou?r%는 'color' 및 'colour' 모두와 일치할 수 있습니다.

  • []: 문자 클래스를 정의합니다. 대괄호 안에 포함된 문자 목록 또는 문자 범위와 일치합니다. 예를 들어, %[abc]%는 'a', 'b' 또는 'c'와 일치하고, %[a-z]%는 'a'에서 'z'까지의 모든 소문자와 일치하며, %[abcx-z]%는 'a', 'b', 'c', 'x', 'y' 또는 'z'와 일치합니다.

  • {m, n}: 앞에 오는 용어와 m~n번만큼 일치합니다. 예를 들어, %a{3,5}% 는 'aaa', 'aaaa' 및 'aaaaa'와만 일치합니다.

    참고

    최솟값 또는 최댓값을 정의하지 않으려는 경우 m 또는 n을 생략할 수 있습니다.

  • |: 부울 'Or' 연산자로, 세로 막대의 양쪽에 있는 용어 중 하나와 일치합니다. 예를 들어, %gra|ey%는 'gray' 또는 'grey'와 일치할 수 있습니다.

    참고

    용어는 단일 문자이거나 ?, *, + 또는 {n,m} 연산자 중 하나를 사용하는 반복되는 문자 클래스입니다.

  • \: 이스케이프 문자로, 이 문자를 사용하면 연산자의 특수한 의미 대신, 문자 그대로의 의미를 사용할 수 있습니다. 예를 들어, %\[.\]%는 대괄호가 이스케이프 처리되었으므로 '[a]', '[b]', '[7]', '[@]', '[]]' 및 '[ ]'와 같이 '[' 및 ']'로 묶인 모든 단일 문자와 일치합니다.

    참고

    %10\.10\.0\.1%는 IP 주소 10.10.0.1과 일치하는 정규식을 생성하는 올바른 방법입니다.

  • *: 이전 용어의 0개 이상의 인스턴스와 일치합니다. 예를 들어, %ab*c% 는 'ac', 'abc' 및 'abbbc'와 일치할 수 있으며, %ab[0-9]*%는 'ab', 'ab0' 및 'ab129'와 일치할 수 있습니다.

  • +: 이전 용어의 하나 이상의 인스턴스와 일치합니다. 예를 들어, %ab+c%는 'abc', 'abbc' 및 'abbbc'와 일치할 수 있지만, 'ac'와는 일치하지 않습니다.

  • .: 모든 문자와 일치합니다. 예를 들어, %.at%는 'hat', 'cat', 'bat', '4at', '#at' 및 ' at'(공백으로 시작)을 포함하여 'at'으로 끝나는 3자리 문자열과 일치합니다.

    참고

    IP 주소와 일치하는 정규식을 생성하는 경우 . 연산자를 이스케이프 처리하지 않아야 합니다. 예를 들어, %10.10.0.1%는 '10010,051'과 일치할 수 있으며, 이는 식의 의도된 실제 용도가 아닐 수 있습니다.

  • \d, \D: 숫자 및 숫자 외 문자와 일치합니다. 예를 들어, %\d%%[0-9]%와 같고, %\D%%[^0-9]%와 같습니다.

    참고

    대문자인 연산자는 소문자인 연산자와 의미가 반대입니다.

  • \s, \S: 공백 문자 및 공백 외 문자와 일치합니다.

    참고

    대문자인 연산자는 소문자인 연산자와 의미가 반대입니다. 공백 문자에는 탭(\t), 공백( ), 줄 바꿈(\n) 문자가 포함됩니다.

  • \w, \W: 영숫자 및 영숫자 외 문자와 일치합니다. 예를 들어, %\w%%[a-zA-Z_0-9]%와 같고, %\W%%[^a-zA-Z_0-9]%와 같습니다.

    참고

    대문자인 연산자는 소문자인 연산자와 의미가 반대입니다.

  • \xhh: 2자리 16진수 문자의 ASCII 매핑을 일치합니다. \x는 다음 문자가 ASCII의 16진수 값임을 나타내는 이스케이프 시퀀스입니다. hh는 ASCII 테이블의 문자를 가리키는 2자리 16진수(0~9 및 A~F)를 지정합니다.

    참고

    \xhh를 사용하여 필터 패턴에서 지원하지 않는 기호 문자를 일치시킬 수 있습니다. 예를 들어, %\x3A%:과 일치하며, %\x28%(와 일치합니다.

필터 패턴을 사용하여 정규식과 일치하는 용어 검색

%(정규식 패턴 앞뒤의 백분율 기호)로 묶인 정규식 패턴을 사용하여 로그 이벤트에서 일치하는 용어를 검색할 수 있습니다. 다음 코드 조각은 AUTHORIZED 키워드로 구성된 모든 로그 이벤트를 반환하는 필터 패턴의 예시를 보여줍니다.

지원되는 정규식 목록은 지원되는 정규식을 참조하세요.

%AUTHORIZED%

이 필터 패턴은 다음과 같은 로그 이벤트 메시지를 반환합니다.

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [SUCCESS 200] AUTHORIZED REQUEST

필터 패턴을 사용하여 비정형 로그 이벤트에서 일치하는 용어 검색

다음 예제에는 필터 패턴을 사용하여 비정형 로그 이벤트에서 일치하는 용어를 검색하는 방법을 보여주는 코드 조각이 포함되어 있습니다.

참고

필터 패턴은 대/소문자를 구분합니다. 영숫자가 아닌 문자가 포함된 정확한 문구 및 용어를 큰따옴표("")로 묶습니다.

Example: Match a single term

다음 코드 조각은 메시지에 ERROR라는 단어가 포함된 모든 로그 이벤트를 반환하는 단일 용어 필터 패턴의 예를 보여 줍니다.

ERROR

이 필터 패턴은 다음과 같이 로그 이벤트 메시지와 일치합니다.

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Example: Match multiple terms

다음 코드 조각은 메시지에 ERRORARGUMENTS라는 단어가 포함된 모든 로그 이벤트를 반환하는 다중 용어 필터 패턴의 예를 보여 줍니다.

ERROR ARGUMENTS

필터는 다음과 같은 로그 이벤트 메시지를 반환합니다.

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

이 필터 패턴은 필터 패턴에 지정된 두 용어를 모두 포함하지 않으므로 다음의 로그 이벤트 메시지를 반환하지 않습니다.

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

Example: Match optional terms

패턴 일치를 사용하여 선택적 용어가 포함된 로그 이벤트를 반환하는 필터 패턴을 생성할 수 있습니다. 일치시키려는 용어 앞에 물음표('?')를 입력합니다. 다음 코드 조각은 메시지에 ERROR라는 단어 또는 ARGUMENTS라는 단어가 포함된 모든 로그 이벤트를 반환하는 필터 패턴의 예를 보여 줍니다.

?ERROR ?ARGUMENTS

이 필터 패턴은 다음과 같이 로그 이벤트 메시지와 일치합니다.

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

참고

물음표('?')를 포함 및 제외 항 등의 다른 필터 패턴과 결합할 수 없습니다. '?'를 다른 필터 패턴과 결합하면 물음표('?')는 무시됩니다.

예를 들어, 다음 필터 패턴은 REQUEST라는 단어가 포함된 모든 이벤트와 일치하지만 물음표('?') 필터는 무시되고 효과가 없습니다.

?ERROR ?ARGUMENTS REQUEST

로그 이벤트 일치

  • [INFO] REQUEST FAILED

  • [WARN] UNAUTHORIZED REQUEST

  • [ERROR] 400 BAD REQUEST

Example: Match exact phrases

다음 코드 조각은 메시지에 INTERNAL SERVER ERROR라는 정확한 구가 포함된 모든 로그 이벤트를 반환하는 필터 패턴의 예를 보여 줍니다.

"INTERNAL SERVER ERROR"

이 필터는 다음과 같은 로그 이벤트 메시지를 반환합니다.

  • [ERROR 500] INTERNAL SERVER ERROR

Example: Include and exclude terms

메시지에 일부 용어가 포함되고 다른 용어가 제외된 로그 이벤트를 반환하는 필터 패턴을 만들 수 있습니다. 제외하려는 용어 앞에 빼기 기호('-')를 입력합니다. 다음 코드 조각은 메시지에 ERROR라는 용어를 포함하고 ARGUMENTS라는 용어를 제외한 로그 이벤트를 반환하는 필터 패턴의 예를 보여 줍니다.

ERROR -ARGUMENTS

이 필터 패턴은 다음과 같은 로그 이벤트 메시지를 반환합니다.

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

이 필터 패턴은 단어 ARGUMENTS를 포함하므로 다음 로그 이벤트 메시지를 반환하지 않습니다.

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Example: Match everything

로그 이벤트의 모든 항목을 큰따옴표로 일치시킬 수 있습니다. 다음 코드 조각은 모든 로그 이벤트를 반환하는 필터 패턴의 예를 보여 줍니다.

" "

필터 패턴을 사용하여 JSON 로그 이벤트에서 일치하는 용어 검색

다음 예제에서는 문자열 및 숫자 값을 포함하는 JSON 용어와 일치하는 필터 패턴에 대한 구문을 작성하는 방법을 설명합니다.

Writing filter patterns that match strings

JSON 로그 이벤트에서 일치하는 문자열을 검색하도록 지표 필터를 생성할 수 있습니다. 다음 코드 조각은 문자열 기반 필터 패턴 구문 예제를 보여줍니다.

{ PropertySelector EqualityOperator String }

필터 패턴은 중괄호('{}')로 묶습니다. 문자열 기반 필터 패턴은 다음 부분을 포함해야 합니다.

  • 속성 선택기

    뒤에 마침표가 있는 달러 기호('$.')로 속성 선택기를 설정합니다. 속성 선택기는 하이픈('-') 및 밑줄('_') 문자도 지원하는 영숫자 문자열입니다. 문자열은 과학적 표기법을 지원하지 않습니다. 속성 선택기는 JSON 로그 이벤트의 값 노드를 가리킵니다. 값 노드는 문자열이나 숫자일 수 있습니다. 속성 선택기 뒤에 배열을 배치합니다. 배열의 요소는 0부터 시작하는 번호 매기기 체계를 따릅니다. 즉, 배열의 첫 번째 요소는 요소 0이고, 두 번째 요소는 요소 1이 되는 식입니다. 요소를 대괄호('[]')로 묶습니다. 속성 선택기가 배열이나 객체를 가리키는 경우 필터 패턴은 로그 형식과 일치하지 않습니다. JSON 속성에 마침표(".")가 포함된 경우 대괄호 표기법을 사용하여 해당 속성을 선택할 수 있습니다.

    참고

    와일드카드 선택기

    JSON 와일드카드를 사용하여 배열 요소 또는 JSON 객체 필드를 선택할 수 있습니다.

    할당량

    속성 선택기에서는 와일드카드 선택기를 최대 1개만 사용할 수 있습니다.

  • 같음 연산자

    같음('=') 또는 같지 않음('!=') 기호 중 하나를 사용하여 같음 연산자를 설정합니다. 같음 연산자는 부울 값(true 또는 false)을 반환합니다.

  • 문자열

    문자열을 큰따옴표("")로 묶을 수 있습니다. 영숫자 이외의 형식과 밑줄 기호가 포함된 문자열은 큰따옴표로 묶어야 합니다. 별표('*')를 와일드카드로 사용하여 텍스트와 일치시킵니다.

    참고

    JSON 로그 이벤트에서 일치하는 용어를 검색하기 위해 필터 패턴을 생성하는 경우 모든 조건부 정규식을 사용할 수 있습니다. 지원되는 정규식 목록은 지원되는 정규식을 참조하세요.

다음 코드 조각에는 문자열과 JSON 용어를 일치시키도록 필터 패턴의 서식을 지정하는 방법을 보여주는 필터 패턴 예제가 포함되어 있습니다.

{ $.eventType = "UpdateTrail" }
Writing filter patterns that match numeric values

JSON 로그 이벤트에서 일치하는 숫자 값을 검색하도록 필터 패턴을 생성할 수 있습니다. 다음 코드 조각은 숫자 값과 일치하는 필터 패턴 구문 예제를 보여줍니다.

{ PropertySelector NumericOperator Number }

필터 패턴은 중괄호('{}')로 묶습니다. 숫자 값과 일치하는 필터 패턴은 다음 부분을 포함해야 합니다.

  • 속성 선택기

    뒤에 마침표가 있는 달러 기호('$.')로 속성 선택기를 설정합니다. 속성 선택기는 하이픈('-') 및 밑줄('_') 문자도 지원하는 영숫자 문자열입니다. 문자열은 과학적 표기법을 지원하지 않습니다. 속성 선택기는 JSON 로그 이벤트의 값 노드를 가리킵니다. 값 노드는 문자열이나 숫자일 수 있습니다. 속성 선택기 뒤에 배열을 배치합니다. 배열의 요소는 0부터 시작하는 번호 매기기 체계를 따릅니다. 즉, 배열의 첫 번째 요소는 요소 0이고, 두 번째 요소는 요소 1이 되는 식입니다. 요소를 대괄호('[]')로 묶습니다. 속성 선택기가 배열이나 객체를 가리키는 경우 필터 패턴은 로그 형식과 일치하지 않습니다. JSON 속성에 마침표(".")가 포함된 경우 대괄호 표기법을 사용하여 해당 속성을 선택할 수 있습니다.

    참고

    와일드카드 선택기

    JSON 와일드카드를 사용하여 배열 요소 또는 JSON 객체 필드를 선택할 수 있습니다.

    할당량

    속성 선택기에서는 와일드카드 선택기를 최대 1개만 사용할 수 있습니다.

  • 숫자 연산자

    다음 기호 중 하나를 사용하여 숫자 연산자를 설정합니다. 보다 큼('>'), 보다 작음('<'), 같음('='), 같지 않음('!='), 이상('>=') 또는 이하('<=') 등.

  • 숫자

    더하기('+') 또는 빼기('-') 기호를 포함하는 정수를 사용하고 과학적 표기법을 따를 수 있습니다. 별표('*')를 와일드카드로 사용하여 숫자와 일치시킵니다.

다음 코드 조각에는 숫자 값과 JSON 용어를 일치시키도록 필터 패턴의 서식을 지정하는 방법을 보여주는 예제가 포함되어 있습니다.

// Filter pattern with greater than symbol { $.bandwidth > 75 } // Filter pattern with less than symbol { $.latency < 50 } // Filter pattern with greater than or equal to symbol { $.refreshRate >= 60 } // Filter pattern with less than or equal to symbol { $.responseTime <= 5 } // Filter pattern with equal sign { $.errorCode = 400} // Filter pattern with not equal sign { $.errorCode != 500 } // Filter pattern with scientific notation and plus symbol { $.number[0] = 1e-3 } // Filter pattern with scientific notation and minus symbol { $.number[0] != 1e+3 }

다음 예제에는 필터 패턴을 통해 JSON 로그 이벤트에서 일치하는 용어를 검색하는 방법을 보여주는 코드 조각이 포함되어 있습니다.

참고

JSON 로그 이벤트 예제에서 필터 패턴 예제를 테스트하는 경우 JSON 로그 예제를 한 줄에 입력해야 합니다.

JSON 로그 이벤트

{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null, "cluster.name": "c" }
Example: Filter pattern that matches string values

이 필터 패턴은 "eventType" 속성에서 "UpdateTrail" 문자열과 일치합니다.

{ $.eventType = "UpdateTrail" }
Example: Filter pattern that matches string values (IP address)

이 필터 패턴은 와일드카드를 포함하며 "123.123." 접두사가 있는 숫자는 포함하지 않으므로 "sourceIPAddress" 속성과 일치합니다.

{ $.sourceIPAddress != 123.123.* }
Example: Filter pattern that matches a specific array element with a string value

이 필터 패턴은 "arrayKey" 배열에서 "value" 요소와 일치합니다.

{ $.arrayKey[0] = "value" }
Example: Filter pattern that matches a string using regex

이 필터 패턴은 "eventType" 속성에서 "Trail" 문자열과 일치합니다.

{ $.eventType = %Trail% }
Example: Filter pattern that uses a wildcard to match values of any element in the array using regex

필터 패턴에는 "arrayKey" 배열에서 "value" 요소와 일치하는 정규식이 포함되어 있습니다.

{ $.arrayKey[*] = %val.{2}% }
Example: Filter pattern that uses a wildcard to match values of any element with a specific prefix and subnet using regex (IP address)

이 필터 패턴에는 "sourceIPAddress" 속성에서 "111.111.111.111" 요소와 일치하는 정규식이 포함되어 있습니다.

{ $.* = %111\.111\.111\.1[0-9]{1,2}% }
참고

할당량

속성 선택기에서는 와일드카드 선택기를 최대 1개만 사용할 수 있습니다.

Example: Filter pattern that matches a JSON property with a period (.) in the key
{ $.['cluster.name'] = "c" }
Example: Filter pattern that matches JSON logs using IS

IS 변수와 JSON 로그의 필드를 일치시키는 필터 패턴을 생성할 수 있습니다. IS 변수는 NULL, TRUE 또는 FALSE 값을 포함하는 필드와 일치할 수 있습니다. 다음 필터 패턴은 SomeObject 값이 NULL인 JSON 로그를 반환합니다.

{ $.SomeObject IS NULL }
Example: Filter pattern that matches JSON logs using not_exists

NOT EXISTS변수를 사용하여 필터 패턴을 생성하여 로그 데이터에 특정 필드가 포함되지 않은 JSON 로그를 반환할 수 있습니다. 다음 필터 패턴은 SomeOtherObject 필드를 포함하지 않는 JSON 로그를 반환하는 NOT EXISTS를 사용합니다.

{ $.SomeOtherObject NOT EXISTS }
참고

변수 IS NOTEXISTS는 현재 지원되지 않습니다.

필터 패턴에서 논리 연산자 AND('&&') 및 OR('||')을 사용하여 둘 이상의 조건이 참인 로그 이벤트와 일치하는 복합 표현식을 생성할 수 있습니다. 복합 표현식은 괄호('()') 사용과 () > && > || 표준 연산 순서를 지원합니다. 다음 예제에는 JSON 객체에서 일치하는 용어를 검색하도록 복합 표현식에서 필터 패턴을 사용하는 방법을 보여주는 코드 조각이 포함되어 있습니다.

JSON 객체

{ "user": { "id": 1, "email": "John.Stiles@example.com" }, "users": [ { "id": 2, "email": "John.Doe@example.com" }, { "id": 3, "email": "Jane.Doe@example.com" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ] }
Example: Expression that matches using AND (&&)

이 필터 패턴에는 숫자 값이 1"user""id"와 일치하고 문자열이 "John.Doe@example.com""users" 배열 첫 번째 요소의 "email"과 일치하는 복합 표현식이 포함되어 있습니다.

{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }
Example: Expression that matches using OR (||)

이 필터 패턴에는 문자열이 "John.Stiles@example.com""user""email"과 일치하는 복합 표현식이 포함되어 있습니다.

{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }
Example: Expression that doesn't match using AND (&&)

이 필터 패턴에는 표현식이 "actions"의 세 번째 작업과 일치하지 않아서 일치 항목을 찾지 못하는 복합 표현식이 포함되어 있습니다.

{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }
참고

할당량

속성 선택기에서 와일드카드 선택기를 최대 1개만 사용할 수 있으며, 복합 표현식이 포함된 필터 패턴에서는 와일드카드 선택기를 3개까지 사용할 수 있습니다.

Example: Expression that doesn't match using OR (||)

이 필터 패턴에는 표현식이 "users"의 첫 번째 속성 또는 "actions"의 세 번째 작업과 일치하지 않아서 일치 항목을 찾지 못하는 복합 표현식이 포함되어 있습니다.

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

필터 패턴을 사용하여 공백으로 구분된 로그 이벤트에서 일치하는 용어 검색

공백으로 구분된 로그 이벤트에서 일치하는 용어를 검색하도록 필터 패턴을 생성할 수 있습니다. 다음에서는 공백으로 구분된 로그 이벤트의 예제를 제공하고, 공백으로 구분된 로그 이벤트에서 일치하는 용어를 검색하는 필터 패턴 구문을 작성하는 방법을 설명합니다.

참고

공백으로 구분된 로그 이벤트에서 일치하는 용어를 검색하기 위해 필터 패턴을 생성하는 경우 모든 조건부 정규식을 사용할 수 있습니다. 지원되는 정규식 목록은 지원되는 정규식을 참조하세요.

Example: Space-delimited log event

다음 코드 조각은 7개의 필드(ip, user, username, timestamp, request, status_code, bytes)를 포함하는 공백으로 구분된 로그 이벤트를 보여 줍니다.

127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
참고

대괄호('[]') 와 큰따옴표("") 사이의 문자는 단일 필드로 간주됩니다.

Writing filter patterns that match terms in a space-delimited log event

공백으로 구분된 로그 이벤트에서 일치하는 용어를 검색하는 필터 패턴을 생성하려면 필터 패턴을 대괄호('[]')로 묶고 쉼표(',')로 이름이 구분된 필드를 지정합니다. 다음 필터 패턴은 7개의 필드를 구문 분석합니다.

[ip=%127\.0\.0\.[1-9]%, user, username, timestamp, request =*.html*, status_code = 4*, bytes]

숫자 연산자( >, <, =, !=, >= 또는 <=) 및 별표(*)를 와일드카드 또는 정규식으로 사용하여 필터 패턴에 조건을 제공할 수 있습니다. 필터 패턴 예제에서 ip는 IP 주소 범위 127.0.0.1~127.0.0.9와 일치하는 정규식을 사용하고, request에는 .html을 포함하는 값을 추출해야 함을 나타내는 와일드카드가 포함되어 있으며, status_code에는 4로 시작하는 값을 추출해야 함을 나타내는 와일드카드가 포함되어 있습니다.

공백으로 구분된 로그 이벤트에서 구문 분석하는 필드 수를 모르는 경우 줄임표(...)를 사용하여 이름이 지정되지 않은 필드를 참조할 수 있습니다. 줄임표는 필요 시 많은 필드를 참조할 수 있습니다. 다음 예제에서는 이전 필터 패턴 예제에 나온 이름이 없는 처음 4개의 필드를 나타내는 줄임표를 포함하는 필터 패턴을 보여줍니다.

[..., request =*.html*, status_code = 4*, bytes]

논리 연산자 AND(&&) 및 OR(||)를 사용하여 복합 표현식을 만들 수도 있습니다. 다음 필터 패턴에는 status_code 값은 404 또는 410이어야 함을 나타내는 복합 표현식이 포함되어 있습니다.

[ip, user, username, timestamp, request =*.html*, status_code = 404 || status_code = 410, bytes]

패턴 일치를 사용하여 특정 순서로 용어를 일치시키는 공백으로 구분된 필터 패턴을 생성할 수 있습니다. 표시기를 사용하여 용어의 순서를 지정합니다. 첫 번째 용어를 나타낼 때는 w1을 사용하고 후속 용어의 순서를 나타낼 때는 w2 등을 사용합니다. 용어 사이에 쉼표(',')를 입력합니다. 다음 예제에는 공백으로 구분된 필터 패턴으로 패턴 일치를 사용하는 방법을 보여주는 코드 조각이 포함되어 있습니다.

참고

공백으로 구분된 로그 이벤트에서 일치하는 용어를 검색하기 위해 필터 패턴을 생성하는 경우 모든 조건부 정규식을 사용할 수 있습니다. 지원되는 정규식 목록은 지원되는 정규식을 참조하세요.

공백으로 구분된 로그 이벤트

INFO 09/25/2014 12:00:00 GET /service/resource/67 1200 INFO 09/25/2014 12:00:01 POST /service/resource/67/part/111 1310 WARNING 09/25/2014 12:00:02 Invalid user request ERROR 09/25/2014 12:00:02 Failed to process request
Example: Match terms in order

다음과 같은 공백으로 구분된 필터 패턴은 로그 이벤트의 첫 번째 단어가 ERROR인 로그 이벤트를 반환합니다.

[w1=ERROR, w2]
참고

패턴 일치를 사용하는 공백으로 구분된 지표 필터를 생성하는 경우 용어 순서를 지정한 후 빈 표시기를 포함해야 합니다. 예를 들어, 첫 번째 단어가 ERROR인 로그 이벤트를 반환하는 필터 패턴을 생성하는 경우 w1 용어 뒤에 빈 w2 표시기를 포함합니다.

Example: Match terms with AND (&&) and OR (||)

논리 연산자 AND('&&') 및 OR('||')을 사용하여 조건을 포함하는 공백으로 구분된 필터 패턴을 생성할 수 있습니다. 다음 필터 패턴은 이벤트의 첫 번째 단어가 ERROR 또는 WARNING인 로그 이벤트를 반환합니다.

[w1=ERROR || w1=WARNING, w2]
Example: Exclude terms from matches

하나 이상의 용어를 제외한 로그 이벤트를 반환하는 공백으로 구분된 필터 패턴을 생성할 수 있습니다. 제외하려는 용어 앞에 같지 않음 기호('!=')를 입력합니다. 다음 코드 조각은 첫 번째 단어가 ERRORWARNING이 아닌 로그 이벤트를 반환하는 필터 패턴 예제를 보여줍니다.

[w1!=ERROR && w1!=WARNING, w2]
Example: Match the top level item in a resource URI

다음 코드 조각은 정규식을 사용하여 리소스 URI의 상위 항목과 일치하는 필터 패턴 예제를 보여줍니다.

[logLevel, date, time, method, url=%/service/resource/[0-9]+$%, response_time]
Example: Match the child level item in a resource URI

다음 코드 조각은 정규식을 사용하여 리소스 URI의 하위 항목과 일치하는 필터 패턴 예제를 보여줍니다.

[logLevel, date, time, method, url=%/service/resource/[0-9]+/part/[0-9]+$%, response_time]