Я пытаюсь понять, почему 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;