processors:
  - decode_json_fields:
      fields: ["message"]
      target: ""
      overwrite_keys: true

把 pattern 改成 JSON 输出后,Kibana 里所有字段都挤在 message 里,dashboard 上的错误率变成 0,等了半天才发现是解析没生效。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:采集端还在按旧的文本正则切分,整行 JSON 被当成一个字符串。字段名也没和索引模板对齐,新增字段没有映射。

这次卡住的地方就在「日志格式切换」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:采集端改成 json 解析 指定 target 字段;索引模板里显式声明字段类型 避免动态映射猜错;保留一个时间字段作为事件时间;新旧两种格式双跑一天 对比字段是否齐全。

确认没问题再收工,dashboard 上 level 和 traceId 都能单独筛选 错误率与源日志一致。

作者 9823189