您可以為 FileLogWinLog 收集器設定以逗點分隔的值 (CSV) 剖析器。

csv 剖析器的可用選項為fieldsdelimiter

以逗點分隔的值剖析器選項

請注意下面關於 csv 剖析器結構的資訊。

選項 說明
fields

fields 選項指定記錄中存在之欄位的名稱。列出的欄位名稱總數必須等於記錄中以逗號分隔的欄位總數。

fields 是 CSV 剖析器的必要選項。如果未指定,將不會進行任何剖析。視欄位內容而定,欄位值周圍的雙引號是選擇性的。

欄位名稱必須以逗號分隔,例如
fields = field_name1, field_name2, field_name3, field_name4
此定義假設 field_name1field_name2field_name3field_name4 的名稱已依序指派至擷取的欄位。

如果 CSV 剖析器必須省略某些欄位,可在清單中省略其名稱。例如,

 fields = field_name1, , field_name3, field_name4

在這種情況下,剖析器僅從事件擷取第一個、第三個和第四個欄位,之後為其指派名稱 field_name1field_name3field_name4

如果欄位選項未指定記錄中的完整欄位清單,剖析器將傳回空白清單。例如,如果記錄檔案包含 field1field2field3field4field5,但僅指定了 fields= field1,field2,field3,剖析器將傳回空白欄位清單。

您無法針對 CSV 剖析器使用 fields=*,因為剖析器會傳回空白欄位清單。您必須指定完整欄位清單,除非您需要按照如上所述省略某些欄位。

delimiter

delimiter 選項指定剖析器要使用的分隔符號。依預設,csv 剖析器會使用逗點做為分隔符號;但是,您可以將分隔符號變更為分號、空格或其他特殊字元。定義的分隔符號必須用雙引號括住。

例如,delimiter=","delimiter=";"

csv 剖析器支援用引號括住的任何一組字元做為分隔符號,例如「||」或「asd」。記錄中欄位值的分隔符號應與分隔符號參數所定義的模式完全相符,否則剖析器將會失敗。

對於 csv 剖析器,可以將特殊字元 (如空格或 TAB) 定義為分隔符號,只要在對應特殊字元之前加上逸出字元 (\"、\s、\t) 即可。例如, delimiter="\s"delimiter=" "

delimiter 為選用的選項。

CSV 記錄剖析器組態

若要剖析從 winlogfilelog 來源收集的記錄,請使用下列組態。

[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_name1field_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.