我有一个应用程序在 中写入自己的日志文件/var/log/app/app.log
。如何将这些日志转发到远程 Rsyslog 服务器?
答案1
您可以使用图像文件模块。
在发送服务器的 rsyslog 配置上;
$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
在接收服务器的 rsyslog 配置上;
$template YourApp, "/path/to/yourlogs/app/app.log"
local7.* -?YourApp
答案2
您可以使用系统日志工具转发日志。
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);
};
答案3
如果日志不支持 [r]syslog,请在远程服务器上创建一个 nfs 导出来保存日志,并将导出安装到应用服务器的 /var/log/app 上。
答案4
您可以使用文件记录器它不需要您在本地主机上安装和配置 rsyslog 或其他 syslog 软件。