如何阻止日志同时写入/var/log/messages与自定义rsyslog路径?
解决rsyslog日志重复写入的配置方案
- 修改现有rsyslog规则,在自定义日志路径配置后添加终止后续处理的指令,让匹配到的日志不再进入默认规则流程:
针对rsyslog 8.x及以上版本,更推荐使用:msg, regex, "myappname", /appl/logs/myappname.log & ~& stop指令(兼容性更强)::msg, regex, "myappname", /appl/logs/myappname.log & stop - 配置修改完成后,重启rsyslog服务加载新规则:
systemctl restart rsyslog
原理说明
rsyslog按配置文件中的规则顺序依次处理日志,默认写入/var/log/messages的规则通常在自定义规则之后执行。添加终止指令后,匹配到myappname的日志完成自定义路径写入后会停止后续所有处理,自然不会再被默认规则写入到/var/log/messages中。
内容的提问来源于stack exchange,提问作者Cat Hariss
相关产品推荐
相关产品推荐

