您可以為 FileLog 和 WinLog 收集器設定以逗點分隔的值 (CSV) 剖析器。
csv 剖析器的可用選項為fields和delimiter。
以逗點分隔的值剖析器選項
請注意下面關於 csv 剖析器結構的資訊。
| 選項 | 說明 |
|---|---|
fields |
欄位名稱必須以逗號分隔,例如
fields = field_name1, field_name2, field_name3, field_name4此定義假設 field_name1、 field_name2、 field_name3 和 field_name4 的名稱已依序指派至擷取的欄位。 如果 CSV 剖析器必須省略某些欄位,可在清單中省略其名稱。例如, fields = field_name1, , field_name3, field_name4 在這種情況下,剖析器僅從事件擷取第一個、第三個和第四個欄位,之後為其指派名稱 field_name1、field_name3 和 field_name4。 如果欄位選項未指定記錄中的完整欄位清單,剖析器將傳回空白清單。例如,如果記錄檔案包含 您無法針對 CSV 剖析器使用 |
delimiter |
例如, csv 剖析器支援用引號括住的任何一組字元做為分隔符號,例如「||」或「asd」。記錄中欄位值的分隔符號應與分隔符號參數所定義的模式完全相符,否則剖析器將會失敗。 對於 csv 剖析器,可以將特殊字元 (如空格或 TAB) 定義為分隔符號,只要在對應特殊字元之前加上逸出字元 (\"、\s、\t) 即可。例如, |
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_name2 和 field_name3 名稱。
剖析以下 CSV 記錄:
"United States","USA","North America","High income: OECD","Fiscal year end: September 30; reporting period for national accounts data: CY."
[parser|csv_log_parser] base_parser=csv fields=country_name, country_code, region, income_group, special_notesCSV 剖析器會傳回以下欄位:
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.