如何使用 Nxlog 将 Windows 日志转发到 rsyslog 服务器(linux)?

如何使用 Nxlog 将 Windows 日志转发到 rsyslog 服务器(linux)?

我在 WinServ2012 R2 Standard 上使用 nxlog 版本 3.0,我可以转发 Eventviewer --> windows 日志 --> 应用程序、系统、安全下的事件日志。但我无法转发不同日志目录/级别的其他日志(例如屏幕截图)

在此处输入图片描述

下面是我的 nxlog 配置文件 nxlog.conf,我试图从Microsoft-Windows-DriverDriverFrameworks-UserMode/Operational事件日志中获取 USB 驱动器/笔式驱动器插入/弹出日志。日志已填充,但我无法在 syslog 服务器上接收它们。

Panic Soft
define ROOT C:\Program Files (x86)\nxlog
define CERTDIR %ROOT%\cert
define CONFDIR %ROOT%\conf
define LOGDIR %ROOT%\data
define LOGFILE '%LOGDIR%/nxlog.log'
Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogLevel INFO

<Extension _syslog>
    Module      xm_syslog
</Extension>

<Extension _charconv>
    Module      xm_charconv
    AutodetectCharsets iso8859-2, utf-8, utf-16, utf-32
</Extension>
<Extension _exec>
    Module      xm_exec
</Extension>
<Extension _fileop>
    Module      xm_fileop
    <Schedule>
        Every   1 hour
        Exec    if (file_exists(%LOGFILE%) and (file_size(%LOGFILE%) >= 5M)) file_cycle(%LOGFILE%, 8);
    </Schedule>
</Extension>
<Input eventlog>
    Module       im_msvistalog
    ReadFromLast TRUE
    <QueryXML>
       <QueryList>
         <Query Id='1'>
            <Select Path='Application'>*</Select>
            <Select Path='Security'>*</Select>
            <Select Path='System'>*</Select>
            <Sekect Path='Microsoft-Windows-DriverDriverFrameworks-UserMode/Operational'>*</Select>
         </Query>
       </QueryList>
   </QueryXML>
</Input>

<Input agentlogging>
    Module      im_internal
</Input>

<Output logcontents>
    Module       om_tcp
    Host         10.10.10.100
    Port         514
    Exec         to_syslog_snare();
</Output>

<Output agentlog>
    Module       om_tcp
    Host         10.10.10.100
    Port         514
    Exec         to_syslog_snare();
</Output>
<Route 1>
    Path        eventlog => logcontents
</Route>

<Route 2>
    Path        agentlogging => agentlog
</Route>

答案1

要将 syslog 从 NXLog 发送到 syslog 服务器,您需要使用 xm_syslog 扩展模块并根据 syslog 服务器支持的格式调用其中一个格式化程序( to_syslog_bsd()to_syslog_ietf()、 )。有关更多详细信息,请参阅to_syslog_snare()用户指南中的 Syslog 部分

虽然某些 USB 事件存储在 Windows 事件日志中,但 USB 事件还有其他数据源:

  • Windows 事件跟踪 (ETW)。NXLog EE 有一个名为im_etw可以直接收集 ETW 日志。请参阅这个帖子以获取相关 ETW 提供程序的列表。
  • Windows 注册表。USB 设备在注册表下枚举HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB,通过监视此注册表配置单元,可以检测到 USB 配置的更改。im_regmon输入模块支持 NXLog EE 中的注册表监控。

答案2

经过反复试验,终于让它工作了:-

  1. <Input eventlog> ReadFromLast TRUE在 nxlog.conf 文件中,将里面的参数改为 ReadFromLast FALSE并注释掉以下行(将 hash# 放在前面)

    # # #

  2. 从任务管理器重新启动 nxlog 服务

  3. 再次取消注释先前注释的行

  1. 重新启动 nxlog 服务

  2. 将 USB 驱动器插入 Windows2012 机器并检查日志

我开始看到日志,但我仍然不确定是什么触发了这件事。因为我想从上一次开始读取日志,所以我将其更改为,ReadFromLast FALSEReadFromLast TRUE日志仍然显示出来

相关内容