我有一堆不是使用 syslog 创建的日志。我想将它们导出到另一台主机。如果可能的话,使用 syslog 或 rsyslog。管道?
我怎样才能做到这一点?
答案1
您想要rsyslog
的imfile
模块。
这些模块的文档和使用方式取决于您使用的 rsyslog 版本(v7 或 v8+)。由于日志转发在 v8 中尚未运行(根据文档),以下是一些 v7 语法示例:
# /etc/rsyslog.conf
$ModLoad imfile
<... other configuration ...>
$InputFileName /var/log/custom.log
$InputFileTag custom:
$InputFileStateFile custom.state
$InputRunFileMonitor
<... repeat for each file ...>
# send all facility/severity to another syslog server
*.* @@my.syslog.server:514
注意:每个文件都需要自己独特的状态文件。默认情况下,消息是严重性通知和设施 local0。如果您想更改这些,请查阅文档imfile
。
答案2
两种可能的方式:
- 使用 scp 或 rsync 的 Cron 作业来复制文件,例如每小时一次。即使日志文件的目标主机位于 LAN 之外,这也能正常工作。
- 在目标主机上以 NFS 方式挂载(只读)日志目录。这在您的 LAN 中是最好的,因为日志文件在那里总是最新的。
我不确定 syslog 或 rsyslog 是否可以直接执行此操作。也许可以,但您必须阅读文档才能找到答案。