首页 > 解决方案 > Rsyslog 为通配符文件隔离日志

问题描述

我有一个中央服务器来记录我的不同应用程序日志,我使用 rsyslog 的(8.36)通配符(/var/log/sample/*.log)转发日志,我想根据被监控的文件名隔离我的中央服务器上的日志,我该怎么做?

货代:

`input(type="imfile" File="/var/log/sample/*.log"
Tag="sample-req_params.log"
StateFile="/var/spool/rsyslog/app-req_params"
Severity="error"
Facility="local7")
*.* @@X.XX.X.XXX:514`

接收者:

`$template MYFILENAME,"/var/log/sample/%programname%.log"
if $programname contains 'sample' then ?MYFILENAME`

标签: loggingerror-loggingrsyslogsyslog-ng

解决方案


很抱歉这不是最好的答案,但我希望我能把你推向正确的方向。默认模板不传输文件名。然而,在原始系统上,它以imfile metadata的形式提供。您需要在客户端定义一个包含该元数据的模板,并在服务器端使用它来提取文件名。


推荐阅读