用于从嵌套括号中过滤数据的 Grok 模式(正则表达式)
Grok pattern (regex) to filter data from nested brackets
我尝试应用 grok 模式来过滤日志中的嵌套括号,如下所示,
[2022-05-20T02:21:54.715] [INFO] [{"id":"876g4jd8v36w0dhna2","data":"fetching public base-plans ..."}]
我的 grok 模式看起来像这样。但是在这里,我无法解析嵌套的括号(括号内的括号)。非常感谢任何帮助,因为我已经尝试了很长时间。
\[%{TIMESTAMP_ISO8601:time}\] \[%{WORD:logLevel}\] \[%{DATA:id}\]
这会很好用。
\[%{TIMESTAMP_ISO8601:time}\] \[%{WORD:logLevel}\] \[\{\"%{GREEDYDATA:id}\"\}\]
以下工作正常,将按预期进行过滤(正则表达式)
filter {
grok {
match => { "message" => "\[%{TIMESTAMP_ISO8601:time}\] \[%{WORD:logLevel}\] \[\{\"id\":%{DATA:id},\"data\":%{DATA:response}\]"}
}
}
我尝试应用 grok 模式来过滤日志中的嵌套括号,如下所示,
[2022-05-20T02:21:54.715] [INFO] [{"id":"876g4jd8v36w0dhna2","data":"fetching public base-plans ..."}]
我的 grok 模式看起来像这样。但是在这里,我无法解析嵌套的括号(括号内的括号)。非常感谢任何帮助,因为我已经尝试了很长时间。
\[%{TIMESTAMP_ISO8601:time}\] \[%{WORD:logLevel}\] \[%{DATA:id}\]
这会很好用。
\[%{TIMESTAMP_ISO8601:time}\] \[%{WORD:logLevel}\] \[\{\"%{GREEDYDATA:id}\"\}\]
以下工作正常,将按预期进行过滤(正则表达式)
filter {
grok {
match => { "message" => "\[%{TIMESTAMP_ISO8601:time}\] \[%{WORD:logLevel}\] \[\{\"id\":%{DATA:id},\"data\":%{DATA:response}\]"}
}
}