logstash.conf 输入过滤器路径的正则表达式
regex for logstash.conf input filter path
我有一个 logstash.conf 文件,我在其中为两种不同类型的日志定义了两个不同的路径,一个用于 system logs
,另一个用于 network logs
。但是,这些日志收集在与 /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
.
Maybe i'm thinking ^[a-z0-9]
而在第二条路径中 网络日志 我需要找到第一个字母以大写字母开头的小写字母(这些通常是月份名称,就像我提到的 Sep
,它会在月底自行更改)。
maybe ^[A-Z].* for second one
我正在寻找适合这种情况的正则表达式。
任何帮助将不胜感激。
很遗憾,文件插件中的路径不支持正则表达式。它只支持通配符。
我有一个 logstash.conf 文件,我在其中为两种不同类型的日志定义了两个不同的路径,一个用于 system logs
,另一个用于 network logs
。但是,这些日志收集在与 /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
.
Maybe i'm thinking
^[a-z0-9]
而在第二条路径中 网络日志 我需要找到第一个字母以大写字母开头的小写字母(这些通常是月份名称,就像我提到的 Sep
,它会在月底自行更改)。
maybe ^[A-Z].* for second one
我正在寻找适合这种情况的正则表达式。 任何帮助将不胜感激。
很遗憾,文件插件中的路径不支持正则表达式。它只支持通配符。