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