monitor

参考

常见问题

装不上、连不上、数字不对时先看这里。

装完面板打不开

这是正常的。 一键脚本装出来的 hub 只监听 127.0.0.1,公网访问不到—— 凭证不会在链路上明文传输,也没有端口需要防火墙。

去配一段反向代理,把域名指过来。caddy 只要一行。

应急密码丢了

journalctl -u monitor-hub | grep Emergency     # 二进制部署
docker logs monitor | grep Emergency           # 容器部署
bash

它只在首次启动时打印一次,但日志里一直在。

节点一直不上线

按这个顺序查:

# 1. agent 在跑吗
systemctl status monitor-agent          # 或 rc-service monitor-agent status
 
# 2. 它在抱怨什么
journalctl -u monitor-agent -n 50 --no-pager
 
# 3. 这台机器连得上 hub 吗
curl -sI https://hub.example.com/install.sh | head -1
bash

常见原因:

现象原因
agent 日志里 401token 被换发过。回面板重新拿一条安装命令,重跑
agent 日志里连接被拒/超时反代没转发 WebSocket 升级头,或者 hub 和节点的 IP 协议族对不上
agent 根本没起来服务定义里的地址是明文 http://,而 agent 拒绝明文连远程 hub

节点周期性掉线又自己回来

反代的读写超时太短。/api/agent/ws 是长连接,把 proxy_read_timeout / proxy_send_timeout 放到 1 小时,并关掉 proxy_buffering

也确认转发了 UpgradeConnection 头。

判定离线要多久

最慢 150 秒。hub 每 30 秒发一个 WebSocket Ping,连续 120 秒收不到任何入站帧就主动断开。

这个窗口不能再短:网络抖一下就断连,agent 重连的开销比多等一会儿大。

纯 IPv6 的机器装不上

装得上。agent 二进制总是由 hub 转发<hub>/agent/<arch>),节点不需要能连上 GitHub。

真正的约束是节点必须能到达 hub。hub 只有 IPv4 而节点只有 IPv6 的话, 给 hub 加一个 v6 入口就行,三条路都不用改代码:

  • 机器申请一个 v6 地址(多数 VPS 免费给一个 /64
  • 套一个双栈 CDN
  • 用 Cloudflare 隧道——隧道是出站建立的,源站纯 v4 也能有双栈边缘

hub 自己连不上 GitHub

设置 → GitHub 代理填一个镜像地址,hub 拉 release 时会用它。节点侧什么都不用改。

这个地址返回的字节会被装到每一台节点上并跑起来,中间没有摘要校验。只填信得过的镜像, 而且只接受 https://。见安全模型里的「已知缺口」。

面板里没有「添加节点」

从 IP 地址或明文 HTTP 进面板时,添加节点、批量窗口和安装命令都不可用。

因为那条链路上 token 是明文传的,而且下载的二进制紧接着要以 root 跑起来。 配好域名和 TLS,从 HTTPS 域名进面板,这些入口会自己出现。

--site 不能绕过这个限制。

内存和硬盘的数字和别的面板不一样

我们的数字对齐 free(1)df(1)——ssh 上去敲一遍就能核对。

常见的差异来源是内存:很多采集库把 page cache 算成已用内存, 于是一台跑了几天的机器看起来内存快满了。我们用的是 MemTotal - MemAvailable, 和 free 的 used 列同一个算法。

如果你的对照基准是 htop,那会有几个 MiB 到几十 MiB 的差——两条公式回答的不是同一个问题, 详见设计哲学

总流量为什么和商家算的不一样

几个已知的差异来源:

  • agent 上线之前跑的量算不进来。 hub 只计入它亲眼看着计数器涨过去的那部分
  • VPS 重启那一次会丢掉「开机到首次上报」之间的量,通常几十秒、几百 KB
  • 商家的重置日和你在面板里填的不一致,比对的就不是同一个周期
  • 计费方向不一致:面板的「流量计算方式」要和商家一致(上下行相加 / 取大 / 只算单向)

反过来,agent 掉线期间的流量被补上——那是特性:内核照样在计数,流量确实跑了。

今日流量到点不归零

Docker 部署没设 TZ。日边界和账单周期走本地时区,不设按 UTC 算,而且没有任何报错。

docker run -d -e TZ=Asia/Shanghai ...
bash

改小保留天数会丢流量数据吗

不会。保留天数只删每分钟一行的历史明细和探测记录,累计流量是独立存的, 不是从明细算出来的。

图表会变短,流量数字毫发无损。

数据库越来越大

数据 → 回收空间:清过期明细 + VACUUM + 截断 WAL。

WAL 模式下不截断的话文件只会变大不会变小,所以这三步是一套。需要和数据库等量的空闲磁盘。

主题详情页刷新就 404

反代或 WAF 做了按路径的正向白名单,而详情页的前缀没放行。

从列表点进去只是 pushState,边缘看不见;刷新才会真的请求那个路径。 默认主题用的是 /node/{id}

怎么升级

hub:重跑一遍安装脚本。校验通过才替换,起不来自动回滚,没写的参数沿用上次的。

agent:重跑一遍它的安装命令。没有自动更新,这是有意的—— 自更新意味着 agent 能以 root 下载并执行任意二进制。

主题:主题卡片上的 ⟳。

支持 Windows / macOS 吗

不支持,而且不会支持。agent 直接读 /procstatvfs,换来的是更准的数字和更小的二进制; 加跨平台等于推翻整个采集实现。

能加告警 / WebSSH / 插件吗

不能。这不是「还没做」,是设计哲学

探针的职责是告诉你机器怎么样了,不是替你管机器。如果这里面有一样是你必需的, 那我们大概不合适——这不是遗憾,是选择。