如何将 %fromhost-ip% 变量附加到 rsyslog 中远程主机日志的每一行日志中?

如何将 %fromhost-ip% 变量附加到 rsyslog 中远程主机日志的每一行日志中?

我使用 rsyslog 变量来编写日志文件名。变量 %HOSTNAME% 和 %fromhost-ip%。一切正常,但问题是:如何将这些变量附加/添加到来自远程主机的日志的每一行日志中?

答案1

解决方案是使用自定义 rsyslog 模板。首先,创建日志消息模板。以下模板类似于默认的 syslog 格式,但添加了%fromhost-ip%您可以以相同的方式添加其他变量

$template tplremote,"%timegenerated% %HOSTNAME% %fromhost-ip% %syslogtag%%msg:::drop-last-lf%\n"

然后我们创建文件名模板:

$template RemoteHost,"/var/log/remote/%HOSTNAME%.log"

最后,我们告诉 rsyslog 使用创建的模板:

if ($hostname != 'localhost') then ?RemoteHost;tplremote  
& ~

注意,最后一行必须添加在包含的行之前。

*.info;mail.none;authpriv.none;cron.none

另请注意,这已在 redhat 上的 epel repo 的新 rsyslog 中进行了测试并正常运行(rsyslog-7.6.7-1.el6.x86_64)。在其他发行版中,行为可能有所不同。

相关内容