当使用 tls 配置 rsyslog 并使用PermittedPeer
或streamdriver.authmode
名称时,如果未经授权的对等方连接,rsyslog 会记录如下错误消息。
Jan 22 08:56:38 test rsyslogd-2089: netstream session 0x7f177401b740 from 10.0.0.7 will be closed due to error [try http://www.rsyslog.com/e/2089 ]
Jan 22 08:56:38 test rsyslogd-2088: error: peer name not authorized - not permitted to talk to it. Names: DNSname: *.test.com; DNSname: test.com; CN: *.test.com; [try http://www.rsyslog.com/e/2088 ]
如果客户端是持久的,rsyslog 会记录数千条这样的消息。
有没有办法告诉 netstream 驱动程序不要记录太多这样的信息?我并不介意查看这些信息,以便确定哪个客户端配置错误或可能存在滥用,但这样的信息实在是太多了。
我目前正在使用下面的条目,它们完全丢弃了这些消息。
:msg, contains, "peer name not authorized" ~
:msg, regex, ".*netstream session .* from .* will be closed due to error" ~
顺便说一下,这会生成下面的警告信息,尽管近期文献说这是丢弃消息的正确方法。
Jan 22 09:34:22 test: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
答案1
看来你想实现重复信息减少。
在您的全局配置指令中(可能rsyslog.conf
):
$RepeatedMsgReduction on
来自文档:
此指令指定是否应减少重复消息(这是“最后一行重复 n 次”功能)。如果设置为开启,则减少重复消息。如果设置为关闭,则记录每条消息。