我的 ADSL 调制解调器支持通过 syslog 进行远程日志记录。我已设置运行 rsyslog 的服务器,以接受来自调制解调器的日志消息,这些消息与服务器上生成的消息一起显示/var/log/syslog
。日志如下所示:
(timestamp) (hostname) (program): (message)
其中 hostname 是server
或modem
。
我已经看过了(在我看来很糟糕)文档, 和找到了这个例子这看起来正是我需要的,但我无法让它在我的处境下发挥作用。
如何配置 rsyslog 将从调制解调器接收到的日志写入而/var/log/modem
不是/var/log/syslog
?
调制解调器IP是静态的,如果这有助于简化答案。
版主:这个帖子可能应该有一个rsyslog
标签而不是syslog
,但我的声誉还不够高,无法创建它。
答案1
使用简单模板为每个主机创建一个文件:
$template DynaFile,"/var/log/%HOSTNAME%"
*.* -?DynaFile
我不确定在这种情况下应该使用的正确属性是“hostname”、“source”还是“fromhost”,但根据我的理解属性文档任何一种方法都可以适用于你的情况。
答案2
如果你正在使用,rsyslog
那么使用$template remote-incoming-logs
声明/etc/rsyslog.conf
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs
在您的示例中,主机上的登录modem
会将日志消息发送到文件/var/log/modem/auth.log
。
摘自文章。