Regex logstash.conf输入筛选器路径的正则表达式
我有一个logstash.conf文件,其中我为两种不同类型的日志定义了两个不同的路径,一个用于Regex logstash.conf输入筛选器路径的正则表达式,regex,logstash,logstash-grok,logstash-configuration,Regex,Logstash,Logstash Grok,Logstash Configuration,我有一个logstash.conf文件,其中我为两种不同类型的日志定义了两个不同的路径,一个用于系统日志,另一个用于网络日志。但是,这些日志收集在与/scratch/rsyslog相同的目录位置,例如,在转储日志之前,它将为每个主机创建一个单独的文件夹 1) /scratch/rsyslog/server01/messages.log /scratch/rsyslog/server02/messages.log等系统日志 2) 对于网络日志类似: /scratch/rsyslog/Sep/mes
系统日志
,另一个用于网络日志
。但是,这些日志收集在与/scratch/rsyslog
相同的目录位置,例如,在转储日志之前,它将为每个主机创建一个单独的文件夹
1) /scratch/rsyslog/server01/messages.log
/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].*
我想买一个能适应这种情况的正则表达式。
任何帮助都将不胜感激。不幸的是,文件中的路径插件不支持正则表达式。它只支持通配符 logstash之外的一种可能性是编写一个基于正则表达式的bash脚本,在其他位置创建指向这些文件夹的符号链接。然后,logstash可以从新位置隐藏。这个脚本可以由cron安排,并为任何新文件夹添加新的符号链接。@hmm,但这对我来说是行不通的。我们能在@rsyslog.conf做点什么吗?我意识到,`^[A-Z].`这不是regex,而是它的globbing,可以在beleieve中使用。