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

如何在Logstash中通过@metadata利用已移除字段完成fingerprint计算

Logstash @metadata字段用于fingerprint运算的实现方案

该操作完全可以实现,你未得到预期结果是配置存在3处错误,修正后即可正常运行。

配置错误点说明

  • 字段引用错误:csv过滤器解析生成的name字段存储在事件根层级,不存在[fields][name]路径,原配置的占位符无法取到有效值,会直接将%{[fields][name]}作为字符串存入@metadata。
  • mutate插件add_field语法错误:add_field接收哈希格式的键值对,原配置的数组嵌套=>的写法不符合Logstash配置规范。
  • fingerprint插件source参数写法错误:source参数直接传入字段路径即可,不需要添加%{}插值占位符,原写法无法正确读取@metadata中的字段值。

修正后完整配置

Filter{   
    csv{        
        autodetect_column_names => "true"
        separator => ","
        skip_header => "true"
        columns => ["name","surname","age","email","phone"]
    }
    mutate { 
          add_field => { "[@metadata][no_show]" => "%{name}" }
          remove_field => ["name"]
    }
    fingerprint {
      method => "SHA1"
      source => ["[@metadata][no_show]"]
      target => "fingerprint"
    } 
}

验证说明

你可以临时添加stdout { codec => rubydebug { metadata => true } }输出配置,确认@metadata字段存储值和fingerprint运算结果符合预期,验证完成后删除对应输出配置即可,@metadata字段默认不会被输出到最终目的地,不会额外占用存储资源。

内容的提问来源于stack exchange,提问作者Büşra Duygu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:39:02