nxlog异常排查:部分日志带USER.NOTICE标签致rsyslog过滤失效
问题
配置完全相同的情况下,部分日志无法触发rsyslog的fromhost-ip过滤规则,最终落入user.log文件。通过tcpdump抓包发现,这些异常日志本身已带有USER.NOTICE标签,且同一台机器的日志有的带该标签有的不带。
nxlog.conf 配置
Panic Soft #NoFreeOnExit TRUE define ROOT C:\Program Files\nxlog define CERTDIR %ROOT%\cert define CONFDIR %ROOT%\conf\nxlog.d define LOGDIR %ROOT%\data define LOGFILE %LOGDIR%\nxlog.log LogFile %LOGFILE% Moduledir %ROOT%\modules CacheDir %ROOT%\data Pidfile %ROOT%\data\nxlog.pid SpoolDir %ROOT%\data <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 # Check the size of our log file hourly, rotate if larger than 5MB <Schedule> Every 1 hour Exec if (file_exists('%LOGFILE%') and \ (file_size('%LOGFILE%') >= 5M)) \ file_cycle('%LOGFILE%', 8); </Schedule> # Rotate our log file every week on Sunday at midnight <Schedule> When @weekly Exec if file_exists('%LOGFILE%') file_cycle('%LOGFILE%', 8); </Schedule> </Extension> # Snare compatible example configuration # Collecting event log <Input in> Module im_msvistalog </Input> # # Converting events to Snare format and sending them out over TCP syslog <Output out> Module om_udp Host SYSLOG_IP Port 514 Exec to_syslog_snare(); </Output> # Connect input 'in' to output 'out' <Route 1> Path in => out </Route>
排查思路
- 区分Windows事件源差异:同一机器的日志可能来自系统、应用、安全等不同事件源,
im_msvistalog默认收集所有事件,不同源事件通过to_syslog_snare()转换时,可能被映射到不同syslog标签。建议在Input模块添加过滤规则,按事件源分类输出,观察USER.NOTICE标签是否和特定源绑定。 - 打印nxlog处理字段:在Output模块的Exec指令中添加日志打印,比如
Exec to_syslog_snare(); log_info("Event: SourceName=" + $SourceName + ", Severity=" + $Severity + ", SyslogTag=" + $SyslogTag);,查看nxlog.log中异常事件的原始字段,对比正常事件的差异,定位标签映射逻辑的触发条件。 - 验证rsyslog过滤规则:检查rsyslog中fromhost-ip过滤规则的优先级,确认是否有更高优先级的规则提前匹配了USER.NOTICE日志;同时排查网络层面是否存在NAT或代理导致源IP改写,导致过滤规则不生效。可临时开启rsyslog调试模式,记录每条日志的fromhost-ip和标签信息。
- 排除网络传输干扰:临时将
om_udp替换为om_file,把事件输出到本地文件,查看是否存在部分事件自带USER.NOTICE标签的情况,确认标签是nxlog生成还是传输过程中被篡改。 - 核对nxlog版本映射逻辑:不同版本的nxlog对
to_syslog_snare()的实现可能有差异,查阅官方文档确认该函数的事件映射规则,必要时升级到最新稳定版测试。
内容的提问来源于stack exchange,提问作者dkdlv
相关产品推荐
相关产品推荐

