NXLog 无法读取完整的 .csv 文件

NXLog 无法读取完整的 .csv 文件

我试图弄清楚为什么 NXLog 无法读取完整的 .csf 文件,该文件具有相同的名称,但每 12 小时由 Windows 编辑一次以进行导出。

NXLog的conf文件:

#define ROOT C:\Program Files\nxlog
define ROOT C:\Program Files (x86)\nxlog

Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log

<Extension _syslog>
    Module  xm_syslog
</Extension>

<Extension gelf>
    Module  xm_gelf
</Extension>

<Extension csv>
    Module xm_csv
    Fields $name, $number, $naam, $group
    FieldTypes string, string, string, string
    Delimiter ;
    #EscapeControl TRUE
</Extension>

<Input in>
    # Use 'im_mseventlog' for Windows XP, 2000 and 2003
    Module im_msvistalog
    Exec if (;) drop();
    # Uncomment the following to collect specific event logs only
    # Query <QueryList>\
# <Query Id="0">\
# <Select Path="Application">*</Select>\
# <Select Path="System">*</Select>\
# <Select Path="Security">*</Select>\
# </Query>\
# </QueryList>
</Input>

<Input in2>
    Module im_file
    File 'D:\Program Files\Service\sync-log\sync.csv'
    #File "/var/log/app/csv.log"
    Exec csv->parse_csv();
</Input>

<Output out>
    Module om_udp
    Host 127.0.0.1
    Port 12201
    OutputType GELF
</Output>

<Route r>
    Path in,in2 => out
</Route>

它读取该文件并包含以下内容:

000002;000002;"Aarts, Hans";FNC_care
000228;000228;"Smit, Jan";FNC_assist
000819;000819;"West, Tessa";FNC_doc
000287;000287;"Trom, Dik";"EML-k"

NXLog 的结果是他只找到最后一行信息。我的目标是让他能够读取整个 .csv 文件并分离给定的信息,这样它就不会看起来像这样:

000287;000287;"Trom, Dik";"EML-k"

但更像这样:

000287
000287
"Trom, Dik"
"EML-k"

输出的结果用于Graylog。

答案1

通过 GELF 发送时,字段(名称、编号、naam、组)应在 graylog 中可用。请注意,除非您使用类似以下内容明确指示它这样做,否则原始数据不会被重写:

Exec $raw_event = $name + "\n" + $number + "\n" + $naam + "\n" + $group;

相关内容