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

如何从Logstash HTTP Filter获取HTTP响应状态码?

Logstash HTTP Filter获取响应状态码的解决办法

默认情况下HTTP Filter的target_headers只会返回常规响应头,不会包含状态码,要拿到状态码可以试试这两种方法:

方法一:读取事件元数据

HTTP Filter会把响应的状态码这类元数据自动存在事件的[@metadata]字段里,你可以用mutate插件把它提取到自定义字段里:

filter {
  http {
    url => "someUrl"
    verb => "GET"
    target_body => "apiResponse"
    target_headers => "apiResponseHeader"
  }
  mutate {
    add_field => { "http_response_status" => "%{[@metadata][http_filter][status]}" }
  }
}

不同版本的Logstash元数据路径可能有差异,如果上面的路径取不到,试试[@metadata][http][status]。不确定的话可以先加个stdout输出,打印整个事件的元数据确认:

output {
  stdout {
    codec => rubydebug { metadata => true }
  }
}

方法二:用target_status参数(限新版)

如果你的Logstash版本比较新,HTTP Filter已经支持target_status参数,直接配置就能指定字段存储状态码:

filter {
  http {
    url => "someUrl"
    verb => "GET"
    target_body => "apiResponse"
    target_headers => "apiResponseHeader"
    target_status => "http_response_status"
  }
}

配置后状态码会直接写入http_response_status字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:10:31