这个 rsyslog 配置有什么问题?

这个 rsyslog 配置有什么问题?

我正在尝试让 rsyslog 记录到以下自定义日志文件

/var/log/iptables.conf

而不是syslog。Iptables
已启用日志记录,下面是从 iptables 输出的示例日志行(取自/var/log/syslog

Apr 19 04:47:41 local-tester kernel: [221395.082051] iptables-denied: IN=eth1 OUT= MAC=01:00:5e:00:00:fb:00:80:92:87:56:b9:08:00 SRC=192.168.1.4 DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=52488 PROTO=2

我创建了一个新的 rsyslog 配置文件/etc/rsyslog.d/iptables.conf并输入以下内容

# iptables logging
:msg, startswith, "iptables-denied: " /var/log/iptables.log

并重新启动

sudo /etc/init.d/rsyslog restart

那没有创建/var/log/iptables.log所以我手动创建了

Iptables 日志消息仍然会/var/log/syslog

为什么我仍然没有在自定义日志文件中获取任何 iptables 日志条目:/var/log/iptables.log

相关信息

操作系统是 Ubuntu 14.04。
如果
模式不匹配,我尝试了这个配置*.* /var/log/iptables.log- 仍然没有结果

答案1

消息不是以开头的,iptables-denied:因为[221395.082051]实际上是消息的一部分。内核可以配置为生成带有或不带有时间戳的日志消息,以指示启动后多少秒生成了特定消息。

一旦消息到达,syslog就不再知道消息的结构。它只是一个长字符串,恰好以方括号中的数字开头。

如果您想要匹配这些字符串的内容,您应该以相同的方式执行匹配,无论内核是否生成带有或不带有时间戳的消息,这样即使该设置发生变化,您的匹配仍将继续工作。

相关内容