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

如何去除Fluentd采集Kubernetes日志发送到CloudWatch时的多余乱码字符

Fluentd移除日志ANSI转义颜色码解决方案

方案1:内置record_transformer过滤器(无额外依赖)

无需安装第三方插件,直接修改Fluentd配置添加如下filter段即可:

<filter kubernetes.**>
  @type record_transformer
  enable_ruby true
  <record>
    log ${record['log'].gsub(/\u001B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]/, '')}
  </record>
</filter>

核心逻辑是通过Ruby的全局替换方法,匹配并移除所有ANSI控制序列,该正则可覆盖你样本中出现的所有颜色类转义码。
注意事项:

  • 必须开启enable_ruby: true配置,否则内嵌的Ruby表达式无法执行
  • 将kubernetes.**替换为你实际的日志流tag,保证过滤规则命中需要处理的日志

方案2:专用ANSI过滤插件(配置更简单)

如果不想手动维护正则,可使用专用过滤插件简化操作:

  1. 安装插件:
    gem install fluent-plugin-ansi-filter
  2. 添加filter配置:
<filter kubernetes.**>
  @type ansi_filter
  key_name log
</filter>

插件会自动识别并移除所有标准ANSI转义序列,无需手动调整正则规则。

生效验证

修改配置后重启Fluentd服务,新采集的日志就会自动移除多余的转义字符,输出你预期的纯文本日志内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:01