Rsyslog 隔离通配符文件的日志
Rsyslog segregate logs for wildcard files
我有一个中央服务器来记录我的不同应用程序日志,我使用 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`
很抱歉这不是最好的答案,但我希望我能把你推向正确的方向。默认模板不传输文件名。但是,在原始系统上,它以 imfile metadata 的形式提供。您需要在客户端定义一个包含该元数据的模板,并在服务器端使用它来提取文件名。
我有一个中央服务器来记录我的不同应用程序日志,我使用 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`
很抱歉这不是最好的答案,但我希望我能把你推向正确的方向。默认模板不传输文件名。但是,在原始系统上,它以 imfile metadata 的形式提供。您需要在客户端定义一个包含该元数据的模板,并在服务器端使用它来提取文件名。