用于logstash.conf输入过滤器路径的正则表达式

时间:2018-09-28 07:41:37

标签: regex logstash logstash-grok logstash-configuration

我有一个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]。*

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

1 个答案:

答案 0 :(得分:1)

不幸的是,文件插件中的路径不支持正则表达式。它仅支持通配符。