簡體   English   中英

多個自定義的grok模式不匹配,但它們單獨成功匹配?

[英]Multiple custom grok patterns not matching, but they successfully match alone?

Grok匹配單個定制模式,但是在組合定制模式時匹配。

完整,有效,可驗證的示例

樣本數據:

OK 05/20 20:12:10:067 ABC_02~~DE_02 FGH_IJK jsmith _A0011

自定義模式:

MMDD [0-1][0-9]/[0-3][0-9]
THREAD _A\w+

他們分開工作; 具體來說,這種模式本身可以工作:

%{MMDD:mmdd} 

// Result
{
  "mmdd": [
    [
      "05/20"
    ]
  ]
}

...並且這種模式本身起作用:

%{THREAD:thread}

// Result
{
  "thread": [
    [
      "_A0011"
    ]
  ]
}    

..但在一起,它們失敗了:

%{MMDD:mmdd} %{THREAD:keyword}

No Matches

令人費解。 泰姆·基思(Tyvm Keith):^)

在此處進行測試: https//grokdebug.herokuapp.com/

正則表達式資源: https : //regex101.com/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

根據以下Jeff Y的評論進行編輯

注意將keyword更改為thread

// Grok Pattern
%{MMDD:mmdd}%{DATA}%{THREAD:thread}

// Result
{
  "mmdd": [
    [
      "05/20"
    ]
  ],
  "DATA": [
    [
      " 20:12:10:067 ABC_02~~DE_02 FGH_IJK jsmith "
    ]
  ],
  "thread": [
    [
      "_A0011"
    ]
  ]
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

編輯2基於Jeff Y在下面的第二條評論

// Data - HACKED - Note move of _A0011 to after mm/dd
OK 05/20 _A0011 20:12:10:067 ABC_02~~DE_02 FGH_IJK jsmith 

// Grok Pattern
%{MMDD:mmdd} %{THREAD:thread}

// Result
{
  "mmdd": [
    [
      "05/20"
    ]
  ],
  "thread": [
    [
      "_A0011"
    ]
  ]
}

Grok將針對整個消息測試您的模式。

如果你的消息是OK 05/20 _A0011 20:12:10:067 ABC_02~~DE_02 FGH_IJK jsmith而您只需要在05/20_A0011一部分,你神交應該有模式,以字符串的其余部分相匹配,但不保存他們在一個領域。

例如,模式%{WORD}%{SPACE}%{MMDD:mmdd}%{SPACE}%{THREAD:thread}%{SPACE}%{GREEDYDATA}將與您的字符串匹配,它將保存mmdd並清除thread ,但請忽略其他所有內容。

暫無
暫無

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

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