You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logstash从6.6.2升级至7.13.3后grok正则语法报错如何解决

问题根因

报错是Logstash 7.x依赖的更高版本JRuby对正则语法校验更严格导致的:
原有正则中的字符类[\w-.]里,连字符-放在\w和.之间,会被解析为「匹配\w到.之间字符」的范围运算符,而这个范围在ASCII码中是无效的,因此抛出RegexpError: unmatched range specifier in char-class错误。

修改方案

要保留原有匹配逻辑(匹配字母、数字、下划线、减号、点号),只需要调整连字符在字符类中的位置,避免被识别为范围运算符即可,推荐将连字符移到字符类的最末尾,可读性最高且不会改变匹配规则。

修改后的配置代码

grok {
    match => { "message_string" => "(?<ucd_environment_name1>(?<=release_ucd_environment_name:)[\w.-]*)" }
}

其余同类报错的配置行,只要把字符类中放在中间的-移到字符类的首尾位置,就可以同步修复问题,原有匹配逻辑完全不变。

内容的提问来源于stack exchange,提问作者Tom Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 18:30:00