为什么这个 rsyslog conf 文件不会导致递归?

为什么这个 rsyslog conf 文件不会导致递归?

rsyslog我通过手册页、在线阅读和实验相结合的方式进行学习。我想了解为什么以下不会导致无限递归:

从 1 号航站楼出发:

$ cat /etc/rsyslog.d/dummy.conf 
# dummy.conf
local7.*                                  @127.0.0.1
&                                         |/tmp/foopipe

$ sudo systemctl restart rsyslog

$ cat < /tmp/foopipe

从 2 号航站楼出发:

$ logger -p local7.info "Test 111"

执行完上述操作后,终端1中出现了文字“ 2018-07-16T18:09:50.866760-07:00 localhost user: Test 111”,但只出现了一行;即不是多个副本,也不是无限的洪水。

我对配置文件还不是很熟悉rsyslog,所以我只是根据自己最基本的理解来拼凑一些东西。我认为我的dummy.conf文件会指示rsyslog将我的local.info系统日志发送到命名管道,并将系统日志转发到 127.0.0.1。

假设后者确实发生...我不太清楚接下来会发生什么,但我想象会从它侦听的 UDP/TCP 套接字rsyslog接收系统日志,然后再次应用规则,再次指示 rsyslog 发送系统日志到管道以及转发 127.0.0.1...因此无限递归。local.infodummy.conf

我错过了什么吗?或者是否rsyslog内置了智能来阻止这种类型的无限递归?

答案1

这听起来像是你遇到了这个选项:

$RepeatedMsgReduction on

您可能已启用此功能。

参考

相关内容