Rsyslog v8.24规则匹配失效 符合条件日志落入未分类路径求助
问题根因排查
1. 核心错误:同一UDP端口重复绑定ruleset
你在配置中三次将UDP 514端口绑定到不同的ruleset,rsyslog对同一端口的输入规则仅会生效最后一次绑定的配置,也就是RemoteLogPort。所有日志直接进入未分类逻辑,前两个分类规则完全没有执行机会,这是日志无法匹配分类的最主要原因。
2. 语法错误:Aruba规则集缺少闭合括号
ArubaNetworksPort的ruleset定义只写了左大括号,没有对应的右大括号,配置加载阶段就会存在语法问题,即使端口绑定正确该规则也无法正常执行。
3. 逻辑缺失:匹配后无终止指令
即使分类规则可以正常执行,你没有在匹配成功的action后加stop指令,日志会继续向下执行后续规则,依旧可能被写入未分类路径。
修复后配置参考
# 分类模板定义 template (name="ArubaNetworksPath" type="string" string="/var/log/rsyslog/aruba-networks/%FROMHOST%/aruba-networks.log") template (name="EsxPath" type="string" string="/var/log/rsyslog/esxvmware/%FROMHOST%/esxvmware.log") template (name="RemoteLogPath" type="string" string="/var/log/remote/unclassified/%FROMHOST%/unclassified.log") # 统一的514端口处理规则集 ruleset(name="ProcessRemoteLog") { # Aruba Networks日志过滤 if (re_match($msg, "AP:aaa-bbb01-ccc-ap")) then { action(type="omfile" dynaFile="ArubaNetworksPath") stop } # VMware ESX日志过滤 if (re_match($hostname, "tree-[a-zA-Z]{3}to[0-9]{3}")) then { action(type="omfile" dynaFile="EsxPath") stop } # 未匹配日志走未分类路径 *.* action(type="omfile" dynaFile="RemoteLogPath") } # 仅绑定一次UDP 514端口到统一规则集 input(type="imudp" port="514" ruleset="ProcessRemoteLog")
生效验证步骤
- 执行
rsyslogd -N1校验配置语法是否正常 - 重启rsyslog服务加载新配置
- 发送符合规则的测试日志验证分类是否正常
内容的提问来源于stack exchange,提问作者PiKeTemplar
相关产品推荐
相关产品推荐

