我已经发现我可以通过将这些行添加到 /etc/rsyslog.d/50-default.conf (我使用的是 ubuntu 16.04)来将日志消息从一个标准日志文件发送到另一台服务器:
auth,authpriv。* @@73.147.200.188:514
系统日志 @@73.147.200.188:514
现在,我想对 apf_log 执行相同的操作,但“apf_log @@73.147.200.188:514”不起作用。
我已经尝试了 imfile 模块示例的数十种变体(http://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html)包括旧版本和新版本的命令,但无效。
我得到的最接近的是添加行“apf_log /var/log/auth.log”,它将正确格式化的日志文件条目从 apf_log 插入到 auth.log,即使我实际上没有设置 imfile。不幸的是,我也无法直接将 auth.log 条目发送到远程服务器(“auth.log @@73.147.200.188:514”没有效果)。
rsyslog 的 imfile 模块的文档说“该模块提供了将任何标准文本文件转换为 syslog 消息的能力”。使用“状态文件”,它检测何时出现新行并将其传递给“rsyslog 的规则引擎”(我假设指的是“syslog @@73.147.200.188:514”和“auth,authpriv.* /var/log”等规则) /auth.log”)。
但是,它没有说明该规则引擎中文件的变量名称是什么。我尝试使用文件名、其完整路径和 imfile“标记”值。我还尝试匹配服务器中的这些设置(在本例中为 73.147.200.188),并确保 /var/log/apf_log 具有完全权限(在两台计算机中)。
达斯汀
答案1
我设法做到这一点,以便将日志从kodi
树莓派发送到 Fedora 23 服务器。我认为您只需要在 imfile 和匹配规则上指定设施(local0)和严重性(info)。在 pi 上,我添加了配置文件/etc/rsyslog.d/00-pi.conf
:
# try send arbitrary file to remote
$WorkDirectory /var/spool/rsyslog
$ModLoad imfile
$ModLoad imtcp
$InputFileName /home/osmc/.kodi/temp/kodi.log
$InputFileTag mytag1:
$InputFileStateFile imfilestatuskodi
$InputFileFacility local0
$InputFileSeverity info
$InputRunFileMonitor
# send all lines to server
local0.info @@server
& stop
该文件很早就被包含在/etc/rsyslog.conf
.在接收服务器上,我已经有了一个接收设置/etc/rsyslog.d/00-receive.conf
(您应该简化):
$ModLoad imtcp
$InputTCPServerRun 514
$template nomatch,"/var/log/nomatch-%hostname%.log"
# match on pi's ip address
if $fromhost-ip == '192.168.0.20' then {
action(type="omfile" dynaFile="nomatch")
stop
}
当我在 pi 上重新启动 rsyslog 时,我按预期kodi.log
在文件中获得了所有文件内容和后续更新。/var/log/nomatch-pi.log
正如预期的那样,在 pi 上,状态文件为/var/spool/rsyslog/imfilestatuskodi
.
答案2
我还有一个正在运行的系统日志服务器,并试图弄清楚如何将另一个服务日志发送到远程系统日志服务器。
在系统日志客户端中;
1- 将以下行附加到 /etc/rsyslog.conf 文件,然后将基本日志文件发送到远程 syslog 服务器。
*.* @@10.10.10.10:514
2-我创建了一个新文件/etc/rsyslog.d/myservice.conf,并使用它将/var/log/guacamole.log记录传输到远程系统日志服务器。
猫 /etc/rsyslog.d/myservice.conf
$ModLoad imfile
$InputFileName /var/log/guacamole.log
$InputFileTag docker.guacamole:
$InputFileStateFile /tmp/guacamole_state_file
$InputFileSeverity info
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@10.10.10.10
重新启动 rsyslog 服务后,guacamole.log 将填充到远程 syslog 服务器中。
有关模块和参数的更多信息: https://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html