기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
지원되는 정규식 구문
정확한 텍스트 일치를 넘어 유연한 패턴 일치가 필요한 경우 정규식을 사용합니다. 정규식은 다음과 같은 경우에 특히 유용합니다.
변수 형식: 형식이 다른 IP 주소, 타임스탬프 또는 IDs 일치
부분 일치: 텍스트의 모든 위치에서 특정 패턴이 포함된 로그 항목 찾기
복잡한 조건: 값의 범위, 선택적 문자 또는 대체 철자 일치
예를 들어 %\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}%
를 사용하여 IP 주소 형식을 일치시키거나 로그에서 "오류"/"오류" 및 "실패"/"실패"를 모두 포착%[Ee]rror|[Ff]ail%
합니다.
%
(정규식 패턴 앞뒤의 백분율 기호)로 묶인 정규식 패턴을 사용하여 로그 이벤트에서 일치하는 용어를 검색할 수 있습니다. 다음 예제에서는 AUTHORIZED 키워드가 포함된 모든 로그 이벤트를 반환하는 필터 패턴을 보여줍니다.
%AUTHORIZED%
이 필터 패턴은 다음과 같은 로그 이벤트 메시지를 반환합니다.
[ERROR 401] UNAUTHORIZED REQUEST
[SUCCESS 200] AUTHORIZED REQUEST
다음 섹션을 확장하여 CloudWatch Logs 필터 패턴에서 지원되는 특정 정규식 연산자 및 구문 규칙에 대한 세부 정보를 봅니다.
정규식을 사용하여 로그 데이터를 검색하고 필터링하는 경우 표현식을 %
로 묶어야 합니다.
정규식을 포함하는 필터 패턴에는 다음만 포함할 수 있습니다.
-
영숫자 - 영숫자는 문자(A~Z 또는 a~z) 또는 숫자(0~9)에 해당하는 문자입니다.
-
지원되는 기호 문자 - 여기에는 '
:
', '_
', '#
', '=
', '@
', '/
', ';
', ',
' 및 '-
'가 포함됩니다. 예를 들어,%something!%
는 '!
'가 지원되지 않으므로 거부됩니다. -
지원되는 연산자 - 여기에는 '
^
', '$
', '?
', '[
', ']
', '{
', '}
', '|
', '\
', '*
', '+
' 및 '.
'가 포함됩니다.
(
및 )
연산자는 지원되지 않습니다. 하위 패턴을 정의할 때 괄호를 사용할 수 없습니다.
멀티바이트 문자는 지원되지 않습니다.
참고
할당량
지표 필터 또는 구독 필터를 생성하는 경우 각 로그 그룹에 대한 정규식이 포함된 최대 5개의 필터 패턴이 있습니다.
지표 필터 및 구독 필터에 대해 구분된 필터 패턴 또는 JSON 필터 패턴을 생성하거나 로그 이벤트 또는 Live Tail을 필터링하는 경우 각 필터 패턴에 대해 2개의 정규식으로 제한됩니다.
지원되는 연산자 사용
-
^
: 문자열의 시작 위치로 일치 항목을 고정합니다. 예를 들어,%^[hc]at%
는 문자열의 시작 위치만 일치시켜 'hat' 및 'cat'과 일치합니다. -
$
: 문자열의 끝 위치로 일치 항목을 고정합니다. 예를 들어,%[hc]at$%
는 문자열의 끝 위치만 일치시켜 'hat' 및 'cat'과 일치합니다. -
?
: 이전 용어의 0개 또는 1개 발생과 일치합니다. 예를 들어,%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%
는 "회색" 또는 "회색"과 일치할 수 있습니다. -
%^starting|^initializing|^shutting down%
는 "시작 중 ..." 또는 "초기화 중 ..." 또는 "종료 중"과 일치할 수 있지만 "초기화 건너뛰기 중 ..."과 일치하지 않습니다. -
%abcc|ab[^c]$
는 "abcc ..." 및 "aba ..."와 일치할 수 있지만 "aac ..."와 일치하지 않습니다.
-
-
\
: 이스케이프 문자로, 이 문자를 사용하면 연산자의 특수한 의미 대신, 문자 그대로의 의미를 사용할 수 있습니다. 예를 들어,%\[.\]%
는 대괄호가 이스케이프 처리되었으므로 '[a]', '[b]', '[7]', '[@]', '[]]' 및 '[ ]'와 같이 '[' 및 ']'로 묶인 모든 단일 문자와 일치합니다.참고
%10\.10\.0\.1%
는 IP 주소 10.10.0.1과 일치하는 정규식을 생성하는 올바른 방법입니다. -
*
: 앞에 오는 용어의 0개 이상의 인스턴스와 일치합니다. 예를 들어,%ab*c%
는 'ac', 'abc' 및 'abbbc'와 일치할 수 있으며,%ab[0-9]*%
는 'ab', 'ab0' 및 'ab129'와 일치할 수 있습니다. -
+
: 앞에 오는 용어의 1개 이상의 인스턴스와 일치합니다. 예를 들어,%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%
는(
와 일치합니다.