Rsyslog从多个主机接收并保存到不同的文件

Rsyslog从多个主机接收并保存到不同的文件

我希望家庭网络中的路由器和 AP 使用运行 Debian 的 Raspberry Pi 作为系统日志服务器 (rsyslogd 5.8.11)。但是,我无法在任何地方找到有关如何轻松从多个设备接收日志的简单指南并将它们保存在不同的位置,关于 rsyslog 的信息太多,但大多数都是太复杂的东西,我无法理解。

路由器的 IP 为 192.168.1.1,AP 为 192.168.1.5

另外,虽然我并不真正需要它,但很好奇,是否可以让 Pi 自动将这些日志发送到 VPS 服务器?路由器具有动态 IP 地址并使用 DDNS No-IP 主机名。

答案1

我发现执行此操作的最简单方法是使用指定主机名的模板。例如,在/etc/rsyslog.conf

$template TmplAuth, "/var/log/%HOSTNAME%/$year-$month-$day.log" 

http://www.rsyslog.com/doc/v8-stable/configuration/properties.html有关可以使用模板定义的所有属性的列表。

答案2

我做了一个小的谷歌搜索,我发现了关联包含以下内容

# 这是根据客户端的 IP 地址动态生成日志文件名的模板。

$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"

# 将所有消息记录到动态形成的文件中。现在每个客户端日志(192.168.1.2、192.168.1.3 等)将位于由模板 FILENAME 形成的单独目录下。

*.* ?FILENAME

答案3

我已经成功配置了/etc/rsyslog.conf底部的这两行:

$template DynaFile,"/var/log/system-%HOSTNAME%.log"
*.* -?DynaFile

相关内容