宝塔面板监控插件没数据,大概率是采集链路中断:bt-monitor进程未运行或卡死、sysstat未启用导致无sar数据、/tmp/bt-monitor.sock缺失或权限错误(应为srw-rw---- 1 www www),需逐项排查日志与权限。

宝塔面板监控插件没数据,大概率不是插件坏了,而是底层采集链路断了——bt-monitor 服务本身可能没跑起来,或者它依赖的系统级指标采集工具 sysstat(尤其是 sadc)压根没启用。
确认 bt-monitor 进程是否真实运行
别只看“服务状态”,得看进程在不在、有没有卡死:
- 执行
ps aux | grep bt-monitor,如果输出里只有grep自己,说明服务根本没起来 - 如果看到
bt-monitor进程但 CPU 占用长期为 0%,可能是卡在数据库初始化或 socket 绑定失败 - 检查日志:
tail -n 20 /www/server/panel/logs/monitor.pl,重点找bind failed、unable to open database、Permission denied -
systemctl status bt-monitor显示active (running)但无数据?立刻补查上面两条,状态有时是假的
验证 sysstat 是否启用并生成原始数据
bt-monitor 的系统监控(CPU、内存、IO)不直接读 /proc,而是依赖 sysstat 提供的 sar 历史数据。如果 sysstat 没开,bt-monitor 就是巧妇难为无米之炊:
- 运行
which sar,没输出说明sysstat未安装,需执行yum install -y sysstat(CentOS)或apt install -y sysstat(Ubuntu/Debian) - 运行
systemctl is-enabled sysstat,返回disabled就必须启用:systemctl enable sysstat && systemctl start sysstat - 手动触发一次采集:
/usr/lib64/sa/sa1 1 1(CentOS)或/usr/lib/sysstat/sa1 1 1(Ubuntu),再查ls -l /var/log/sa/看是否有新生成的saXX文件 - 如果
/var/log/sa/目录为空或权限为root:root且bt-monitor以普通用户运行,会读不到数据——需确保该目录对www用户可读
检查 Unix Socket 文件是否存在且可写
网站监控依赖 /tmp/bt-monitor.sock 接收 Nginx 日志。这个文件由 bt-monitor 启动时创建,但容易因权限、路径或清理脚本误删而失效:
- 执行
ls -l /tmp/bt-monitor.sock,若提示 “No such file or directory”,说明bt-monitor没成功初始化 socket - 即使文件存在,也要检查权限:
srw-rw---- 1 www www是正确状态;如果是root:root,Nginx 写入会失败 - 临时修复:停服务 → 删除旧 sock → 启动服务:
systemctl stop bt-monitor && rm -f /tmp/bt-monitor.sock && systemctl start bt-monitor - 注意:某些安全加固脚本(如
tmpwatch)会定期清空/tmp,导致 socket 被删,需将/tmp/bt-monitor.sock加入白名单或改用/var/run/下的路径(需修改插件配置)
真正卡住人的地方,往往不是数据库重建或重装插件,而是 sysstat 没启、socket 权限错、或者 bt-monitor 日志里那行被忽略的 Permission denied —— 它不会报错退出,只会沉默丢弃所有采集请求。


















