Regex 定制原木格洛克图案
我试图使用grok模式解析自定义日志行,但无法完全解析该行 自定义日志行:Regex 定制原木格洛克图案,regex,logstash-grok,grok,Regex,Logstash Grok,Grok,我试图使用grok模式解析自定义日志行,但无法完全解析该行 自定义日志行: site 'TRT' : alias 'TRT,FAK,FAS,ATI,ONE,DVZ,TWO' : serveur 'Test10011' RAS : TRT / TRT serveur 'Test10011' OK 格罗克模式: %{DATA:site}\:%{DATA:alias}\:%{DATA:server}\:%{DATA:msg} 结果: { "site": [ [ "site
site 'TRT' : alias 'TRT,FAK,FAS,ATI,ONE,DVZ,TWO' : serveur 'Test10011' RAS : TRT / TRT serveur 'Test10011' OK
格罗克模式:
%{DATA:site}\:%{DATA:alias}\:%{DATA:server}\:%{DATA:msg}
结果:
{
"site": [
[
"site 'TRT' "
]
],
"alias": [
[
" alias 'TRT,FAK,FAS,ATI,ONE,DVZ,TWO' "
]
],
"server": [
[
" serveur 'Test10011' RAS "
]
],
"msg": [
[
""
]
]
}
我无法解析“msg”中的最后几项。你能帮个忙吗?我哪里出了问题?msg应包含“TRT/TRT serveur'Test10011'OK”您似乎只需要使用
GREEDYDATA
而不是数据
模式:
%{DATA:site}\s*:\s*%{DATA:alias}\s*:\s*%{DATA:server}\s*:\s*%{GREEDYDATA:msg}
我还建议在:
周围添加\s*
,以消除前导/尾随空格。
谢谢@Wiktor。以前没有考虑GRADEYDATA:)是的,代码> GReDyDATAs/COD>被翻译成<代码> .*<代码>模式(贪心点匹配模式),和<代码>数据< /代码>被翻译成<代码> *> /COD>(懒点匹配模式)。你可以多读一些,最后一件事。如果我只想在“msg”标签中使用“OK”,那么如何删除OK之前的字符?如果该单词总是在末尾,并且前面总是有空格,那么将最后一个
\s*
替换为*\s
(%{DATA:site}\s*:\s*{DATA:alias}\s*:\s*{DATA:server}\s*:.*\s%{greedydydyddata:msg}
)