Log Insight日志解析提取括号内内容正则失效问题求助
Log Insight日志解析括号字段提取失败问题解决方案
问题原因
- 正则语法错误:第二个parse语句的命名捕获组缺少闭合右括号,原正则
/(?<@endpt_get>\(([^)]+)\)/未完成捕获组的语法闭合,导致正则匹配失败 - 字段命名违规:自定义字段使用
@前缀,该前缀为Log Insight系统保留字段专用(如@message、@timestamp),自定义字段使用会触发解析异常 - 冗余捕获组:正则中多余嵌套了一层捕获组,无必要且增加匹配出错概率
修复方案
方案1:修正原有写法
仅调整错误的parse语句即可正常提取:
fields @message | filter @message like /technical.INFO: Webhook "/ | parse @message /(?<webhookId>\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b)/ | parse @message /\((?<endpt_get>[^)]+)\)/ | sort @timestamp desc | limit 5
方案2:合并为单次parse(更高效)
将两个字段的提取合并为一次正则匹配,减少解析开销,匹配稳定性更高:
fields @message | filter @message like /technical.INFO: Webhook "/ | parse @message /Webhook "(?<webhookId>[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})" \((?<endpt_get>[^)]+)\)/ | sort @timestamp desc | limit 5
两种方案都可以成功提取webhookId(即UUID)和endpt_get(即括号内的字符串)两个字段。
内容的提问来源于stack exchange,提问作者Mitsukk
相关产品推荐
相关产品推荐

