用于从嵌套括号中过滤数据的 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}\]"}
  }
}