You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Fluent Bit中将转义的JSON字符串解析为JSON对象并写入指定字段

如何在Fluent Bit中将转义的JSON字符串解析为JSON对象并写入指定字段

问题场景

你现在的需求很明确:Fluent Bit通过forward输入接收的日志里,log字段是一个转义后的JSON字符串,需要把它解析成结构化的JSON对象,统一放到log_processed字段中,同时保留原日志里的appdateworkload等顶级字段不变。

原配置的问题分析

你的现有配置逻辑有点绕,核心问题出在nest过滤器的使用上:

  • 第二个nest用了wildcard: '*',会把**所有顶级字段(包括你想保留的appdate等)**都塞进log_processed,之后又用lift把部分字段拉回顶级,不仅操作冗余,还容易因字段处理顺序导致格式错误(比如你示例里upstreamCacheStatus出现的多余转义问题)。
  • 没有精准定位到「只把解析后的log结构化字段」移动到log_processed,而是对所有字段执行了嵌套操作。

修正后的完整配置

---
service:
  flush: 1
  log_level: warn
  http_server: true
  http_listen: 0.0.0.0
  http_port: 2020
  hot_reload: on
  log_File: /var/log/fluent-bit/fluent-bit.log
  parsers_file: /fluent-bit/etc/parsers.conf

pipeline:
  inputs:
    - name: forward
      tag: docker
      listen: 0.0.0.0
      port: 24224

  filters:
    # 第一步:解析log字段中的转义JSON字符串,转为结构化键值对
    - name: parser
      match: 'docker'
      parser: json
      key_name: log
      preserve_key: true  # 保留原log字段(不需要的话可设为false)
      reserve_data: true  # 确保原日志的顶级字段(app、date等)不被删除

    # 第二步:把解析出来的结构化字段统一嵌套到log_processed下
    - name: nest
      match: "docker"
      operation: nest
      exclude: "app,date,workload,container_id,container_name,source,log"  # 排除要保留在顶级的字段
      nest_under: log_processed

  outputs:
    - name: stdout
      match: '*'
      format: json_lines

配置逐段解释

  1. Parser 过滤器

    • key_name: log:明确指定要解析的目标字段是那个存了转义JSON的log字段
    • parser: json:用Fluent Bit内置的json解析器处理该字段
    • preserve_key: true:解析后保留原始的log字段(如果不需要存原始转义字符串,直接改成false即可)
    • reserve_data: true:保证原日志里的appdate等字段不会被覆盖或丢失
  2. Nest 过滤器

    • operation: nest:执行嵌套操作,把指定字段放到父字段下
    • exclude: ...:明确列出哪些字段要嵌套,也就是要留在顶级的字段
    • nest_under: log_processed:把除了排除列表之外的所有字段(也就是从log解析出来的结构化数据),统一放到log_processed这个父字段中

最终效果

处理后的日志完全符合你的预期:

  • appdateworkload等原始顶级字段保留在根层级
  • log解析出来的所有结构化数据,会整齐地被收纳到log_processed字段中,不会出现多余转义或格式错误

可选优化

如果不需要保留原始的log字段,直接把parser中的preserve_key设为false,这样日志会更简洁,只保留解析后的结构化数据和必要的顶级字段。

火山引擎 最新活动