您可以针对 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 按顺序分配给它们。

如果 fields 选项未指定日志中的完整字段列表,则分析程序将返回空列表。例如,如果日志文件包含 field1field2field3field4field5,但是仅指定了 fields= field1,field2,field3,则分析程序将返回空字段列表。

不能将 fields=* 用于 CSV 分析程序,因为分析程序会返回空字段列表。除非像上述那样需要省略某些字段,否则必须指定完整的字段列表。

delimiter

delimiter 选项指定分析程序要使用的分隔符。默认情况下,csv 分析程序使用逗号作为分隔符,但是,您可以将分隔符更改为分号、空格或者其他特殊字符。必须用双引号将定义的分隔符括起来。

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

csv 分析程序支持任何字符集作为分隔符(用双引号括起来),例如“||”或“asd”。日志中字段值的分隔符必须与分隔符参数定义的模式完全匹配,否则,分析程序将失败。

只要 \"、\s、\t 优先被用作转义符而非特殊字符,则可定义如空格或 Tab 之类的特殊字符为 csv 分析程序的分隔符。例如, 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.