monitor

参考

常见问题

安装与访问

装完面板打不开

正常现象。一键脚本装出的 hub 只监听 127.0.0.1,公网访问不到。配好反向代理,用域名访问。

「添加节点」是灰的

从 IP 地址或明文 HTTP 进面板时,添加节点、批量添加和安装命令都不可用:安装脚本和二进制要经这条链路下载,脚本以 root 执行,token 也会明文传输。按钮上方那行字写明了具体原因。

  • 配好域名和 TLS,从 https:// 域名进面板即可。hub 依据的是浏览器的地址(Origin),不看 Host 和 X-Forwarded-Proto
  • 地址栏已经是 https:// 加域名,按钮仍是灰的:hub 启动时带了 --site,而它不是 https:// 加域名(写成了 IP,或带了路径)。改正或去掉它,常规反代不需要 --site
  • 通过 SSH 隧道进面板(地址栏是 http://127.0.0.1:PORT):给 hub 加 --site https://你的域名,安装命令里用的就是这个地址

按钮能点,点了却提示「请求没有带 Origin 头」:反代清掉了这个头,删掉反代配置里 proxy_set_header Origin ""; 这类写法。

应急密码忘了

按重置应急密码重置一个,旧密码立即失效。

hub 连不上 GitHub

hub 从 GitHub release 取 agent 二进制转发给节点,主题的安装与更新也从那里取。hub 所在机器访问不了 GitHub 时,在设置页的 GitHub 代理填一个镜像地址,节点侧不用改。

agent 二进制有签名:hub 只转发验签通过的,镜像换不了。主题包没有签名,镜像返回什么就装什么。只在 hub 确实访问不了 GitHub 时填,只填信得过的镜像。设置只接受 https://。

更新页的版本检查访问的是 api.github.com,不经过这个代理。

节点

节点一直不上线

按顺序查:

# 1. agent 是否在运行;OpenRC 用 rc-service monitor-agent status
systemctl status monitor-agent
# 2. 日志里报了什么;OpenRC 用 tail -n 50 /var/log/monitor-agent.log
journalctl -u monitor-agent -n 50 --no-pager
# 3. 这台机器能否连上 hub
curl -sI https://hub.example.com/install.sh | head -1
bash
日志里看到原因与处理
401token 换发过:用面板上这个节点的新命令重装。节点已被删除:用删除时确认框里的命令卸载
连接被拒绝、超时节点到 hub 的网络不通:域名解析、防火墙;或节点只有 IPv6 而 hub 没有 IPv6 入口,见下文只有 IPv6 的机器能装吗
握手时 HTTP 400 等错误反代没转发 WebSocket 升级头,见反向代理
--iface: … is not an interface name,agent 一启动就退出/opt/monitor/agent.env 里 MONITOR_IFACE 的写法不对:完整网卡名,逗号分隔,- 开头表示排除,不能有空格。改好后重启 agent
UnknownIssuerhub 的证书不是公共 CA 签发的,见下一条

agent 日志里 UnknownIssuer

hub 用的是自签证书或私有 CA 签发的证书。agent 只认编译进去的公共根证书,不读系统的信任库,所以把 CA 装进 /usr/local/share/ca-certificates 再执行 update-ca-certificates 对它无效:同一台机器上 curl 和 install.sh 都正常,只有 agent 连不上,日志里每隔几秒一条 UnknownIssuer。

给 hub 换一张公共 CA 签发的证书,Let's Encrypt 或 Cloudflare 的边缘证书都可以。内网部署确实没有域名的,另一条路是让 agent 用明文连 hub:同一台机器走回环地址;其他机器在安装命令里把 --server 写成 http:// 地址并加 --insecure。代价是 token、每条上报和安装时下载的二进制都明文传输,链路上的人能读到 token,也能替换以 root 执行的安装脚本和二进制,所以只在可信的内网里这样做。

节点隔一阵掉线,又自己回来

反代的读写超时太短,或没转发 WebSocket 头。按反向代理的第 1 项检查。

关机后多久显示离线

agent 正常退出、机器正常关机或重启时,连接立即断开,节点马上显示离线。断电、断网时连接不会正常关闭:hub 每 30 秒发一次心跳,连续 120 秒收不到任何数据才断开,所以最慢 150 秒显示离线。离线通知还要再等一个宽限期,见通知。

只有 IPv6 的机器能装吗

能。agent 二进制由 hub 转发,节点不需要访问 GitHub,只要能连上 hub。

hub 只有 IPv4 而节点只有 IPv6 时,给 hub 加一个 IPv6 入口,以下任选一种:

  • 给 hub 所在机器配一个 IPv6 地址,多数 VPS 免费提供 /64
  • 套一个双栈 CDN
  • 用 Cloudflare 隧道:隧道由源站向外建立,源站只有 IPv4 也能得到双栈入口

节点地址是内网 IP,或者国家不对

在编辑节点里手动填 IPv4、IPv6 或国家/地区,留空恢复自动。地址和国家是怎么选出来的、哪些部署会判断错,见节点。

数字

内存、硬盘和别的面板对不上

面板的数字对齐 free 和 df,登上机器执行一遍就能核对。已用内存是 MemTotal - MemAvailable,和 free 的 used 列一致;不少采集工具把 page cache 也算作已用,跑了几天的机器在那些工具里看起来内存快满了。LXCFS 容器里 MemAvailable 偶尔大于 MemTotal,这时按 MemTotal - MemFree 算,free 也是这样(agent 1.2.2 起,之前报 0)。

磁盘总量不含被 agent 服务的沙箱遮住的挂载点(例如单独分区的 /home),agent 启动时会在日志里逐个列出。

总流量和商家对不上

  • agent 装上之前的流量算不进来
  • 机器重启时,关机前最后一次上报之后的流量会丢掉,平时只有几秒;hub 连不上的期间重启的,丢的是从连不上到重启这一段
  • 面板里的每月重置日或计算方式和商家的不一致
  • 软路由、PVE 宿主机这类转发流量的机器,同一个包经过两块网卡,默认规则会算两遍,见流量统计

agent 掉线期间的流量会在重连后补上,这是有意的:这段时间内核照样在计数。

今日流量到点不归零

Docker 部署没设 TZ,按 UTC 切换日期,见 Docker 部署。

过了到期日,节点还显示已过期

只有在线的节点会自动续期,在 hub 跨日后几秒内完成;离线期间过期、之后又连上的,等到下一个整点。付款周期为「一次性」的不续期。Docker 部署没设 TZ 时,东八区要到早上 8 点才跨日。规则见节点。

hub 1.2.0 及更早按访客浏览器的时区算,在线节点每个周期会先显示几个小时的「已过期」,升级即可。

维护

怎么升级

对象做法
hub(一键脚本)重跑脚本,见安装 hub
hub(Docker)拉新镜像、重建容器,见 Docker 部署
agent在每台机器上执行一条 --upgrade 命令,所有机器共用,见批量升级 agent
主题主题页卡片上的「从 GitHub 更新」

面板的更新页显示 hub 和 agent 是否有新版本,有新版本时导航上的「更新」带一个小圆点。版本信息在管理员打开面板时向 GitHub 查询,缓存 6 小时。不想看到小圆点,在这一页底部关掉「更新提醒」。

搬到另一台机器

导出备份、在新 hub 上导入,再把域名指过去,见数据与备份。

数据库越来越大

调小保留天数,再在数据页点回收空间,见数据与备份。

范围

支持 Windows、macOS 吗

不支持,也不打算支持。agent 直接读 /proc 和 statvfs,换来的是准确的数字和很小的二进制;支持其他系统等于重写整个采集部分。

能加负载告警、WebSSH、插件吗

不会加,原因见设计哲学。掉线、流量、到期、登录这几件判定明确的事由通知负责。

在 GitHub 上修改这一页最后更新 2026-10-19