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

我正在寻找适合这种情况的正则表达式。 任何帮助将不胜感激。

很遗憾,文件插件中的路径不支持正则表达式。它只支持通配符。