我有一个logstash.conf文件,其中我为两种不同类型的日志定义了两个不同的路径,一个用于system logs
,另一个用于network logs
。但是,这些日志与/scratch/rsyslog
收集在同一目录位置,在转储日志之前,该日志为每个主机创建了一个单独的文件夹,例如..
1)/scratch/rsyslog/server01/messages.log
对于{strong>系统日志
/scratch/rsyslog/server02/messages.log
2)对于网络日志,其含义如下:
/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-Z]。*
我正在寻找一种可以适应这种情况的正则表达式。 任何帮助将不胜感激。
答案 0 :(得分:1)
不幸的是,文件插件中的路径不支持正则表达式。它仅支持通配符。