Skip to content

2.1.7

Choose a tag to compare

@github-actions github-actions released this 24 Jul 19:13
· 0 commits to 9ea394250a4179e1c3015167e6ee0542610c1aea since this release

Important

【本次同版本更新后建议操作】
上游版本的删除逻辑存在缺陷:删除服务器或延迟监测任务时,可能未完整清理关联配置、告警、任务结果及历史指标,从而产生数据残留。本次更新已修复该上游问题,并会在首次启动时自动清理已有残留。升级并确认 Komari 正常启动后,建议先备份 data 目录,再于业务低峰期进入后台数据库管理,手动执行一次“回收空间”,将已清理数据占用的空闲数据库页归还给磁盘。该操作不会删除保留周期内的有效数据,但执行期间可能短暂增加 CPU 和磁盘 I/O 占用。

Important

【建议手动更新】
2.1.7 涉及监控数据库由旧结构迁移至 SQLite V4 块存储。首次启动会自动进入独立的迁移进度页面,迁移完成并校验通过后才会开放正常页面。建议升级前备份整个 data 目录,停止旧版 Komari 后再手动更新;迁移期间不要强制停止进程或容器。迁移失败会回滚并保留原有数据,可在进度页面查看原因并重试。外置 MySQL/PostgreSQL 不参与 SQLite V4 迁移。

Important

【必须操作】
2.1.6 是针对上游 Agent 通信机制遗留 Bug 的安全修复。升级后,请在每个节点点击“重置 Token”后的 24 小时内重新安装/部署对应 Agent。请先升级 Komari Server/Web 2.1.6 或更高版本,再升级 Agent 2.1.61 或更高版本,最后在后台逐个重置节点 Token;重新执行更新后的部署指令即可,无需先手动卸载,节点和历史监控数据不会删除。仅等待 Agent 自动更新不够,因为自动更新不会修改服务或容器中的 Token。新 Token 首次成功连接后,旧 Token 会立即失效。

安全隐患: 上游旧通信机制曾把真正具备认证能力的 Agent Token 放在 URL 查询参数中,可能被反向代理访问日志、网关日志或故障采集系统记录;旧 V1 上报还曾优先信任正文中的 UUID。Token 一旦泄露,攻击者可冒充对应 Agent、伪造监控和任务结果、占用节点连接,并截获 Server 待下发的探测、配置或远程任务。

主要更新内容

  • 新增 SQLite V4 迁移进度页面。启动检测到旧指标库后会进入受限迁移模式,完成身份验证后可查看阶段、进度、数据量和耗时;失败可直接重试,成功后自动进入 Komari。
  • 完善从上游 1.1.x1.2.x1.3.x 及本分支 SQLite V3 升级至 V4 的兼容处理。迁移在事务内执行并校验数据量,失败自动回滚,不会保留半迁移状态。
  • 恢复低资源模式设置,默认关闭。启用或关闭后的状态会持久保存,后续启动不会重新自动判定或覆盖用户选择。
  • 新增独立的精确每日流量账本。日报、周报和月报分别按 2 天、8 天、35 天保留,多个周期同时启用时取最长周期,关闭全部报告后自动清理账本。
  • 定时日报、周报和月报改为读取北京时间完整自然日账本;“立即发送日报”继续统计当天 00:00 至点击时刻的实时数据。
  • 保留 traffic.uptraffic.downnet.total.upnet.total.down 的通用查询及 P70/P95/P99 能力。历史回填逐字节校验成功后,才会恢复旧版自动提升的 8/35 天指标保留期;管理员设置的其他更长周期不会被缩短。
  • V4 后台维护继续按 21 类指标分步执行,并在首次流量账本回填完成后再启动压缩,降低低性能单核服务器启动时的 CPU 和磁盘争用。
  • 优化后台数据库占用展示,分别显示数据库文件、WAL/SHM 运行临时文件与实际磁盘占用;运行临时文件会随写入和 SQLite 自动检查点正常波动,不代表执行了“回收空间”。
  • 重排数据库维护占用明细,以紧凑表格横向对比主数据库和监控数据库的数据库文件、运行临时文件与总占用;标题区仅保留简洁的“合计”,移除重复标题,窄屏自动改为纵向排列。

Bug 修复

  • 修复删除服务器后仍残留流量报告、离线通知、延迟告警、负载告警、命令任务结果、流量账本和历史监控数据的问题;共享规则只移除被删除服务器,不影响其他服务器。
  • 修复删除延迟监测任务后,对应告警规则、旧表记录和指标库历史数据没有同步删除的问题。
  • 启动时自动清理旧版本已经产生的孤立服务器数据、无效任务引用和空指标序列,并阻止在途上报、排队事件或旧连接重新生成已删除数据。
  • 修复旧数据库首次迁移时可能出现的汇总重复、查询空档、时间桶边界越界以及迁移等待超时问题。
  • 修复 SQLite WAL 检查点暂时被读取占用时仅执行一次的问题;现在会自动延迟重试,避免 WAL 长时间未回收。
  • 优化迁移页面在窄屏和大数值情况下的布局,避免进度信息被裁切或撑破容器。

发布与兼容性

  • 程序内版本为 2.1.7 (jftc7ck);Git 标签、GitHub Release 标题和 Docker 标签仅使用 2.1.7
  • Docker 镜像提供 linux/amd64linux/arm64,并同步更新 latest
  • 继续兼容 2.1.6 的安全 Token 迁移流程;尚未完成 Token 重置和 Agent 重装的节点仍须按顶部提示处理。

Docker 拉取

docker pull ghcr.io/nuomiiiii/komari:2.1.7

Linux 一键安装

curl -fsSL https://raw.githubusercontent.com/nuomiiiii/komari/main/install-komari.sh -o install-komari.sh
chmod +x install-komari.sh
sudo ./install-komari.sh

完整变更记录2.1.6...2.1.7