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

如何配置FluentBit与OpenSearch正确处理JSON及非JSON日志

解决方案:多语言K8s日志解析与OpenSearch展示优化

1. FluentBit配置调整(解决JSON日志解析失败与两类日志正常展示)

核心思路

先清理log字段中的前缀内容,再尝试解析JSON;解析失败时保留原文本,确保非JSON日志不受影响。

主配置(fluent-bit.conf)

[SERVICE]
    Flush        1
    Log_Level    info

[INPUT]
    Name              tail
    Path              /var/log/containers/*.log
    Parser            docker
    Tag               kube.*
    Mem_Buf_Limit     5MB
    Skip_Long_Lines   On
    Refresh_Interval  10

# 第一步:移除log字段中的前缀(根据实际前缀格式调整正则)
[FILTER]
    Name          parser
    Match         kube.*
    Parser        log_prefix_cleaner
    Key_Name      log
    Reserve_Data  On
    Preserve_Key  Off  # 用清理后的日志内容替换原log字段

# 第二步:尝试解析JSON,失败则保留原文本
[FILTER]
    Name          parser
    Match         kube.*
    Parser        json
    Key_Name      log
    Reserve_Data  On
    Ignore_Error  On  # 解析失败时不丢弃日志,保留原内容
    Preserve_Key  On  # 保留原始log字段,同时将JSON字段提取到根级别

[OUTPUT]
    Name            opensearch
    Match           kube.*
    Host            <你的OpenSearch域名>
    Port            443
    Index           k8s-logs-%Y.%m.%d
    AWS_Auth        On
    AWS_Region      <你的AWS区域>
    TLS             On
    TLS_Verify      On
    Retry_Limit     3

自定义前缀清理Parser(添加到parsers.conf)

根据实际前缀格式调整正则,比如常见的Python/Go日志前缀:

[PARSER]
    Name        log_prefix_cleaner
    Format      regex
    # 匹配类似"2024-05-20 14:30:00 INFO [app] "的前缀,提取后面的实际日志内容
    Regex       ^(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (?<level>[A-Z]+) \[(?<service>[^\]]+)\] (?<log>.*)$
    Time_Key    timestamp
    Time_Format %Y-%m-%d %H:%M:%S

2. OpenSearch log字段是否需要设置为dynamic类型?

不需要修改log字段的类型,原因如下:

  • OpenSearch默认索引配置dynamic: true,会自动为解析出的JSON字段创建映射;
  • log字段本身存储的是原始日志文本(无论是否解析成功),保持text类型即可满足非JSON日志的搜索需求;
  • 如果你的索引手动设置了dynamic: strict,则需要改为dynamic: true,否则新增的JSON字段会被丢弃。

3. 处理JSON组件偶发的非JSON错误日志

通过在JSON解析Filter中设置Ignore_Error On即可解决:

  • 当组件输出非JSON内容时,FluentBit会跳过解析,直接将原始日志转发到OpenSearch;
  • 这些日志会以普通文本形式展示在OpenSearch中,不会丢失或报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:05:13