使用logstash查找缺少值的Grok

使用logstash查找缺少值的Grok,logstash,grok,Logstash,Grok,我正试图用logstash搜索这些输入 Nicolas Lauri 34 Nicolas 33 #there is one space and it not works. Nicolas 33 #there are two spaces and it works. 用这个图案 (%{WORD:firstname})? (%{WORD:lastname})? (%{NUMBER:age})? 使用()?我忽略了缺失的值,并说它们是可选的,但问题是我们必须在值之间留出空格才能使其工作 我的

我正试图用logstash搜索这些输入

Nicolas Lauri 34 
Nicolas 33  #there is one space and it not works.
Nicolas  33 #there are two spaces and it works.
用这个图案

(%{WORD:firstname})? (%{WORD:lastname})? (%{NUMBER:age})?
使用()?我忽略了缺失的值,并说它们是可选的,但问题是我们必须在值之间留出空格才能使其工作

我的意思是如果我有这个输入:

Nicolas  19
我必须在Nicolas et 19之间加上两个空格才能正确地找到它

我应该如何避免放置空格?

有两种选择:

  • 在可选模式中放置空格:({WORD})
  • 允许元素之间有一个或多个空格:%%{WORD}+%%{WORD}

  • 不确定这是否有帮助,因为所有字段都是可选的(首先可能没有意义)。使用第一个选项,如果firstname列丢失,则不会有匹配。@Magnubsäck是的,你是对的,这只是一个示例,事实上,我的日志防火墙文件中有3行不同的行,我希望:对其进行搜索,并使用专用的弹性搜索输出将结果存储到弹性搜索集群中。我该怎么办:(?OP在这里提出了具体问题: