我有一个logstash.conf文件,在该文件中,我为两种不同类型的日志定义了两个不同的路径,一个用于system logs,另一个用于network logs。但是,这些日志是在与/scratch/rsyslog相同的目录位置上收集的,其中它在转储日志之前为每个主机创建一个单独的文件夹。
1) /scratch/rsyslog/server01/messages.log /scratch/rsyslog/server02/messages.log等用于系统日志
2)对于网络日志 its:/scratch/rsyslog/Sep/messages.log
下面是这两种类型日志的输入过滤器和路径。现在的问题是,我使用通配符来匹配*这里的所有名称,path => [ "/scratch/rsyslog/*/messages.log" ]得到了所有的东西。
input {
file {
path => [ "/scratch/rsyslog/*/messages.log" ]
type => "syslog"
}
file {
path => [ "/scratch/rsyslog/Sep/messages.log" ]
type => "apic_logs"
}
}因此,在第一条路径,即系统日志中,我需要以小写字母开头,这些小写字母可能包含一些数字,但类似于server01。
也许我在想
^[a-z0-9]
而在第二条路径,即网络日志中,我需要得到第一个字母从小写字母开始的位置(这些月份名称通常和我提到的Sep一样,在月末会自己更改)。
也许^A.*为第二个
我想找一个能适应这种情况的正则表达式。任何帮助都将不胜感激。
发布于 2018-09-28 13:54:25
不幸的是,path文件插件不支持regex。它只支持通配符。
https://stackoverflow.com/questions/52550622
复制相似问题