【发布时间】:2020-05-02 00:19:50
【问题描述】:
在带有 rsyslogd 8.32.0 的 Ubuntu 18.04 上,
要从名为“mqtt433”的服务中移动日志条目,我已将以下内容添加到 /etc/rsyslog.d/50-default.conf:
if $programname == 'mqtt433' then {
action(type="omfile" File="/var/log/mqtt433_log.log")
stop
}
创建文件 /var/log/mqtt433_log.log 并将来自服务的日志消息附加到它,如预期的那样。在我的理解中它不应该做的是,它不应该将这些行保留在默认文件 (/var/log/syslog) 中。
换句话说,它应该将消息移动到新文件,而不是复制它们。
我也尝试过旧的规则语法,结果相同。
:programname, isequal, "mqtt433" /var/log/mqtt433.log
& stop
我也尝试过不推荐使用的语法
& ~
而不是
& stop
没有运气。
我做错了什么?
【问题讨论】:
-
确保您的 conf 文件在任何其他规则之前被读取。例如检查
/etc/rsyslog.d/中没有更早的文件,并且$IncludeConfig /etc/rsyslog.d/*.conf行之前的rsyslog.conf中没有过滤规则。 -
天哪,它有帮助!我将这些行移到配置文件的开头,它可以工作!不知道有多少天我一直在阅读 rsyslog 文档并一直在寻找解决方案。请将您的评论作为答案,以便我标记它!