FileLogWinLog 수집기 모두에 대해 CSV(쉼표로 구분된 값) 구문 분석기를 구성할 수 있습니다.

csv 구문 분석기에 대해 사용할 수 있는 옵션은 fieldsdelimiter입니다.

쉼표로 구분된 값 구문 분석기 옵션

csv 구문 분석기의 구조에 대한 다음 정보를 참고하십시오.

옵션 설명
fields

fields 옵션은 로그에 있는 필드의 이름을 지정합니다. 나열된 필드 이름의 전체 수는 로그에 있는 쉼표로 구분된 필드의 전체 수와 일치해야 합니다.

fields 옵션은 CSV 구문 분석기에 필수입니다. 이 옵션을 지정하지 않으면 아무것도 구문 분석되지 않습니다. 필드 내용에 따라 필드 값 앞뒤의 큰따옴표는 선택 사항입니다.

필드 이름은 다음과 같이 쉼표로 구분되어야 합니다.
fields = field_name1, field_name2, field_name3, field_name4
이 정의는 추출된 필드에 이름 field_name1, field_name2, field_name3field_name4가 순차적으로 할당되는 것으로 가정합니다.

CSV 구문 분석기가 일부 필드를 생략해야 하는 경우에는 해당 이름을 목록에서 생략할 수 있습니다. 예를 들면 다음과 같습니다.

 fields = field_name1, , field_name3, field_name4

이 경우 구문 분석기는 첫 번째, 세 번째 및 네 번째 필드만 이벤트에서 추출하며 여기에 이름 field_name1, field_name3field_name4를 순차적으로 할당합니다.

fields 옵션이 로그의 전체 필드 목록을 지정하지 않으면 구문 분석기는 빈 목록을 반환합니다. 예를 들어 로그 파일에 field1, field2, field3, field4field5가 포함되어 있지만 fields= field1,field2,field3만 지정된 경우 구문 분석기는 빈 필드 목록을 반환합니다.

구문 분석기가 빈 필드 목록을 반환하므로 CSV 구문 분석기에 fields=*를 사용할 수 없습니다. 이미 설명한 것처럼 특정 필드를 생략해야 하는 경우 이외에는 전체 필드 목록을 지정해야 합니다.

delimiter

delimiter 옵션은 구문 분석기에서 사용할 구분 기호를 지정합니다. 기본적으로 csv 구문 분석기는 쉼표를 구분 기호로 사용하지만, 구분 기호를 세미콜론, 공백 또는 기타 특수 문자로 변경할 수 있습니다. 정의된 구분 기호는 큰따옴표로 묶어야 합니다.

예: delimiter=","delimiter=";"

csv 구문 분석기의 경우 "||" 또는 "asd" 같이 따옴표로 묶은 문자 집합을 구분 기호로 지원합니다. 로그에 사용된 필드 값의 구분 기호는 구분 기호 매개 변수에 정의된 패턴과 정확하게 일치해야 합니다. 구분 기호가 일치하지 않으면 구문 분석기가 실패합니다.

공백 또는 탭 같은 특수 문자도 csv 구문 분석기에 사용할 구분 기호로 정의할 수 있지만, 이 경우에는 해당 특수 문자 앞에 이스케이프 문자가 반드시 있어야 합니다(\", \s, \t). 예를 들어 delimiter="\s" 또는 delimiter=" "와 같습니다.

delimiter 옵션은 선택 사항입니다.

CSV 로그 구문 분석기 구성

winlog 또는 filelog 소스에서 수집된 로그를 구문 분석하려면 다음 구성을 사용합니다.

[filelog|some_csv_logs]
directory=D:\Logs
include=*.txt;*.txt.*
parser=myparser

[parser|myparser]
base_parser = csv
fields = timestamp,field_name1, field_name2, field_name3
delimiter = ";"
field_decoder={"timestamp": "tsp_parser"}
[parser|tsp_parser]
; timestamp is a built-in parser
base_parser=timestamp            
; "format" is an option of timestamp parser 
format=%Y-%m-%d %H:%M:%S

이 구성을 사용하면 some_csv_logs 소스에서(예: directory=D:\Logs 디렉토리에서) 수집된 로그가 myparser에 의해 구문 분석됩니다. 수집된 로그에 세미콜론으로 구분된 세 개의 값이 포함된 경우, 구문 분석된 이벤트에는 field_name1, field_name2field_name3 이름이 순차적으로 할당됩니다.

다음 CSV 로그를 구문 분석하려면:

"United States","USA","North America","High income: OECD","Fiscal year end: September 30; reporting period for national accounts data: CY."
CSV 구문 분석기 구성을 정의합니다.
[parser|csv_log_parser]
base_parser=csv
fields=country_name, country_code, region, income_group, special_notes
CSV 구문 분석기가 다음 필드를 반환합니다.
country_name=United States
country_code=USA
region=North America
income_group=High income: OECD
special_notes=Fiscal year end: September 30; reporting period for national accounts data: CY.