Я использую nxlog для конца пользовательского файла журнала на одном из моих серверов Windows. Каждая запись в текстовом файле выглядит подобной этому.
===================================================================================================================
1/14/2014 3:08:48 PM DOMAIN\user1 adding group member...
Domain: blah
Group: TestGroup
Member: CN=Joe Bob,CN=Users,DC=blah,DC=ARG,DC=com
1/14/2014 3:08:48 PM 1 member added.<br>
================================================================================================
Я пытаюсь отправить этот журнал на свой сервер системного журнала, и я хочу объединить эти несколько строк к 1 строке, таким образом, я могу легко grep/search для определенных пользователей или групп. Я прочитал часть документации относительно веб-сайта nxlog относительно мультилинии, но не нашел, что определенная конфигурация помещает их всех в 1 запись с заголовком системного журнала.
Спасибо, Eric
не тестировали, но я думаю, что вам нужно что-то вроде этого:
<Extension multi>
Module xm_multiline
HeaderLine /^================/
EndLine /^===============/
</Extension>
<Input in>
Module im_file
File "input.log"
InputType multi
# Remove the boundary markers
Exec if $raw_event =~ s/========[=]+//g {}
# Make a single line
Exec $raw_event = replace($raw_event, "\r\n", " ");
</Input>
<Output>
Module om_udp
Host 1.2.3.4
Port 514
Exec to_syslog_bsd();
</Output>
<Route>
....