繁体   English   中英

仅在第 7 个字符后匹配的 Logstash Grok 模式

[英]Logstash Grok Pattern that matches after 7th character only

我想用 grok 模式解析我的日志。

这是我的示例日志文件,其中包含 7 |*| 每个日志中的字符。

2022-12-15 01:11:22|*|639a7439798a26.27827512|*|5369168485-532|*|3622857|*|app.DEBUG|*|Checking the step |*|{"current_process":"PROVIDE PROBLEM INFORMATION","current_step":"SUBMIT_MEMO","queue_steps":}|*|{"_environment":"test","_application":"TEST"}

我正在使用 grok 模式创建字段,但最后我试图在每个日志中的第 7 个|*|{"\_environment":"test","\_application":"TEST"}之后只选择最后一个 JSON 部分并解析它在 Logstash 中使用 JSON 过滤器。

我怎样才能在第 7 个|*|之后只获得 JSON 对象每个日志中的对象?

试试这个:

grok {
    match => [ "message", "(?<notRequiredField>(?:.*?(\*)+){6}.*?((\*)+))\|%{GREEDYDATA:requiredField}" ]
}
mutate {
      remove_field => [ "notRequiredField" ]
}

神交调试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM