linux - Rsyslogs 输入文件的新配置格式

标签 linux logging rsyslog

我正在使用 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/

相关文章:

c - 当 fd 之前未关闭时解压文件失败

Azure 日志查询显示空值

asp.net - Log4net 没有记录任何内容

linux - 如何使用Rsyslog将Spring Batch远程分区应用程序日志从所有服务器收集到一台服务器?

linux - 设置 rsyslog 过滤器

linux - imagemagick-morph : increase file number but not consecutive

linux - 使用 LetsEncrypt 通配符证书签署 CSR

ruby-on-rails - Rails 7.1,记录到 STDOUT 和 log/Production.log

linux - 使用 rsyslog 捕获 journald 属性

linux - 用于在 Linux 中调试 C 源代码的 IDE