Fastmatch 로그 파서
개요
설정은 fastmatch 파서는 로그 라인 내에서 필드의 위치를 지정하는 단순한 문자열 패턴을 사용합니다. 이름에서 알 수 있듯이 매우 빠르며 텍스트 로그를 파싱하는 권장 방법으로 고려해야 합니다. 필드의 순서를 알고 있는 대부분의 구조화된 텍스트 로그 사례를 처리할 수 있습니다. 사실 너무 빨라서 여러 패턴을 순서대로 지정하여 테스트할 수 있으므로 로그 라인 구조에 약간의 변형이 있는 경우에도 이를 '해결'할 수 있습니다.
fastmatch 사용 예시
다음 예시 로그 라인은 Apache Common Log 형식을 사용합니다:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326다음은 이 로그 유형에 대해 다음을 사용하여 로그 스키마를 정의하는 방법입니다 fastmatch:
Panther 콘솔에서는 다음을 따릅니다 사용자 지정 스키마를 수동으로 생성하는 방법 안내을 선택하고, FastMatch 파서를 선택합니다.

다음 필드 및 지표 섹션(위 스크린샷에 표시된 파서 섹션 아래), 우리는 필드를 정의합니다:
필드:
- 이름: remote_ip
type: string
지표:
- ip
- name: identity
type: string
- name: user
type: string
- 이름: timestamp
type: timestamp
isEventTime: true
timeFormats:
- '%d/%b/%Y:%H:%M:%S %z'
- name: method
type: string
- 이름: request_uri
type: string
- 이름: protocol
type: string
- 이름: status
유형: int
- name: bytes_sent
type: bigintfastmatch 패턴 이해하기
패턴은 %{field_name} 플레이스홀더를 사용하여 로그 라인에서 필드가 예상되는 위치를 설정합니다. 예를 들어 다음 텍스트를 매칭하려면:
다음 패턴을 사용할 수 있습니다(명확성을 위해 작은따옴표로 둘러쌈):
Panther 콘솔에서 스키마를 정의하는 경우 패턴을 매치 패턴 필드에 입력합니다:

구분자
두 연속된 필드 사이의 텍스트는 그들 사이의 '구분자'를 정의합니다. 구분자는 비어 있을 수 없습니다.
위 예의 패턴에서는 "@" 를 생략할 수 없습니다 service 와 ip.
이전의 필드는 구분자 텍스트를 포함할 수 없습니다. 위 예에서: timestamp
는 공백을 포함할 수 없습니다는 포함할 수 없습니다" "servicelog_level"@"iplog_level"] ["익명 필드log_level"] "
이름 없는 필드 플레이스홀더(
)는 무시됩니다.%{}테일 캡처
패턴의 마지막 필드 뒤에 구분자 텍스트가
없으면, 그것은 모든 것 을(를) 텍스트의 끝까지 캡처합니다. 위 예에서 message 는 "Something when wrong" 을(를) 캡처합니다 따옴표 처리
일부 경우 필드가 텍스트 내에서 따옴표로 감싸질 수 있습니다:
2020-10-10T14:32:05 "Some quoted text with \"escaped quotes\" inside"
%{timestamp} "%{message}"
이 방법은 단일 및 이중 따옴표 모두에 대해 작동합니다.
Last updated
Was this helpful?

