使用包含方括号的模式在 logstash 中的 Grok 解析失败
Grok Parsing Failure in logstash with Pattern That Includes Square Brackets
我有一个日志模式,其中每个日志元素都用方括号括起来。我无法控制原始日志。我只希望 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。我确定它只与括号部分有关,因为当我删除该模式时,每个模式都可以正常工作。对于我做错了什么的任何想法,我将不胜感激。谢谢
没关系。我通过像这样转义括号来让它工作:\ [ %{NUMBER:threadId}
\ ]
我有一个日志模式,其中每个日志元素都用方括号括起来。我无法控制原始日志。我只希望 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。我确定它只与括号部分有关,因为当我删除该模式时,每个模式都可以正常工作。对于我做错了什么的任何想法,我将不胜感激。谢谢
没关系。我通过像这样转义括号来让它工作:\ [ %{NUMBER:threadId} \ ]