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

Logstash translate过滤器被忽略?端口转应用名配置不生效

Logstash translate 过滤器失效问题排查与修复

具体原因

  • 未开启override参数导致目标字段被跳过写入
    你先通过mutate的add_field创建了[source][application]字段并赋值,而Logstash translate过滤器的override参数默认值为false,即目标字段已存在时,过滤器会直接跳过所有写入逻辑,既不会执行字典映射结果的写入,也不会执行兜底值的赋值,表现就是translate完全被忽略,最终保留mutate写入的原始端口值。
  • 端口字段类型不匹配的潜在隐患
    如果[source][port]是输入源生成的数字类型(如Netflow、防火墙流量采集的端口默认是integer/long),而你字典中的key都是字符串格式,默认情况下translate会严格匹配值的类型,数字80和字符串"80"无法匹配,哪怕开启override也会全部走__NO_MATCH兜底。
  • 前置mutate配置冗余
    你添加的mutate add_field属于多余操作,translate过滤器会自动创建destination指定的目标字段,无需提前赋值。

修正后可用配置

filter {
  # 推荐添加:统一端口字段为字符串类型,彻底规避类型不匹配问题
  mutate {
    convert => { "[source][port]" => "string" }
  }

  translate {
    field => "[source][port]"
    destination => "[source][application]"
    dictionary => {
      "80" => "HTTP"
      "443" => "SSL"
      "5432" => "Postgresql"
    }
    fallback => "__NO_MATCH"
    override => true # 强制覆盖已有目标字段,解决默认跳过写入的问题
  }
}

补充说明

如果你的端口字段本身就是字符串类型,可以直接去掉上述配置里的mutate convert模块,仅给translate添加override => true即可解决核心失效问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 15:24:02