Answers:
只需在/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