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

ELK索引日志筛选:如何用Lucene正则查询过滤4xx状态码日志

ELK筛选400-499状态码日志的正确查询方法

情况1:JSON字段已被ELK解析为独立字段

如果你的ELK已经将log.message中的JSON内容自动解析(比如通过json过滤器),单独生成了status字段,直接用范围查询最高效:

status:[400 TO 499]

情况2:未解析JSON,只能在log.message字段中查询

你之前的正则写法存在语法问题导致匹配失效,正确的Lucene查询方式如下:

方法一:精准匹配三位4xx状态码

用正则限定status值为4开头的三位数字:

log.message:/\"status\": 4[0-9]{2}/

如果需要确保匹配的是完整的status项,可以搭配后续字段:

log.message:"\"status\": 4[0-9]{2}, \"vhost\":"

方法二:范围匹配(适用于数字格式的status值)

若log.message中的status值以数字类型存储,也可以直接用范围查询:

log.message:(\"status\": [400 TO 499])

之前查询失效的原因

  • 4*是Lucene正则的量词,代表匹配0个或多个4,而非任意数字,无法匹配401这类状态码。
  • 4(\d)+会匹配4后跟1个或多个数字,可能命中40、4000这类不符合要求的数值,而我们需要严格的三位4xx状态码,因此4[0-9]{2}的写法更精准。

内容的提问来源于stack exchange,提问作者Satheesh Pandian Jeganathan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:12:40