Nxlog 多行输入至 1 个 Syslog 消息

Nxlog 多行输入至 1 个 Syslog 消息

我正在使用 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>
================================================================================================

我正在尝试将此日志发送到我的 syslog 服务器,我想将多行合并为一行,以便我可以轻松地 grep/搜索特定用户或组。我已阅读 nxlog 网站上有关多行的一些文档,但尚未找到将它们全部放在带有 syslog 标头的 1 个条目中的特定配置。

谢谢,埃里克

答案1

尚未测试,但我认为你需要这样的东西:

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

相关内容