我在用着rsyslog 8.22接收客户端主机发送的系统日志数据。我的目标是为每个客户端创建一个日志文件。
我找到了很多有关旧版本 rsyslog 的数据,但是配置语法的变化让我感到困惑。
此配置证明 rsyslog 正在运行,但将所有条目聚合到一个文件中:
if $fromhost-ip startswith '192.168.117.' then {
action(type="omfile" file="/var/log/network.log")
stop
}
(我的其余部分/etc/rsyslog.conf
是默认的。)
以下不起作用。(未创建文件):
template (name="DynFile" type="string" string="/var/log/network-%fromhost-ip%.log")
if $fromhost-ip startswith '192.168.117.' then {
action(type="omfile" file="DynFile")
stop
}
我错过了什么?
答案1
解决方法是dynaFile
在行动论点(不是file
)。
template (name="DynFile" type="string" string="/var/log/network-%fromhost-ip%.log")
if $fromhost-ip startswith '192.168.117.' then {
action(type="omfile" dynaFile="DynFile")
stop
}
这将产生预期的结果:
$ ls -l /var/log/network/
-rw-r--r--. 1 root root 286 Oct 4 13:21 192.168.117.21.log
-rw-r--r--. 1 root root 284 Oct 4 13:25 192.168.117.22.log
-rw-r--r--. 1 root root 184 Oct 4 13:32 192.168.117.27.log
$