如何将具有rsyslog的/ var / log之外的特定日志文件转发到远程服务器?

我怎样才能从/www/myapp/log/test.log客户端的特定日志文件/www/myapp/log/test.log转发消息到远程rsyslog服务器? 该日志文件位于/var/log目录之外。

只需在/etc/rsyslog.conf中设置一个imfile规则即可

 #/etc/rsyslog.conf $ModLoad imfile $InputFileName /data/mysql/error.log $InputFileTag mysql-error $InputFileStateFile stat-mysql-error $InputFileSeverity error $InputFileFacility local3 $InputRunFileMonitor local3.* @@hostname:<portnumber> 

这将监视一个文件并保存到syslog的local3工具中。 然后,您可以将所有数据从local3工具发送到您的远程服务器。 您可能还想将以下内容添加到rsyslog conf(通常是Ubuntu上的/etc/rsyslog.d/50-default.conf),以将local3设备保存到/ var / log / syslog:

 #/etc/rsyslog.d/50-default.conf *.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none -/var/log/syslog 

此外,我会鼓励一些阅读从以下rsyslog文档更高级的过滤:

  1. 物业替代品
  2. 过滤条件

在ubuntu上,为了让rsyslog实际读取/ var / logs之外的日志文件,我还必须注释掉这些权限。

 #/etc/rsyslog.conf $ModLoad imfile $InputFileName /data/mysql/error.log $InputFileTag mysql-error $InputFileStateFile stat-mysql-error $InputFileSeverity error $InputFileFacility local3 $InputRunFileMonitor local3.* @@hostname:<portnumber> # Set the default permissions for all log files. # #$FileOwner syslog #$FileGroup adm #$FileCreateMode 0640 #$DirCreateMode 0755 #$Umask 0022 #$PrivDropToUser syslog #$PrivDropToGroup syslog