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

如何在Fluentd中解析Kubernetes日志生成自定义字段?

一、优先用Fluentd实现字段拆分(最优解)

Fluentd作为日志采集层提前解析字段,能减少Elasticsearch的计算压力,是首选方案。基于v1.14.6版本,核心用parser插件,分两种常见日志格式处理:

1. 结构化JSON日志

如果你的应用输出JSON格式日志(示例:{"date":"2024-05-20","time":"14:30:00","logType":"INFO","endpoint":"/api/user","traceid":"abc123","spanid":"def456","username":"admin","other":"request success"}),直接添加这段filter配置:

<filter kubernetes.**>
  @type parser
  key_name log  # 指定要解析的字段,默认是log
  <parse>
    @type json
  </parse>
  reserve_data true  # 可选,保留原始日志字段
</filter>

2. 非结构化自定义格式日志

如果日志是纯文本自定义格式(示例:2024-05-20 14:30:00 INFO /api/user abc123 def456 admin request success),用正则解析,添加这段filter:

<filter kubernetes.**>
  @type parser
  key_name log
  <parse>
    @type regexp
    # 正则需完全匹配你的日志格式,此处为示例,请根据实际日志调整
    expression /^(?<date>\d{4}-\d{2}-\d{2}) (?<time>\d{2}:\d{2}:\d{2}) (?<logType>\w+) (?<endpoint>\/\S+) (?<traceid>\w+) (?<spanid>\w+) (?<username>\w+) (?<other>.*)$/
  </parse>
  reserve_data true
</filter>

额外调整(可选)

解析后若需删除无用原始字段,添加record_transformer插件:

<filter kubernetes.**>
  @type record_transformer
  remove_keys log, kubernetes, docker  # 删掉不需要的字段
</filter>
二、Elasticsearch侧方案(Fluentd搞不定时)

如果日志格式过于复杂,Fluentd解析困难,用ES的ingest pipeline做字段提取:

  1. 创建解析管道:
PUT _ingest/pipeline/log-parse-pipeline
{
  "description": "拆分自定义日志字段",
  "processors": [
    {
      "grok": {
        "field": "log",
        "patterns": ["%{DATE:date} %{TIME:time} %{WORD:logType} %{URIPATH:endpoint} %{WORD:traceid} %{WORD:spanid} %{WORD:username} %{GREEDYDATA:other}"]
      }
    },
    {
      "remove": {
        "field": "log"
      }
    }
  ]
}
  1. 给目标索引设置默认管道:
PUT /your-log-index/_settings
{
  "index.default_pipeline": "log-parse-pipeline"
}
三、Kibana临时方案(仅展示用)

如果只是需要在Kibana查看拆分后的字段,无需存储到ES,用脚本字段临时处理:

  1. 进入Kibana「管理」→「索引模式」→ 选择目标索引
  2. 点击「脚本字段」→「添加脚本字段」
  3. 比如添加date字段:
    • 名称:date
    • 类型:字符串
    • 脚本:String log = doc['log'].value; return log.split(' ')[0];
  4. 其他字段同理,根据日志格式调整拆分逻辑

注意:脚本字段是实时计算的,会拖慢Kibana查询速度,仅适合临时场景使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:57:56