我正在尝试让 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
- 仍然没有
消息不是以消息开头的,
iptables-denied:
因为[221395.082051]
它实际上是消息的一部分。内核可以配置为生成带有或不带有时间戳的日志消息,该时间戳指示在引导后多少秒生成特定消息。一旦消息到达
syslog
,就不再了解消息的结构。它只是一个长字符串,恰好以方括号中的数字开头。如果要匹配这些字符串的内容,则无论内核是否生成带有或不带有时间戳的消息,都应该以相同的方式执行匹配,以便即使该设置发生更改,您的匹配也将继续工作。