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

Fluentd配置问题:如何提取log字段发送至远程Syslog服务器

问题排查与配置修正

错误原因分析

你遇到的"log does not exist"错误,核心问题是日志解析环节错误:

  • 原source配置中使用了<parse> @type none</parse>,这会让Fluentd把每条日志行当成纯字符串,而非解析成JSON结构。此时事件记录里根本没有log字段,只有一个message字段存储完整的JSON字符串。
  • 后续的filter试图解析不存在的log字段,自然触发报错。

同时,原配置没有正确提取log字段的内容,导致发送的是完整JSON结构而非原始日志字符串。

修正后的Fluentd配置

<source>
  @type tail
  path "/var/log/containers/my_application*default*demo*.log"
  pos_file "/var/log/my_app.log.pos"
  read_from_head true
  tag "app-development"
  <parse>
    @type json
    time_key time
    time_format "%Y-%m-%dT%H:%M:%S.%NZ"
  </parse>
</source>

<match app-development>
  @type remote_syslog
  @id out_kube_remote_syslog
  host "#{ENV['SYSLOG_HOST']}"
  port "#{ENV['SYSLOG_PORT']}"
  severity debug
  program app-development_p
  hostname ${kubernetes_host}
  facility daemon
  message_key log  # 关键:指定发送log字段的原始内容

  protocol "#{ENV['SYSLOG_PROTOCOL'] || 'tcp'}"
  tls "#{ENV['SYSLOG_TLS'] || 'false'}"
  ca_file "#{ENV['SYSLOG_CA_FILE'] || ''}"
  verify_mode "#{ENV['SYSLOG_VERIFY_MODE'] || ''}"
  packet_size 65535

  <buffer kubernetes_host>
  </buffer>
  
  <system>
    file_permission 666
  </system>
</match>

关键修改说明

  1. 修复日志解析
    将source中的parse类型改为json,Fluentd会自动把日志行的JSON字符串解析为包含log、stream、time的结构化记录。同时配置time_key和time_format,让Fluentd使用日志自带的时间戳作为事件时间,更准确。

  2. 移除错误的filter
    原filter完全冗余且错误,直接删除即可——日志解析已在source环节完成,无需再用parser filter处理不存在的字段。

  3. 指定发送内容
    在match配置中添加message_key log,告诉remote_syslog插件直接发送记录中的log字段内容,而非默认的message字段,这样就会把原始日志字符串发送到Syslog服务器。

可选:用record_transformer做字段精简

如果需要删除冗余字段(如stream、time),可以添加record_transformer filter:

<filter app-development>
  @type record_transformer
  # 将message字段设为log字段的值(兼容默认发送逻辑)
  <record>
    message ${record["log"]}
  </record>
  # 删除不需要的字段
  remove_keys stream,time
</filter>

这种情况下,match部分无需配置message_key,因为插件默认发送message字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:47:01