Releases: monitor-probe/monitor
Release list
v1.3.2
升级须知
- 历史改为两层存储:最近 7 天按分钟保存,更早的按小时汇总。升级后第一次启动会把现有的分钟历史汇总成小时,再删掉 7 天以前的分钟明细,期间面板与上报照常;日志里会出现一行
folded N hours of history into the hourly tier。100 台节点、保留 90 天的库实测约 150 秒。 - 保留天数改为 1–365,默认 30:原来设成超过 365 的按 365 处理,更早的历史会被清理;从没设置过的由 7 天变为 30 天,数据库会相应变大,可在「设置」里改回。
- 回退:直接换回 1.3.1 的二进制可以照常运行;但 1.3.2 导出的备份不能导入 1.3.1 及更早版本。
- Docker:数据库较大时「回收空间」不再失败;启动时的明文告警改为给出容器里关端口的做法。
- 内嵌的默认主题升级到 v1.3.0。
第三方主题适配
以下都是新增字段,旧主题不改也能照常显示;想让访客看到更长的历史,请按此适配:
/api/me新增history_days,即 hub 的保留天数。/api/nodes/{id}/metrics的hours上限由「匿名 168、登录 2160」改为保留天数,登录与匿名相同。时间范围建议按history_days生成,旧 hub 没有这个字段时按 7 天。- 超过 168 小时的窗口读小时汇总,每个点至少覆盖 1 小时。响应新增
step(每个点覆盖的秒数);每个点新增cpu_max(区间内最高的 CPU 占用)与minutes(有数据的分钟数,满额是step / 60,最后一个点是还没过完的时段)。 - 节点的公开视图新增
public_remark:站长写给访客的一行说明,最多 100 字,可以为空。 - 价格:hub 1.3.1 起货币是三个大写字母,更早的版本存下的值可能不是,用
Intl.NumberFormat的currency格式化时要兜住它抛出的错误。
字段说明见文档站「主题开发」:https://monitor-document.pages.dev/dev/theme
What's Changed
- feat: 主题可以填 GitHub 仓库地址直接安装;选错文件时提示下载 theme.tar.gz by @stqfdyr in #75
- fix: SQLite 的临时文件放在数据库所在目录 by @stqfdyr in #78
- fix: 容器里的明文告警按网络模式给出关端口的做法 by @stqfdyr in #82
- feat: 历史分两层存储,保留天数上限 365、默认 30 by @stqfdyr in #81
- fix: 小时汇总按节点一次清完;数据页显示小时汇总的行数 by @stqfdyr in #84
- perf: 历史图表的查询走独立的只读连接,不再挡住 agent 上报 by @stqfdyr in #85
- feat: 历史接口返回 step,即每个点覆盖的秒数 by @stqfdyr in #86
- chore: 修正与代码不符的注释,删掉面板用不到的排序写入和死分支 by @stqfdyr in #87
- fix: 价格统一按中文写法显示,货币符号或代码一律在数字前 by @stqfdyr in #88
- feat: 节点加公开备注,公开页可读 by @stqfdyr in #89
- fix: 延迟小时汇总随节点、探测级联删除,回退到旧版期间的删除不再留下历史 by @stqfdyr in #90
Full Changelog: v1.3.1...v1.3.2
v1.3.1
这一版发布 hub v1.3.1,内嵌的默认主题同步升到 v1.2.0,ServerStatus 主题同时发布 v1.3.0。agent 没有新版本,仍是 v1.1.0。
升级
重新执行机器上的一键脚本,菜单里选「1 安装 / 升级」,端口直接回车沿用原来的。数据库、端口和 --site 都会保留;新版起不来时自动换回原来的版本。
sudo sh install-hub.sh机器上的脚本是 v1.2.0 及更早下载的,先按 v1.3.0 的说明重新下载一次。
- Docker:
docker pull stqfdyr/monitor:latest(或ghcr.io/monitor-probe/monitor:latest)后用原来的命令重建容器,数据在 volume 里。 - 主题:内嵌的默认主题随 hub 一起升级;装在主题目录里的主题(如 ServerStatus)到面板「主题」页点「从 GitHub 更新」。
- agent:不用升级。
主要变化
- 延迟监控拖拽排序(#43,感谢 @vansour):延迟页可以像节点列表一样拖动排序,键盘 ↑↓ 同样可用;公开页延迟图的图例和配色跟随这个顺序(#40)。
- 任意货币与付款周期(#71):货币填三个字母的代码(TWD、HKD 等),付款周期填「数字 + 月 / 年」,最长 100 年;自动续期按任意月数顺延(#69)。
- 峰值网速(#68):历史记录每分钟另存这一分钟里 agent 上报过的最高网速,两个官方主题的网速图在平均值之外画出峰值。一次十几秒的测速不再被摊到整分钟里、在 7 天窗口里看不出来。
- 大量节点下的面板(#65):节点表从 1024 宽起整表放得下,不再需要横向滚动(#67);名称按词折行,过长的 IPv6 缩写显示、悬停看完整地址,流量接近或用满额度时变色;拖动排序平滑换位;对话框按回车保存。
- 写盘量(#59):流量与探测结果约每分钟落库一次,每条上报的写盘量实测从 6553 B 降到 659 B。超出 agent 自身节奏的帧丢弃:上报间隔不足 500 ms、每 5 秒超过 128 条探测结果。
- 报错改为简短中文(#63):面板拿到的 hub 报错都是一句中文,说明怎么了、该做什么,原始错误只进 hub 日志;反代或 CDN 返回的错误页按状态码说明,不再原样显示。
- 主题包校验(#64):上传或更新主题时校验 gzip 校验和,没下载完或被改过的包提示重新下载。
- 重装不改上报间隔(#60):安装弹窗只在改过间隔时写
--interval,拿它重装调过间隔的机器不再改回 1 秒;弹窗显示节点当前的间隔。 - 深色模式下日期框、复选框、滚动条等浏览器原生控件也是深色(#72);主题设置对话框去掉说明文字(#70)。
- 默认主题 v1.2.0:网速图画出峰值;国旗移到名称前;节点列表上方的汇总四格可在主题设置里关闭;付款周期显示「5 年付」「18 个月付」;接口出错时显示中文说明。
升级须知
- 数据库结构升到版本 10,只加了列(延迟监控的顺序、每分钟的峰值网速):回退到 v1.3.0 仍能运行,再升级时迁移会重跑,排好的顺序保留;新版导出的备份不能导入旧版 hub。
- 付款周期是 1、3、6、12、24、36 个月时仍按原来的名字存储,旧版主题照常显示;5 年、18 个月这类新周期在旧版主题上显示为
60m、18m,更新主题即可。 /api/nodes/{id}/metrics每行新增net_rx_max、net_tx_max,旧主题不读它们,照常显示。- hub 的报错回复是一句
text/plain的中文。第三方主题若把错误原文显示给访客,现在显示的就是这句话。 - hub v1.3.1 与 agent v1.0.0、v1.1.0 都兼容。
What's Changed
- fix: agent 上报按自身节奏限速,流量与探测结果约每分钟落库一次 by @stqfdyr in #59
- fix: 重装命令不再把上报间隔改回 1 秒;节点地址改由 hub 挑选 by @stqfdyr in #60
- ci: 与已发布 agent 跑端到端检查,安装脚本过 shellcheck,tag 须与版本号一致 by @stqfdyr in #61
- feat: 延迟监控支持拖拽排序,公开页图表跟随 by @vansour in #43
- fix: 报错统一改为简短中文 by @stqfdyr in #63
- fix: 主题包校验 gzip 校验和,被改过的包不再能装上 by @stqfdyr in #64
- fix: 面板在大量节点下的布局与交互细节 by @stqfdyr in #65
- feat: 历史记录保留每分钟的峰值网速 by @stqfdyr in #68
- fix: 主题设置对话框去掉说明文字 by @stqfdyr in #70
- feat: 货币可填任意三字母代码,付款周期可填任意月数或年数 by @stqfdyr in #71
- fix: 深色模式下浏览器原生控件也用深色 by @stqfdyr in #72
New Contributors
Full Changelog: v1.3.0...v1.3.1
v1.3.0
这一版发布 hub v1.3.0,内嵌的默认主题同步升到 v1.1.0,ServerStatus 主题同时发布 v1.2.0。agent 没有新版本,仍是 v1.1.0。
升级
Important
用一键脚本安装的,请重新下载并执行一遍一键脚本。
从这一版起,一键脚本随 release 发布,运行时先和最新 release 核对自己,旧了会自动换成新版再装。机器上现有的那份(v1.2.0 及更早,从 raw.githubusercontent.com 下载)没有这项检查,所以这一次要重新下载;以后升级重跑同一份即可。
curl -fsSL https://github.com/monitor-probe/monitor/releases/latest/download/install-hub.sh -o install-hub.sh
sudo sh install-hub.sh菜单里选「1 安装 / 升级」,端口直接回车沿用原来的。数据库、端口和 --site 都会保留;新版起不来时自动换回原来的版本。
- Docker:
docker pull stqfdyr/monitor:latest(或ghcr.io/monitor-probe/monitor:latest)后用原来的命令重建容器,数据在 volume 里。 - agent:不升级也能用。面板新增的「更新」页给出一条升级命令,每台机器都一样、不含凭证,以 root 执行:
它沿用机器上的 token、上报间隔与网卡设置,不新建节点;可以同时发给多台机器,做法见文档批量安装与升级。Alpine(OpenRC)上的 agent 执行一次后改为以
curl -fsSL https://你的面板域名/install.sh | sh -s -- --upgrademonitor-agent用户运行,不再是 root。
主要变化
- 节点分组(#51、#54):「节点」页的「分组」一次给多台设好分组,改名、解散也在这里;列表可按分组筛选,搜索匹配分组名。分组公开,默认主题与 ServerStatus 的公开页按分组切换。分组名最多 13 个字。
- agent 批量升级与版本提示(#39):
install.sh --upgrade读机器上已有的配置,命令不含凭证。面板新增「更新」页:hub 与 agent 的当前与最新版本、按版本分组的待升级节点和升级命令;有新版本时导航上显示小圆点,可在该页关闭。 - 一键脚本自检(#38):见上文「升级」。
- 主题设置(#50):主题在
theme.json里声明设置项,面板「主题」页按声明生成表单,hub 按主题保存,更新或重装主题后设置仍在。 - 批量添加(#37):弹窗可以设置上报间隔;
install.sh --name给批量注册的节点单独命名。 - 多台同时安装(#47):批量命令同时发给多台时,hub 转发 agent 二进制按先后排队(最多等 30 秒),
install.sh遇到 503 自动重试;下载到的不是可执行文件时,在停掉旧 agent 之前退出。 - 添加节点改看浏览器地址(#36):宝塔 / aapanel 的默认反代、裸
proxy_pass这类不透传X-Forwarded-Proto或Host的配置下,从 https 域名进面板也能添加节点;走 SSH 隧道进面板时,给 hub 配上--site即可添加。 - 到期天数按 hub 的日历(#53):新增公开字段
expires_in,访客与 hub 不在同一时区时,在线节点不再在顺延之前显示「已过期」;每小时的巡检对齐整点。 - agent 安装与升级更稳(#48、#49):v1.0.0 装的 agent 原地升级后不再起不来(
217/USER);新版没起来时换回原来的版本并报错退出,不再显示成功;OpenRC 下 agent 以monitor-agent用户运行。 - 国家码(#55):查询地址在 IPv4 与 IPv6 之间切回时直接取回上次的结果,服务器重启后国家码不再空上一小时(#46)。
- 默认主题 v1.1.0:国旗、发行版图标、绿色在线点;按分组切换;本月用量与到期天数改用 hub 下发的值;深浅色实时跟随系统;延迟图削峰在平稳线路上也生效。
- 面板:深浅色不再在加载时写死,也不再把公开页钉在当时的配色(#41);打开对话框时页面不再左移(#52);分组输入改为下拉菜单,下拉统一在框下方展开(#57);
monitor-hub --help写全--site的三种用途(#56)。
升级须知
- 数据库结构升到版本 8,只加了列:回退到 v1.2.0 仍能运行,再升级时迁移会重跑;新版导出的备份不能导入旧版 hub。
- 添加节点要从 https 域名进面板,由浏览器发来的
Origin判断;反代清掉了Origin头时,添加节点返回 403 并说明原因。X-Forwarded-Proto仍要配,它决定会话 cookie 的Secure标志。 - 「更新」页的最新版本由 hub 查询 api.github.com(管理员打开面板时查,成功后缓存 6 小时);连不上时只是不显示,不影响其它功能。
- 公开接口新增
group与expires_in字段,旧主题不读它们,照常显示。 - hub v1.3.0 与 agent v1.0.0、v1.1.0 都兼容。
What's Changed
- refactor(install): 去掉取密码时回退读 journal 的过渡代码 by @stqfdyr in #32
- fix: 添加节点看浏览器的 Origin,不再从反代头反推入口 by @stqfdyr in #36
- feat: 批量添加可调上报间隔,--name 指定节点名 by @stqfdyr in #37
- feat(install): 一键脚本先对自己的版本,旧了换成新版再接着装 by @stqfdyr in #38
- feat: 批量升级 agent,面板显示版本与更新 by @stqfdyr in #39
- fix: 并行批量装机时转发排队等位,install.sh 重试 503、下载先验 ELF by @stqfdyr in #47
- fix(install): 从 DynamicUser 版本原地升级时补建用户;新版没起来时报错并换回原来的版本 by @stqfdyr in #48
- feat(install): OpenRC 下 agent 也以 monitor-agent 运行 by @stqfdyr in #49
- 面板不再在加载时写死深浅色 by @stqfdyr in #41
- feat: 主题设置——theme.json 声明,面板编辑,hub 按主题保存 by @stqfdyr in #50
- feat: 节点分组 by @stqfdyr in #51
- fix: 打开对话框时页面不再左移半个滚动条 by @stqfdyr in #52
- fix: 到期天数按 hub 的日历下发,巡检对齐本地整点 by @stqfdyr in #53
- fix: 分组名最多 13 个字 by @stqfdyr in #54
- fix: 查询地址换回上一个时直接取回国家码 by @stqfdyr in #55
- docs: --help 写全 --site 的三种用途 by @stqfdyr in #56
- fix: 分组输入改为下拉菜单;下拉在框下方展开,锁滚动时保留滚动条 by @stqfdyr in #57
Full Changelog: v1.2.0...v1.3.0
v1.2.0
这一版 hub(v1.2.0)与 agent(v1.1.0)同时发布,建议两边一起升级:先升 hub,再在面板里复制各节点的安装命令重跑,把 agent 升到 v1.1.0。新旧版本可以混用,但「指定统计的网卡」需要 agent v1.1.0 才生效。
升级
- 一键脚本:重新下载安装器后重跑,选「1」即升级,数据与参数都会保留。
curl -fsSL https://raw.githubusercontent.com/monitor-probe/monitor/main/install-hub.sh -o install-hub.sh sudo sh install-hub.sh
- Docker:
docker pull stqfdyr/monitor:latest(或ghcr.io/monitor-probe/monitor:latest)后用原来的命令重建容器,数据在 volume 里。 - agent:面板「节点」页点节点的安装按钮,复制命令到那台机器上重跑;批量添加的命令同样可以直接重跑。不写的
--interval与--iface沿用机器上原来的设置。
主要变化
- 忘记面板密码可以重置(#22):
sudo sh install-hub.sh --reset-password(菜单「5 重置密码」),Docker 部署用docker exec monitor /monitor-hub --db /data/monitor.db --reset-password。旧密码立即失效、所有会话登出,hub 不用重启。首次安装直接显示密码,不再依赖 journal,journald 不保存日志的主机也能拿到。 - Cloudflare 在前时取到节点的真实 IP(#28):节点的出口地址与国家码按
CF-Connecting-IP取;登录限流不读这个头,它可以被伪造。别家 CDN 请在反代上配置 realip,见文档反向代理页。 - 节点地址与国家码按机器自身的公网地址取,面板每族显示一个地址,支持手动填写(#20)。
- 指定统计的网卡:安装弹窗与批量添加可设置
--iface,下方命令实时更新;在线节点会显示并预填当前设置。软路由、PVE 宿主机这类转发流量的机器需要它,见文档流量统计页(#27,需要 agent v1.1.0)。 - 删除节点时附带 agent 卸载命令,
install.sh --uninstall删除 agent 的全部文件(#24)。 - 节点删除或 token 换发后重跑批量注册命令,不再沿用作废的 token;注册失败时显示 hub 给出的原因(#25)。
- 重跑安装命令时沿用原来的
--interval与--iface(#27)。 - 延迟监控新建时默认全选节点,可设新节点自动加入;选节点支持搜索与全选(#21)。
- 本月用量改由 hub 统一计算(#23)。
升级须知
- 数据库结构升到版本 6:新版 hub 导出的备份不能导入旧版 hub。
- agent 升到 v1.1.0 后,每个节点的流量会重新对一次基线,丢一个上报间隔(默认 1 秒)的流量,已有的总流量不变。
- 「指定统计的网卡」需要 agent v1.1.0;旧版 agent 会忽略这个设置,面板显示「默认规则」。
- 安装器装完不再打印反向代理配置,改为给出文档地址。
What's Changed
- fix: 节点地址与国家码按机器自身的公网地址取,支持手动填写 by @stqfdyr in #20
- feat: 延迟监控新建时默认全选节点,可设新节点自动加入;选节点支持搜索与全选 by @stqfdyr in #21
- refactor: 本月用量改由 hub 计算下发;测试里的 PingTask 用 Default 补齐字段 by @stqfdyr in #23
- feat: 删除节点时附带 agent 卸载命令;install.sh 支持 --uninstall by @stqfdyr in #24
- feat: 安装脚本与面板支持指定统计的网卡(--iface);重跑沿用 --interval by @stqfdyr in #27
- fix(install): 应急密码不再依赖 journal,新增 --reset-password by @stqfdyr in #16
- fix: 重跑批量注册时先问 hub 缓存的 token 是否还有效 by @stqfdyr in #25
- fix: Cloudflare 在前时按 CF-Connecting-IP 取来源地址 by @stqfdyr in #30
- fix(install): 下载 agent 二进制限时 300 秒 by @stqfdyr in #31
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
- fix: 双栈监听下识别 IPv4 映射的本地反代 by @stqfdyr in #7
- fix: agent 改用固定系统用户,修复部分 LXC 容器启动失败 by @stqfdyr in #8
- fix(web-admin): NAT 节点优先显示连接来源的公网地址 by @stqfdyr in #9
- feat: 掉线、流量、到期与登录通知(Telegram / Webhook) by @stqfdyr in #10
- feat(web-admin): 节点列表搜索,离线通知列表封顶内滚 by @stqfdyr in #11
- fix: 通知巡检状态与安装脚本 PATH 的几处遗漏 by @stqfdyr in #12
- fix(install): install-hub.sh 的 PATH 同样补上 sbin by @stqfdyr in 1a1955f
- fix(notify): 离线宽限期上限从 1440 分钟降到 30 分钟 by @stqfdyr in 4147b8f
- fix(api): 节点不存在时,写操作返回 404 by @stqfdyr in 3305b44
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Full Changelog: https://github.com/monitor-probe/monitor/commits/v1.0.0