我有一个日志模式,其中每个日志元素都放在方括号中。我无法控制原始日志。我只希望grok解析忽略括号,而只解释括号之间的内容。基于接近以下行的内容:
2019-04-04 13.23.57.057 [52] [77] [MEASURE] [XYZService]
,我希望模式将52视为threadId。我有以下代码:
if [message] =~ "MEASURE" {
grok {
match => { " message" => "%{TIMESTAMP_ISO8601:logtime} [%{NUMBER:threadId}] %{GREEDYDATA:restofmessage}" }
}
}
else {
drop()
}
在这种状态下,logstash尝试解释该行时出现grokparsefailure。我敢肯定它仅与方括号有关,因为当我删除该模式时,每种方法都可以正常工作。对于任何想法,我做错了我将不胜感激。谢谢
答案 0 :(得分:1)
没关系。我通过这样的转义来使它起作用:\ [%{NUMBER:threadId} \]