簡體   English   中英

自定義grok模式-匹配多個模式

[英]Custom grok patterns - matching multiple patterns

我之前曾問過類似的問題,但沒有任何回應,因此現在是時候改寫這個詞了,希望能得到一些急需的幫助。

最終,我想創建一個攝取管道,但是在嘗試使用Kibana中的Grok調試器創建自定義grok模式時,我遇到了第一個障礙,從消息中提取了兩個字段。 隨着以下消息:

這是一個文本較長的文檔,其中包含許多段落,最后我將添加一些標記,這些標記指示我想提取並添加為其他字段的其他信息。 這是實際文檔的結尾,在RTF的結束括號之前添加了其他信息。

Additionalfield1:這是與Additionalfield1相關的信息

Additionalfield2:與Additionalfield2相關的信息

我正在嘗試創建以下字段,但似乎無法使兩個模式都匹配,只有一個或另一個要匹配。

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

}

下圖顯示了匹配單個模式時我正在做的事情,我希望學習如何匹配和提取以上兩者。 從屏幕快照中可以看到,匹配其中一個,在這種情況下,“ additionalfield1”效果很好,如果我更改模式,同樣如此,但是如果我嘗試查找兩者,我什么也沒有返回。

Grok Debugger單模式匹配

下面的屏幕截圖顯示了嘗試提取extrafield1和additional2(如果同時存在)的嘗試失敗,在這種情況下,它僅提取了additional2。

在此處輸入圖片說明

任何幫助將非常感激。

更新:

很明顯,我真的一點都不明白。 該文本顯然包含許多換行符,但是如果我使用的是

(?m)%{FINCLASS:finclass}

我正在提取extrafield1

如果那時我要補充

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

在自定義模式下輸入以下內容:

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

我收到一條消息,指出模式不匹配,但在additional1之后,該行的其余部分是換行符,因此additional2始終跟隨該\\ n

這使我發瘋,所以如果您想啟發一個菜鳥,請不要讓我把頭發扯掉。

嘗試這個:

輸入:

This is a document with a lengthy text it contains a number of paragraphs and at the end I'll add some markers that indicate additional information I'd like to pull out and add as additional fields. This is the end of the actual document with additional information being added prior to the closing bracket of the RTF.

additionalfield1: this is information associated with additionalfield1

additionalfield2: information associated with additionalfield2

GROK模式:

additionalfield1: (?<additionalfield1>([^,]*))additionalfield2: (?<additionalfield2>([^,]*))

輸出:

{
  "additionalfield1": [
    [
      "this is information associated with additionalfield1\n\n"
    ]
  ],
  "additionalfield2": [
    [
      "information associated with additionalfield2"
    ]
  ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM