我已在 rsyslog.conf 中启用远程日志记录:
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")
然后在 /etc/rsyslog.d/devices.conf 中,我有
$template RemoteLogs,"/var/log/devices/%HOSTNAME%.log"
*.* ?RemoteLogs
我发现本地计算机(rsyslog 服务器)不仅将其事件记录到相关的 /var/log/filename,还记录到 /etc/log/devices/pi.log
我如何防止本地主机(称为 pi)的 /etc/log/devices/ 中的日志?
谢谢
答案1
指定输入时,还要说明要应用的规则集。规则集之外的输入将不会被规则集处理,反之亦然。
module(load="imudp")
input(type="imudp" port="514" ruleset="remote")
ruleset(name="remote"){
$template RemoteLogs,"/var/log/devices/%HOSTNAME%.log"
*.* ?RemoteLogs
}
答案2
规则集解决方案对我不起作用。所有消息仍然显示在 /var/log/messages 中。然而这个解决方案对我有用。基本上,这一行过滤掉了来自特定主机的所有消息。
:hostname, contains, "myhostname" ~