我正在使用 rsyslog 配置集中式日志记录。
我必须使用某种通配符指定输入文件,但在官方文档 here 的描述中找不到任何如何使其工作的示例。具有准确描述的链接似乎已损坏。
我尝试记录类似于 localhost_access_log.2015-07-15.txt
的 tomcat7-logfiles。
文件中的日期每天都会更新。
我想要得到的是某种input(type="imfile"...)
我尝试过:
input(type="imfile" tag="access_log" statefile="tomcat-access-log"
file="/var/log/tomcat7/localhost_access_log.*.txt")
但这不起作用,我不明白我做错了什么。
这是我的完整代码:
$ModLoad imfile
$PrivDropToGroup adm
$WorkDirectory /var/spool/rsyslog
# catalina.log
$InputFileName /var/log/tomcat7/catalina.log
$InputFileTag catalina-log
$InputFileStateFile stat-catalina-log
$InputFileSeverity info
$InputRunFileMonitor
# localhost_access_log.YYYY.MM.DD.txt
input(type="imfile" tag="access_log" statefile="tomcat-access-log" file="/var/log/tomcat7/localhost_access_log.*.txt")
catalina 日志正在按预期工作,但是我在输出中没有收到任何访问日志。
任何帮助将不胜感激,如果我做错了什么或者是否有更好的方法,请提醒我。
最佳答案
它仅适用于 rsyslog v8.5 或更高版本(不是 7),并且仅在使用 inotify 时有效,请参阅 here进行演示并解释要求。 我强制inotify(尽管它是默认的):
module(load="imfile"
mode="inotify"
)
输入定义如下:
input(type="imfile"
File="/file/path/*.log"
Tag="taskproject:"
Facility="local3"
)
在此之后,它应该可以工作
关于linux - Rsyslogs 输入文件的新配置格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31426373/