如何将消息从随机日志文件(例如 apf_log)发送到另一台计算机?

如何将消息从随机日志文件(例如 apf_log)发送到另一台计算机?

我已经发现我可以通过将这些行添加到 /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

相关内容