我怎样才能从/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文档更高级的过滤:
在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