[英]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.