DEBUG.WIKI
京东云;让 AI 进入真实业务;零售 · 物流 · 客服 · 硬件;查看方案 →
ZgoCloud:多地区部署,按需选节点;日本、美国、香港、德国
Evoxt;最高 6.0GHz CPU;高频云服务器 · 免费每周备份;查看配置 →

Loki 3.6 配置不认识 block_builder,先核对旧组件依赖

Loki 3.6 已删除旧 block_builder 配置字段,不依赖该组件的部署可移除旧配置段并校验配置;Kafka 链路和 max_chunk_age 语义不能直接按此方式等价迁移。

Loki 从 3.5.8 升到 3.6.0 后,加载配置时报 field block_builder not found in type loki.ConfigWrapper。如果旧文件包含 block_builder,应先核对该版本的配置结构,再处理 YAML。日志里通用的环境变量展开提示,不会让一个已删除的字段重新有效。

Loki 3.6 移除了旧 block builder 和 scheduler 相关代码。旧版能解析的 block_builder.max_chunk_age 因而不能原样带入新版本。这里只能确认配置字段已删除,不能把换成另一个名字当作自动迁移,也不能承诺把 18000h 搬到某个 ingester 字段后含义完全相同。

先查看实际运行二进制或镜像的版本、所选 target,以及真正被挂载的配置文件。不要只看仓库中的 YAML;容器可能挂载了另一份旧文件,部署工具也可能合并出额外配置。将发生错误的文件另存到受控副本,用于修改与比较。

若部署已经不依赖旧 block builder,可从副本中移除整个不再支持的 block_builder 段,然后用计划部署的同一版本校验:

loki -version
loki -verify-config=true -config.file=/path/to/reviewed-loki.yaml

路径替换为受控配置副本,保留它原来需要的环境变量与安全挂载方式。校验成功表示配置可以被该二进制读取并通过相应检查,不等于日志已经摄取、索引和查询正常。更换配置后,仍需按既有发布流程观察组件启动、写入链路和查询结果。

若原部署的 Kafka 链路需要旧 block builder,移除字段可能让解析错误消失,却留下功能缺口。此时应先梳理部署目标、数据流、存储布局及新组件的配置要求,单独设计迁移。不要只为了启动成功删掉业务所依赖的组件,也不要把配置解析成功当作旧架构已经等价恢复。

对于不使用该旧组件的部署,验收可分两步:配置校验不再出现这个未知字段;正常发布后,新写入的测试日志能在预期时间范围被查询到,已有查询行为也符合要求。若后者失败,要继续查看实际写入与查询组件,不能再次把未知字段修复当作全链路结论。

没有确认的正式版本会恢复旧字段。当前处理是针对已移除配置的有限调整,适用于确认不再依赖旧组件的部署;其他未知字段错误也应按各自版本的配置结构判断。