logging - 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`
解决方案
很抱歉这不是最好的答案,但我希望我能把你推向正确的方向。默认模板不传输文件名。然而,在原始系统上,它以imfile metadata的形式提供。您需要在客户端定义一个包含该元数据的模板,并在服务器端使用它来提取文件名。
推荐阅读
- scala - JSweet 能否移植 Java 库以用于交叉构建的 Scala.js 项目?
- java - java - FileNotFoundException 即使指定的文件存在
- plotly - 在破折号中调整图形的大小
- npm - 从 registry.npmjs.org 检索内容时,为什么“npm install”会挂起?
- csv - 使用 C3 库时,无法加载 csv 文件
- mysql - MySQL:ORDER BY 和 GROUP BY 在一起
- html - background-repeat: no-repeat 不会开始重复
- qt - glReadPixels GL_DEPTH_COMPONENT 在 mousePressEvent 中不起作用
- php - php - 多维数组(保留索引数组)
- javascript - 使用 Node.js 和 ES6 (electron,react) 时如何指定 setInterval 接口