Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex logstash.conf输入筛选器路径的正则表达式_Regex_Logstash_Logstash Grok_Logstash Configuration - Fatal编程技术网

Regex 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

我有一个logstash.conf文件,其中我为两种不同类型的日志定义了两个不同的路径,一个用于
系统日志
,另一个用于
网络日志
。但是,这些日志收集在与
/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中使用。