Назад | Перейти на главную страницу

NXLog не может прочитать полный файл .csv

Я пытаюсь понять, почему NXLog не может прочитать полный файл .csf, потому что он имеет то же имя, но редактируется каждые 12 часов окнами для экспорта.

conf файла NXLog:

#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.

Поля (имя, номер, имя, группа) должны быть доступны в сером журнале при отправке через GELF. Обратите внимание, что исходные данные не будут перезаписаны, если вы явно не укажете это на что-то вроде этого:

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