我有一个应用程序,它将自己的日志文件写入/var/log/app/app.log
。 如何将这些日志转发到远程Rsyslog服务器?
你可以用imfile模块来做到这一点。
在发送服务器的rsyslogconfiguration;
$ModLoad imfile $InputFileName /var/log/app/app.log $InputFileTag tag_app_log: $InputFileStateFile app_log1 $InputFileSeverity info $InputFileFacility local7 $InputRunFileMonitor # Send over TCP local7.* @@remoteserver # Send over UDP local7.* @remoteserver
在接收服务器的rsyslogconfiguration;
$template YourApp, "/path/to/yourlogs/app/app.log" local7.* -?YourApp
您可以使用syslog-ng来转发日志。
source s_all { internal(); unix-stream("/dev/log"); file("/path/to/your/file" follow_freq(1) flags(no-parse)); }; destination d_remotelogger { udp("192.168.254.254" port(5514)); }; log { source(s_all); destination(d_remotelogger); };
如果日志不支持[r] syslog,则在远程服务器上创build一个nfs导出来保存日志,并在/ var / log / app的应用服务器上创build导出。
您可以使用filelogger ,而不需要您在本地主机上安装和configurationrsyslog或其他系统日志软件。