Spot Monitor

配置

数据与备份

hub 的全部数据在一个 SQLite 文件里:一键脚本部署是 /opt/monitor/data/monitor.db,Docker 部署在数据卷的 /data/monitor.db。数据页显示它的大小、可回收空间和历史跨度,并提供回收空间、导出和导入备份。

保留天数

设置页的历史数据保留天数(1–365,默认 90)决定 hub 为你留多久的历史。hub 每小时处理一次。

历史分两层,这样「留得久」和「占得少」可以同时成立:

  • 明细层(固定 7 天):每分钟一行的原始数据,图表上的细节来自这里
  • 汇总层(保留天数):更早的数据会先合并成每小时一行再留下——平均值、峰值、延迟中位数与丢包数都还在,只是不再有分钟级的抖动

所以把天数从 7 调到 90,占用空间的增长远小于十二倍:一小时一行,而不是六十行。90 天、100 台节点的库,折叠并整理后实测约 127 MiB(完全不折叠是 1.77 GiB)。

累计流量不受影响:总流量和月流量是独立的累计值,不是从明细算出来的,调小保留天数只会让图表变短。

上限 365 天,而且调小会删数据。原来设成大于 365 的安装,升级后按 365 天算,更早的汇总会在之后几次清理里被删掉(启动日志会写明这件事)。调小之前请先在数据页导出备份。

回收空间

删掉的历史只把空间还给 SQLite 自己,文件不会变小。数据页的回收空间依次清理超出保留天数的明细、重建数据库文件(VACUUM)、截断预写日志,把空间还给文件系统。

执行时需要和数据库大小相当的空闲磁盘,期间面板和 agent 上报会短暂等待。

备份与恢复

导出备份下载整个数据库,文件名形如 monitor-20260924-093000.db。直接复制运行中的 monitor.db 会漏掉预写日志里还没写回的部分,备份请用这里导出的文件。

导入备份用备份文件整体替换当前数据:节点、设置、历史、密码都换成备份里的。

  • 文件先完整上传、校验通过才替换,最大 256 MiB;校验不通过时当前数据不变
  • 旧版本 hub 导出的备份可以导入新版本,反过来不行,要先升级
  • 导入后所有登录会话失效,执行导入的这个浏览器会拿到新会话;在线的 agent 自动重连
  • 反代要放行 8 MiB 的请求体,见反向代理

备份里有节点 token、密码哈希和通知渠道的凭证,按密钥保管。

备份里只有数据库,不含主题包本身——主题是 themes/ 目录下的文件。用的是自己安装的主题的,恢复后在主题页重新安装。

搬到另一台机器

  1. 旧 hub 的数据页导出备份
  2. 新机器按快速开始装好 hub 和反向代理,用新 hub 自己的应急密码登录
  3. 新 hub 的数据页导入备份。此后登录用旧 hub 的密码
  4. 把域名解析指到新机器

agent 连的是域名,解析生效后自动重连到新 hub,节点和累计流量接着算。换了域名的,每台机器要用各自节点弹窗里的新命令重装一次。

两边都是一键脚本部署时,也可以直接复制整个数据目录,自己安装的主题一并带过去:

# 旧机器:停服务,打包数据目录
systemctl stop monitor-hub
tar czf monitor-data.tar.gz -C /opt/monitor data
 
# 新机器:先装一遍 hub,停服务,放回数据目录
sudo ./install-hub.sh
systemctl stop monitor-hub
tar xzf monitor-data.tar.gz -C /opt/monitor
chown -R monitor:monitor /opt/monitor/data
systemctl start monitor-hub
bash
在 GitHub 上修改这一页最后更新 2026-10-02