기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
구성 가능한 구문 분석기 유형 프로세서
이 섹션에는 로그 이벤트 변환기에서 사용할 수 있는 구성 가능한 데이터 구문 분석기 프로세서에 대한 정보가 포함되어 있습니다.
목차
parseJSON
parseJSON 프로세서는 JSON 로그 이벤트를 구문 분석하며, 추출된 JSON 키-값 쌍을 대상 아래에 삽입합니다. 대상을 지정하지 않으면 프로세서가 루트 노드 아래에 키-값 쌍을 배치합니다. parseJSON을 첫 번째 프로세서로 사용할 때는 @message를 소스 필드로 사용하여 전체 로그 이벤트를 구문 분석해야 합니다. 초기 JSON 구문 분석 후 후속 프로세서에서 특정 필드를 조작할 수 있습니다.
원래 @message 내용은 변경되지 않으며 새 키가 메시지에 추가됩니다.
| 필드 | 설명 | 필수 | 기본값 | 제한 사항 |
|---|---|---|---|---|
|
source |
구문 분석할 로그 이벤트의 필드 경로. 점 표기법을 사용하여 하위 필드에 액세스합니다. 예: store.book |
아니요 |
|
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
대상 |
구문 분석된 JSON의 대상 필드 |
아니요 |
|
최대 길이: 128 최대 중첩 키 깊이: 3 |
예제
수집된 로그 이벤트가 다음과 같다고 가정해 보겠습니다.
{ "outer_key": { "inner_key": "inner_value" } }
이 parseJSON 프로세서가 있는 경우:
[ { "parseJSON": { "destination": "new_key" } } ]
변환된 로그 이벤트는 다음과 같습니다.
{ "new_key": { "outer_key": { "inner_key": "inner_value" } } }
grok
grok 프로세서를 사용하여 패턴 매칭을 사용하여 비정형 데이터를 구문 분석하고 구조화합니다. 이 프로세서는 로그 메시지에서 필드를 추출할 수도 있습니다.
| 필드 | 설명 | 필수 | 기본값 | 제한 사항 | 참고 사항 |
|---|---|---|---|---|---|
|
source |
Grok 매칭을 적용할 필드의 경로 |
아니요 |
|
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
|
match |
로그 이벤트와 매칭할 grok 패턴 |
예 |
최대 길이: 512 최대 grok 패턴: 20 일부 grok 패턴 유형에는 개별 사용량 제한이 있습니다. {URI, URIPARAM, URIPATHPARAM, SPACE, DATA, GREEDYDATA, GREEDYDATA_MULTILINE} 패턴의 조합은 최대 5회까지 사용할 수 있습니다. Grok 패턴은 유형 변환을 지원하지 않습니다. 일반적인 로그 형식 패턴(APACHE_ACCESS_LOG, NGINX_ACCESS_LOG, SYSLOG5424)의 경우 일반적인 로그 패턴 뒤에는 DATA, GREEDYDATA 또는 GREEDYDATA_MULTILINE 패턴만 포함될 수 있습니다. |
Grok 패턴의 구조
지원되는 grok 패턴 구조는 다음과 같습니다.
%{PATTERN_NAME:FIELD_NAME}
-
PATTERN_NAME: 특정 유형의 데이터와 일치시키기 위해 미리 정의된 정규식을 나타냅니다. 사전 정의된 grok 패턴만 지원됩니다. 사용자 지정 패턴 생성은 허용되지 않습니다.
-
FIELD_NAME: 추출된 값에 이름을 할당합니다.
FIELD_NAME은 선택 사항이지만 이 값을 지정하지 않으면 추출된 데이터가 변환된 로그 이벤트에서 삭제됩니다.FIELD_NAME은 점 표기법(예: 'parent.child')을 사용하는 경우 JSON 경로로 간주됩니다. -
유형 변환: 명시적 유형 변환은 지원되지 않습니다. TypeConverter 프로세서를 사용하여 grok에서 추출한 값의 데이터타입을 변환합니다.
보다 복잡한 매칭 표현식을 생성하려면 여러 grok 패턴을 결합하면 됩니다. 로그 이벤트를 매칭하도록 최대 20개의 grok 패턴을 결합할 수 있습니다. 예를 들어, 이 %{NUMBER:timestamp} [%{NUMBER:db}
%{IP:client_ip}:%{NUMBER:client_port}] %{GREEDYDATA:data} 패턴 조합을 사용하여 다음과 같은 Redis 슬로우 로그 항목에서 필드를 추출할 수 있습니다.
1629860738.123456 [0 127.0.0.1:6379] "SET" "key1" "value1"
Grok 예제
예제 1: grok를 사용하여 비정형 로그에서 필드 추출
샘플 로그:
293750 server-01.internal-network.local OK "[Thread-000] token generated"
사용된 변환기:
[ { "grok": { "match": "%{NUMBER:version} %{HOSTNAME:hostname} %{NOTSPACE:status} %{QUOTEDSTRING:logMsg}" } } ]
출력:
{ "version": "293750", "hostname": "server-01.internal-network.local", "status": "OK", "logMsg": "[Thread-000] token generated" }
샘플 로그:
23/Nov/2024:10:25:15 -0900 172.16.0.1 200
사용된 변환기:
[ { "grok": { "match": "%{HTTPDATE:timestamp} %{IPORHOST:clientip} %{NUMBER:response_status}" } } ]
출력:
{ "timestamp": "23/Nov/2024:10:25:15 -0900", "clientip": "172.16.0.1", "response_status": "200" }
예제 2: parseJSON과 함께 grok를 사용하여 JSON 로그 이벤트에서 필드 추출
샘플 로그:
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1" }
사용된 변환기:
[ { "parseJSON": {} }, { "grok": { "source": "logMsg", "match": "%{WORD:http_method} %{NOTSPACE:request} HTTP/%{NUMBER:http_version}" } } ]
출력:
{ "timestamp": "2024-11-23T16:03:12Z", "level": "ERROR", "logMsg": "GET /page.html HTTP/1.1", "http_method": "GET", "request": "/page.html", "http_version": "1.1" }
예제 3: FIELD_NAME에 점 주석이 있는 Grok 패턴
샘플 로그:
192.168.1.1 GET /index.html?param=value 200 1234
사용된 변환기:
[ { "grok": { "match": "%{IP:client.ip} %{WORD:method} %{URIPATHPARAM:request.uri} %{NUMBER:response.status} %{NUMBER:response.bytes}" } } ]
출력:
{ "client": { "ip": "192.168.1.1" }, "method": "GET", "request": { "uri": "/index.html?param=value" }, "response": { "status": "200", "bytes": "1234" } }
지원되는 grok 패턴
다음 표에는 grok 프로세서에서 지원하는 패턴이 나열되어 있습니다.
일반 grok 패턴
| Grok 패턴 | 설명 | 최대 패턴 제한 | 예제 |
|---|---|---|---|
| 사용자 이름 또는 사용자 | 소문자(a~z), 대문자(A~Z), 숫자(0~9), 점(.), 밑줄(_) 또는 하이픈(-)을 포함할 수 있는 하나 이상의 문자와 일치합니다. | 20 |
입력: 패턴: 출력: |
| INT | 선택 사항인 더하기 또는 빼기 기호 뒤에 하나 이상의 숫자가 오는 것과 일치합니다. | 20 |
입력: 패턴: 출력: |
| BASE10NUM | 부호 및 소수점 옵션이 있는 정수 또는 부동 소수점 숫자와 일치합니다. | 20 |
입력: 패턴: 출력: |
| BASE16NUM | 10진수 및 16진수와 선택적 기호(+ 또는 -) 및 선택적 0x 접두사와 일치합니다. | 20 |
입력: 패턴: 출력: |
| POSINT | 하나 이상의 숫자(1~9 다음에 0~9)로 구성된 앞에 0이 없는 정수와 일치합니다. | 20 |
입력: 패턴: 출력: |
| NONNEGINT | 0과 앞에 0이 있는 숫자를 포함하여 모든 정수(0~9의 숫자로 구성)와 일치합니다. | 20 |
입력: 패턴: 출력: |
| WORD | 문자, 숫자 및 밑줄을 포함하여 하나 이상의 단어 문자(\w)로 구성된 전체 단어와 일치합니다.. | 20 |
입력: 패턴: 출력: |
| NOTSPACE | 공백이 없는 하나 이상의 문자와 일치합니다. | 5 |
입력: 패턴: 출력: |
| SPACE | 0개 이상의 공백 문자와 일치합니다. | 5 |
입력: 패턴: 출력: |
| DATA | 모든 문자(줄 바꿈 제외)와 0회 이상 최소 일치합니다. | 5 |
입력: 패턴: 출력: |
| GREEDYDATA | 모든 문자(줄 바꿈 제외)와 0회 이상 최대 일치합니다. | 5 |
입력: 패턴: 출력: |
| GREEDYDATA_MULTILINE | 모든 문자(줄 바꿈 포함)와 0회 이상 최대 일치합니다. | 1 |
입력:
패턴: 출력: |
| QUOTEDSTRING | 이스케이프 처리된 문자가 포함된 따옴표(작은따옴표 또는 큰따옴표)로 묶인 문자열과 일치합니다. | 20 |
입력: 패턴: 출력: |
| UUID | 표준 UUID 형식과 일치합니다. 즉, 8개의 16진수 문자 뒤에 4개의 16진수 문자로 구성된 3개의 그룹이 오고 12개의 16진수 문자로 끝나며, 모두 하이픈으로 구분됩니다. | 20 |
입력: 패턴: 출력: |
| urn | URN(Uniform Resource Name) 구문과 일치합니다. | 20 |
입력: 패턴: 출력: |
AWS grok 패턴
| 패턴 | 설명 | 최대 패턴 제한 | 예제 |
|---|---|---|---|
|
ARN |
파티션( |
5 |
입력: 패턴: 출력: |
네트워킹 grok 패턴
| Grok 패턴 | 설명 | 최대 패턴 제한 | 예제 |
|---|---|---|---|
| CISCOMAC | 4-4-4 16진수 형식의 MAC 주소와 일치합니다. | 20 |
입력: 패턴: 출력: |
| WINDOWSMAC | 하이픈이 포함된 16진수 형식의 MAC 주소와 일치합니다. | 20 |
입력: 패턴: 출력: |
| COMMONMAC | 콜론이 포함된 16진수 형식의 MAC 주소와 일치합니다. | 20 |
입력: 패턴: 출력: |
| MAC | CISCOMAC, WINDOWSMAC 또는 COMMONMAC grok 패턴 중 하나와 일치합니다. | 20 |
입력: 패턴: 출력: |
| IPV6 | 압축된 양식 및 IPv4 매핑된 IPv6 주소를 포함한 IPv6 주소와 일치합니다. | 5 |
입력: 패턴: 출력: |
| IPV4 | IPv4 주소와 일치합니다. | 20 |
입력: 패턴: 출력: |
| IP | %{IPv6}에서 지원하는 IPv6 주소 또는 %{IPv4}에서 지원하는 IPv4 주소 중 하나와 일치합니다. | 5 |
입력: 패턴: 출력: |
| HOSTNAME 또는 HOST | 하위 도메인을 포함한 도메인 이름과 일치합니다. | 5 |
입력: 패턴: 출력: |
| IPORHOST | 호스트 이름 또는 IP 주소와 일치합니다. | 5 |
입력: 패턴: 출력: |
| HOSTPORT | %{IPORHOST} 패턴에서 지원하는 IP 주소 또는 호스트 이름과 일치하고, 그 뒤에 콜론과 포트 번호가 오며, 출력에서 포트를 'PORT'로 캡처합니다. | 5 |
입력: 패턴: 출력: |
| URIHOST | %{IPORHOST} 패턴에서 지원하는 IP 주소 또는 호스트 이름과 일치하고, 선택적으로 그 뒤에 콜론과 포트 번호가 오고, 포트가 있는 경우 'port'로 캡처합니다. | 5 |
입력: 패턴: 출력: |
경로 grok 패턴
| Grok 패턴 | 설명 | 최대 패턴 제한 | 예제 |
|---|---|---|---|
| UNIXPATH | 쿼리 파라미터를 포함할 수 있는 URL 경로와 일치합니다. | 20 |
입력: 패턴: 출력: |
| WINPATH | Windows 파일 경로와 일치합니다. | 5 |
입력: 패턴: 출력: |
| PATH | URL 또는 Windows 파일 경로와 일치합니다. | 5 |
입력: 패턴: 출력: |
| TTY | 터미널 및 가상 터미널의 Unix 디바이스 경로와 일치합니다. | 20 |
입력: 패턴: 출력: |
| URIPROTO | 문자와 일치하며, 선택적으로 그 뒤에 더하기(+) 문자와 추가 문자 또는 더하기(+) 문자가 옵니다. | 20 |
입력: 패턴: 출력: |
| URIPATH | URI의 경로 구성 요소와 일치합니다. | 20 |
입력: 패턴: 출력: |
| URIPARAM | URL 쿼리 파라미터와 일치합니다. | 5 |
입력: 패턴: 출력: |
| URIPATHPARAM | URI 경로와 일치하며, 선택적으로 그 뒤에 쿼리 파라미터가 옵니다. | 5 |
입력: 패턴: 출력: |
| URI | 전체 URI와 일치합니다. | 5 |
입력: 패턴: 출력: |
날짜/시간 Grok 패턴
| Grok 패턴 | 설명 | 최대 패턴 제한 | 예제 |
|---|---|---|---|
| MONTH | 전체 또는 축약된 영어 월 이름과 전체 단어로 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| MONTHNUM | 1에서 12까지의 월 수와 일치하며, 한 자릿수 월의 경우 선택적으로 앞에 0이 표시됩니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| MONTHNUM2 | 01에서 12까지의 두 자리 숫자와 일치합니다. | 20 |
입력: 패턴: 출력: |
| MONTHDAY | 1에서 31까지의 일과 일치하며, 선택적으로 앞에 0이 표시됩니다. | 20 |
입력: 패턴: 출력: |
| YEAR | 2자리 또는 4자리 연도와 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| DAY | 전체 또는 축약된 요일 이름과 일치합니다. | 20 |
입력: 패턴: 출력: |
| 시간 | 24시간 형식의 시간(0~23)과 일치하며, 선택적으로 앞에 영(0)이 표시됩니다. | 20 |
입력: 패턴: 출력: |
| 분 | 분(00~59)과 일치합니다. | 20 |
입력: 패턴: 출력: |
| SECOND | 초((0)0~60)를 나타내는 숫자와 일치하며, 선택적으로 그 뒤에 소수점 또는 콜론과 소수 분을 나타내는 하나 이상의 숫자가 옵니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: 입력: 패턴: 출력: |
| TIME | 시간, 분 및 초가 (H)H:mm:(s)s 형식인 시간 형식과 일치합니다. 초에는 윤초(0)0~60이 포함됩니다. | 20 |
입력: 패턴: 출력: |
| DATE_US | (M)M/(d)d/(yy)yy 또는 (M)M-(d)d-(yy)yy 형식의 날짜와 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| DATE_EU | (d)d/(M)M/(yy)yy, (d)d-(M)M-(yy)yy 또는 (d)d.(M)M.(yy)yy 형식의 날짜와 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| ISO8601_TIMEZONE | UTC 오프셋 'Z' 또는 선택적 콜론이 포함된 시간대 오프셋과 [+-](H)H(:)mm 형식으로 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: 입력: 패턴: 출력: |
| ISO8601_SECOND | 초((0)0~60)를 나타내는 숫자와 일치하며, 선택적으로 그 뒤에 소수점 또는 콜론과 소수 초를 나타내는 하나 이상의 숫자가 옵니다. | 20 |
입력: 패턴: 출력: |
| TIMESTAMP_ISO8601 | 선택적 초 및 시간대가 포함된 ISO8601 날짜/시간 형식 (yy)yy-(M)M-(d)dT(H)H:mm:((s)s)(Z|[+-](H)H:mm)과 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: 입력: 패턴: 출력: |
| 날짜 | %{DATE_US}를 사용하는 미국 형식 또는 %{DATE_EU}를 사용하는 EU 형식의 날짜와 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| DATESTAMP | 공백 또는 하이픈으로 구분된 %{DATE} 뒤에 %{TIME}이 오는 패턴과 일치합니다. | 20 |
입력: 패턴: 출력: |
| TZ | 공통 시간대 약어(PST, PDT, MST, MDT, CST CDT, EST, EDT, UTC)와 일치합니다. | 20 |
입력: 패턴: 출력: |
| DATESTAMP_RFC822 | Day MonthName (D)D (YY)YY (H)H:mm:(s)s Timezone 형식의 날짜/시간과 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| DATESTAMP_RFC2822 | Day, (d)d MonthName (yy)yy (H)H:mm:(s)s Z|[+-](H)H:mm 형식의 RFC2822 날짜/시간과 일치합니다. | 20 |
입력: 패턴: 출력: 입력: 패턴: 출력: |
| DATESTAMP_OTHER | Day MonthName (d)d (H)H:mm:(s)s Timezone (yy)yy 형식의 날짜/시간과 일치합니다. | 20 |
입력: 패턴: 출력: |
| DATESTAMP_EVENTLOG | 구분자가 없는 압축 날짜/시간((yy)yyMM(d)d(H)Hmm(s)s)과 일치합니다. | 20 |
입력: 패턴: 출력: |
로그 grok 패턴
| Grok 패턴 | 설명 | 최대 패턴 제한 | 예제 |
|---|---|---|---|
| LOGLEVEL | Alert/ALERT, Trace/TRACE, Debug/DEBUG, Notice/NOTICE, Info/INFO, Warn/Warning/WARN/WARNING, Err/Error/ERR/ERROR, Crit/Critical/CRIT/CRITICAL, Fatal/FATAL, Severe/SEVERE, Emerg/Emergency/EMERG/EMERGENCY를 포함하여 다양한 대문자 및 약어의 표준 로그 수준과 일치합니다. |
20 |
입력: 패턴: 출력: |
| HTTPDATE | 로그 파일에 자주 사용되는 날짜/시간 형식과 일치합니다. 형식: (d)d/MonthName/(yy)yy:(H)H:mm:(s)s Timezone MonthName: 전체 또는 축약된 영어 월 이름과 일치합니다(예: 'Jan' 또는 'January'). Timezone: %{INT} grok 패턴과 일치합니다. | 20 |
입력: 패턴: 출력: |
| SYSLOGTIMESTAMP | MonthName (d)d (H)H:mm:(s)s 날짜 형식과 일치합니다. MonthName: 전체 또는 축약된 영어 월 이름과 일치합니다(예: 'Jan' 또는 'January'). | 20 |
입력: 패턴: 출력: |
| PROG | 문자, 숫자, 점, 밑줄, 슬래시, 백분율 기호 및 하이픈 문자로 구성된 문자열로 구성된 프로그램 이름과 일치합니다. | 20 |
입력: 패턴: 출력: |
| SYSLOGPROG | PROG grok 패턴과 일치하며, 선택적으로 그 뒤에 대괄호로 묶인 프로세스 ID가 옵니다. | 20 |
입력: 패턴: 출력: |
| SYSLOGHOST | %{HOST} 또는 %{IP} 패턴과 일치합니다. | 5 |
입력: 패턴: 출력: |
| SYSLOGFACILITY | 십진수 형식의 syslog 우선 순위와 일치합니다. 값은 각진 대괄호(<>)로 묶어야 합니다. | 20 |
입력: 패턴: 출력: |
일반적인 로그 grok 패턴
사전 정의된 사용자 지정 grok 패턴을 사용하여 Apache, NGINX 및 Syslog Protocol(RFC 5424) 로그 형식을 매칭할 수 있습니다. 이러한 특정 패턴을 사용하는 경우 매칭 구성의 첫 번째 패턴이어야 하며, 다른 패턴보다 우선할 수 없습니다. 또한 정확히 하나의 데이터로만 추적할 수 있습니다. GREEDYDATA 또는 GREEDYDATA_MULTILINE 패턴.
| Grok 패턴 | 설명 | 최대 패턴 제한 |
|---|---|---|
|
APACHE_ACCESS_LOG |
Apache 액세스 로그와 일치합니다. |
1 |
|
NGINX_ACCESS_LOG |
NGINX 액세스 로그와 일치합니다. |
1 |
|
SYSLOG5424 |
Syslog 프로토콜(RFC 5424) 로그와 일치합니다. |
1 |
다음은 이러한 일반적인 로그 형식 패턴을 사용하기 위한 유효한 예제와 잘못된 예제입니다.
"%{NGINX_ACCESS_LOG} %{DATA}" // Valid "%{SYSLOG5424}%{DATA:logMsg}" // Valid "%{APACHE_ACCESS_LOG} %{GREEDYDATA:logMsg}" // Valid "%{APACHE_ACCESS_LOG} %{SYSLOG5424}" // Invalid (multiple common log patterns used) "%{NGINX_ACCESS_LOG} %{NUMBER:num}" // Invalid (Only GREEDYDATA and DATA patterns are supported with common log patterns) "%{GREEDYDATA:logMsg} %{SYSLOG5424}" // Invalid (GREEDYDATA and DATA patterns are supported only after common log patterns)
일반적인 로그 형식 예제
Apache 로그 예제
샘플 로그:
127.0.0.1 - - [03/Aug/2023:12:34:56 +0000] "GET /page.html HTTP/1.1" 200 1234
변환기:
[ { "grok": { "match": "%{APACHE_ACCESS_LOG}" } } ]
출력:
{ "request": "/page.html", "http_method": "GET", "status_code": 200, "http_version": "1.1", "response_size": 1234, "remote_host": "127.0.0.1", "timestamp": "2023-08-03T12:34:56Z" }
NGINX 로그 예제
샘플 로그:
192.168.1.100 - Foo [03/Aug/2023:12:34:56 +0000] "GET /account/login.html HTTP/1.1" 200 42 "https://www.amazon.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"
변환기:
[ { "grok": { "match": "%{NGINX_ACCESS_LOG}" } } ]
출력:
{ "request": "/account/login.html", "referrer": "https://www.amazon.com/", "agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", "http_method": "GET", "status_code": 200, "auth_user": "Foo", "http_version": "1.1", "response_size": 42, "remote_host": "192.168.1.100", "timestamp": "2023-08-03T12:34:56Z" }
Syslog 프로토콜(RFC 5424) 로그 예제
샘플 로그:
<165>1 2003-10-11T22:14:15.003Z mymachine.example.com evntslog - ID47 [exampleSDID@32473 iut="3" eventSource= "Application" eventID="1011"][examplePriority@32473 class="high"]
변환기:
[ { "grok": { "match": "%{SYSLOG5424}" } } ]
출력:
{ "pri": 165, "version": 1, "timestamp": "2003-10-11T22:14:15.003Z", "hostname": "mymachine.example.com", "app": "evntslog", "msg_id": "ID47", "structured_data": "exampleSDID@32473 iut=\"3\" eventSource= \"Application\" eventID=\"1011\"", "message": "[examplePriority@32473 class=\"high\"]" }
csv
csv 프로세서는 로그 이벤트의 쉼표로 구분된 값(CSV)을 열로 구문 분석합니다.
| 필드 | 설명 | 필수 | 기본값 | 제한 사항 |
|---|---|---|---|---|
|
source |
구문 분석할 로그 이벤트의 필드 경로 |
아니요 |
|
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
delimiter |
원래 쉼표로 구분된 값 로그 이벤트에서 각 열을 구분하는 데 사용되는 문자 |
아니요 |
|
최대 길이: 값이 |
|
quoteCharacter |
단일 데이터 열에 대한 텍스트 한정자로 사용되는 문자 |
아니요 |
|
최대 길이: 1 |
|
columns |
변환된 로그 이벤트의 열에 사용할 이름의 목록. |
아니요 |
|
최대 CSV 열: 100 최대 길이: 128 최대 중첩 키 깊이: 3 |
delimiter을 \t로 설정하면 탭 문자에서 각 열이 구분되며, \t은 단일 공백 문자에서 각 열을 구분합니다.
예제
수집된 로그 이벤트의 일부가 다음과 같다고 가정해 보겠습니다.
'Akua Mansa':28:'New York: USA'
csv 프로세서만 사용한다고 가정해 보겠습니다.
[ { "csv": { "delimiter": ":", "quoteCharacter": "'" } } ]
변환된 로그 이벤트는 다음과 같습니다.
{ "column_1": "Akua Mansa", "column_2": "28", "column_3": "New York: USA" }
parseKeyValue
parseKeyValue 프로세서를 사용하여 지정된 필드를 키-값 쌍으로 구문 분석합니다. 다음 옵션을 사용하여 필드 정보를 구문 분석하도록 프로세서를 사용자 지정할 수 있습니다.
| 필드 | 설명 | 필수 | 기본값 | 제한 사항 |
|---|---|---|---|---|
|
source |
구문 분석할 로그 이벤트의 필드 경로 |
아니요 |
|
최대 길이: 128 최대 중첩 키 깊이: 3 |
|
대상 |
추출된 키-값 쌍을 넣을 대상 필드 |
아니요 |
최대 길이: 128 |
|
|
fieldDelimiter |
원래 로그 이벤트의 키-값 쌍 간에 사용되는 필드 구분 문자 문자열. |
아니요 |
|
최대 길이: 128 |
|
keyValueDelimiter |
변환된 로그 이벤트의 각 쌍에서 키와 값 사이에 사용할 구분 문자 문자열 |
아니요 |
|
최대 길이: 128 |
|
nonMatchValue |
키-값 쌍이 성공적으로 분할되지 않은 경우 결과의 값 필드에 삽입할 값. |
아니요 |
최대 길이: 128 |
|
|
keyPrefix |
변환된 모든 키에 접두사를 추가하려면 여기에 지정합니다. |
아니요 |
최대 길이: 128 |
|
|
overwriteIfExists |
대상 키가 이미 있는 경우 값을 덮어쓸지 여부 |
아니요 |
|
예제
다음 예제 로그 이벤트를 살펴봅니다.
key1:value1!key2:value2!key3:value3!key4
다음 프로세서 구성을 사용한다고 가정해 보겠습니다.
[ { "parseKeyValue": { "destination": "new_key", "fieldDelimiter": "!", "keyValueDelimiter": ":", "nonMatchValue": "defaultValue", "keyPrefix": "parsed_" } } ]
변환된 로그 이벤트는 다음과 같습니다.
{ "new_key": { "parsed_key1": "value1", "parsed_key2": "value2", "parsed_key3": "value3", "parsed_key4": "defaultValue" } }