故障排查
机器一直显示离线
按这个顺序查:
bash
systemctl status pulse-agent # 服务在跑吗
journalctl -u pulse-agent -n 30 # 日志说了什么日志里常见的几种:
| 报错 | 原因 |
|---|---|
401 Unauthorized | token 不对。多半是后台重新生成过安装命令 —— 重装一次 |
连接… 失败 | Server 地址不通。检查防火墙、PULSE_PUBLIC_URL 设对没有 |
invalid peer certificate | Server 用了自签证书。见配置 → 自签证书 |
CaUsedAsEndEntity | 你给的是 CA 证书,不是服务器证书 |
Server 起不来,报 migration 被改过
migration N was previously applied but has been modified已发布的迁移文件被改动了。 sqlx 对每个文件算校验和记在库里,改一个字节(连注释也算) 已部署的实例就全起不来。
把迁移文件恢复原样即可。如果是自己改的 schema,正确做法是新增一个迁移文件。
硬盘用量和 df 对不上
不会。用的口径和 df 完全一致:已用 = 总块数 − 空闲块数,总量 = 已用 + 可用块数。
ext4 默认给 root 预留 5%,早期版本把这部分算成了已用,导致数字偏大 —— 已经修了。
数据库会不会太大
分层存储,自动上卷和清理:
| 层 | 粒度 | 保留 |
|---|---|---|
| 分钟表 | 1 分钟 | 7 天 |
| 小时表 | 1 小时 | 13 个月 |
200 台机器跑满一年约 2 GB。
支持多少台机器
设计目标是 50 ~ 200 台。
再多的话目前没有现成方案 —— 存储只有 SQLite 一个实现。拆成多个 Server 实例分组管理是可行的做法。
Agent 占多少资源
实测:2.4 MB 二进制、 4 MB 内存、 80 分钟约 1 秒 CPU 时间。
能不能不用 sudo 装
Linux 上不行 —— 要写 systemd unit 和建专用用户。但装完之后是非特权运行的。
macOS 上装成用户级 launchd agent,不需要 root。
忘记管理员密码
停掉面板,用环境变量重设:
bash
PULSE_ADMIN_PASSWORD='新密码' ./pulse-server # 库里已有管理员时不生效,需先删掉旧记录只在管理员不存在时生效。已存在的话,直接改数据库里的 admin_user 表。
Server 挂了会丢数据吗
不会,但会有空缺。指标每分钟落盘一次, Server 崩溃最多丢最近一分钟的实时数据。
Agent 不缓存断线期间的采样 —— 断开到重连之间的那段在图上是空的。 补一段来历不明的数据比留一个诚实的空缺更糟,而且空缺本身也是信息: 那段时间这台机器联系不上。
能自定义主题吗
目前只有深浅两色(跟随系统,也可手动切)。配色都在 CSS 变量里,改起来不难。