Komari 1.2.6 针对监控数据体系带来了一次大规模升级。
本次 1.2.6 版本对后端监控数据的存储方式做了一次彻底迁移,尽管已经内置了自动迁移和兼容处理,但这依然属于会影响数据结构和存储路径的重大改动。
强烈建议每一位用户在升级之前,先把 Komari 的数据目录和现有数据库完整备份一份。
升级完成后,记得去后台的“监控数据库”设置页面确认一下——检查数据库连接、迁移进度以及指标保留策略是否都跟预期一致。
升级之后第一次启动,Komari 会自动把原有的监控数据搬迁到新的指标数据库里。所需时间跟历史数据的多少直接相关,如果数据量比较大,耗时会长一些;
本次更新的主要内容:
统计图表模块整体重做,现在可以自由调整布局、拖拽排序、隐藏不需要的指标,还能设置全局默认模板。
图表不再绑定在几个固定的历史字段上,而是换成了按指标绘制的方式,这样以后接入更多监控项、做更多自定义展示都会更方便。
重做后的实例统计图表

图表布局可自定义,支持拖拽调整顺序

曲线样式可自行定制

数据采样方式提供多种选择

可以按指定时间区间查询数据

每一项系统指标都能单独设置

下面是完整的更新记录:
核心变更
- 安全性提升:敏感的 RPC 操作现在强制要求双因素认证(2FA),杜绝越权调用
- 数据库维护:新增了 Vacuum 清理和存储大小查询接口,可以手动回收占用空间
- 监控数据迁移:把 records、gpu_records、ping_records 这几张旧表的历史数据搬到了 Metric Store,兼容 SQLite/MySQL/PostgreSQL 三种后端
- 身份体系重构:用 Principal 主体模型取代了原来简单的角色字符串,Agent 和 Admin 的权限划分更加严格
- 安装流程优化:安装脚本现在支持图形化终端界面(whiptail/dialog),也能选择稳定版或快照版通道
- 去除 Cloudflare 相关功能:内置的 Cloudflare Tunnel 和 Cloudflare Access OAuth 支持都被移除了,相关依赖也一并清掉
- 启动流程重写:改用显式的 App 结构体分阶段完成启动,维护起来更方便,错误处理也更完善
问题修复
- 节点顺序丢失:修复了
common:getNodes这个 RPC 接口返回结果时不保留原始排序的问题 - 主题路径遍历漏洞:
DeleteTheme、UpdateTheme、SetTheme这几个操作之前没有校验路径,存在被利用来读取任意文件的风险,现已修复 - Telegram 报错信息:遇到非 200 响应时,现在会返回具体的 API 错误描述而不只是状态码,方便排查问题
其他变动
- 老的定时压缩逻辑被移除,改用 Metric Store 自带的 rollup 保留策略
- 前端构建流程拆成了独立的 GitHub Action,可以复用构建缓存
- 新增 Snapshot 自动发布工作流,支持发布快照版本
- Metric Store 的聚合查询新增了
PreserveSeries选项,可以按标签维度分别输出独立序列 - 修复了 Metric Store 里几处并发竞争问题,以及迁移进度记录不准确的问题
