自定义grok模式-匹配多个模式

问题描述 投票:0回答:1

我之前曾问过类似的问题,但没有任何答复,因此认为是时候改写这个词了,希望得到一些急需的帮助。

最终,我想创建一个接收管道,但是在尝试使用Kibana中的Grok调试器创建自定义grok模式时,我遇到了第一个障碍,从消息中提取了两个字段。显示以下消息:

这是一个文本较长的文档,其中包含许多段落,最后我将添加一些标记来指示我想提取其他信息并添加为其他信息领域。这是实际文档的结尾,还有其他内容在RTF结束括号之前添加的信息。

附加字段1:这是与附加字段1相关联的信息

附加字段2:与附加字段2相关联的信息

我正在尝试创建以下字段,但似乎无法使两个模式都匹配,只有一个或另一个要匹配。

{
  "additionalfield1": ": this is information associated with additionalfield1",
  "additionalfield2": ": this is information associated with additionalfield2"

}

下图显示了匹配单个模式时我正在做的事情,我希望学习如何匹配和提取以上两者。从屏幕快照中可以看到,匹配其中之一,在这种情况下,“ additionalfield1”效果很好,如果更改模式,同样如此,但是如果我尝试查找两者,我什么也没得到返回。

Grok Debugger single pattern matching

下面的屏幕快照显示了如果同时存在多个additional1和additional2,则提取它们的尝试失败,并且在这种情况下,它只会提取additional2。

enter image description here

任何帮助将不胜感激。

更新:

很明显,我真的一点都不明白。文本显然包含许多换行符,但是如果我使用[]

(?m)%{FINCLASS:finclass}

我正在提取Additionalfield1

如果我要添加的话

(?m)%{FINCLASS:finclass}(?m)%{MYCLASS:myclass}

并在自定义模式下输入:

FINCLASS : (?<=additionalfield1:\s)[^,\n]*
MYCLASS : (?<=additionalfield2:\s)[^,\n]*

我收到一条消息,指出模式不匹配,但在additional1之后,该行的其余部分是换行符,因此additional2始终跟随该\ n

这使我发疯,所以如果您想启发一个菜鸟,请不要让我把头发扯掉。

我之前曾问过类似的问题,但没有任何回应,因此,现在是时候改写这个词了,希望能得到一些急需的帮助。最终,我想创建一个摄取管道,但是我在...

regex elasticsearch logstash kibana logstash-grok
1个回答
0
投票

尝试一下:

INPUT:

© www.soinside.com 2019 - 2024. All rights reserved.