我正在使用iptables
的日志记录功能来调试我的网络活动。我使用带有--log-prefix
参数的某些前缀来唯一地标识内核日志中属于iptables
输出的消息,例如::IPT::LOG::
。
如何配置rsyslog
以这种方式标记的消息重定向到单独的日志文件中?手册页对于rsyslog
我来说似乎太神秘了。
除了基于选择器的筛选之外,rsyslogd可以筛选在日志消息属性中找到的模式。为了完成您想做的事情,您可以创建一个基于属性的过滤器来匹配您在iptables规则中使用的字符串。如果要--log-prefix "unique_prefix: "
在iptables规则中使用,则需要将其添加到rsyslog.conf中:
:msg,startswith,"unique_prefix" /var/log/iptables
此规则将测试您的前缀的日志消息,并将它们发送到/ var / log / iptables(除了rsyslog配置为将其发送到其他地方)。如果您需要让消息出现在/ var / log / iptables中,而不是其他地方,请将新规则放在其他规则之上,并在其后加上一行& ~
。完整的例子:
:msg,startswith,"unique_prefix" /var/log/iptables
& ~
#
# The rest of my rules appear below
# ...
*.info;mail.none;authpriv.none;cron.none /var/log/messages
Rsyslog规则可以有多个操作。随后的动作在以&符号(&
)开头的新行中进行定义。在上面的示例中,第一个规则具有两个操作:将输出发送到/ var / log / iptables,然后丢弃消息(~
)。有关此答案中规则的更多信息,请参见有关操作和过滤器的rsyslog文档。
编辑以使用startswith
而不是contains
出于性能方面的考虑。由于iptables--log-prefix
确实是前缀,因此将在消息的开头。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句