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

如何在Splunk中提取日志的HTTP statusCode并统计其出现次数?

解决Splunk提取statusCode并统计次数的问题

错误原因

你当前的rex命令报错,是因为正则表达式中的双引号未转义,Splunk搜索解析器会将未转义的双引号视为命令结束标记,从而引发语法错误。

正确查询语句

要正确提取statusCode并统计各状态码出现次数,使用以下完整查询:

index=main env=nonprod sourcetype="*sample-service*" "response" 
| rex field=_raw "\"statusCode\":(?<statusCode>\d+)" 
| stats count by statusCode

语句说明

  • rex field=_raw "\"statusCode\":(?<statusCode>\d+)":指定从原始日志(_raw字段)提取内容,转义双引号避免解析错误;通过(?<statusCode>\d+)定义提取后的字段名为statusCode,匹配1个及以上数字(\d+比[\d]*更精准,可避免匹配空值)。
  • stats count by statusCode:按statusCode分组统计出现次数,直接生成你需要的表格格式结果。

额外优化方案

从样本日志看,Response:后是JSON格式内容,也可以用spath命令直接解析JSON,比正则表达式更可靠:

index=main env=nonprod sourcetype="*sample-service*" "response" 
| rex "Response:(?<response_json>{.*})" 
| spath input=response_json path=statusCode as statusCode
| stats count by statusCode

先通过rex提取Response:后的完整JSON内容,再用spath解析出statusCode字段,适合日志未被Splunk自动识别为JSON格式的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:39:57