宝塔面板自带服务器监控功能,可以展示CPU、内存、网络、磁盘等资源的实时与历史曲线。但不少用户登录后发现监控图表一片空白,历史记录完全缺失。这通常不是面板坏了,而是监控服务自身没有启动,或者相关配置被关闭。本文从原理到操作详细讲清如何排查并启动监控,让历史数据重新出现。

一、宝塔监控的工作机制
宝塔面板的监控模块由两部分协作完成。其一是面板里的监控插件,负责在网页端渲染图表、提供开关;其二是运行在系统中的bt_monitor守护进程,它按照设定间隔读取/proc等系统文件,把数值汇总后写入面板目录下的统计数据库。只有守护进程在跑,图表才能不断追加新点,历史记录才会累积。
当服务器重启、手动杀进程或磁盘异常时,bt_monitor可能退出且未设开机自启。此时面板页面能打开,但底层没有数据写入,图表自然不显示历史。理解这一点就能明白:点开监控页看到空白,不等于功能缺失,多数情况只是服务停了。
二、确认监控插件与开关状态
先排除最基础的问题。进入宝塔面板,打开软件商店,搜索“监控”或“宝塔监控”,看插件是否已安装并处于启用状态。若未安装,直接装上即可。部分旧版本中该插件叫“系统监控”,功能一致。
接着点击左侧“监控”菜单,右上角通常有一个总开关。如果开关是灰的,历史肯定为空。把它打开,并留意页面下方的“监控周期”设置,不要选“关闭”。一般建议保留默认的一分钟采集,既能看细节又不怎么占资源。以下命令可查看面板内监控相关服务路径,辅助确认文件存在:
# 查看监控脚本是否存在 ls -l /www/server/panel/plugin/monitor/ # 查看统计库文件 ls -lh /www/server/panel/data/monitor*
三、手动启动监控服务
若插件在、开关也开,图表仍无历史,就要登服务器手动拉起守护进程。宝塔提供了init脚本,执行下面命令即可启动:
# 启动监控服务 /etc/init.d/bt_monitor start # 查看运行状态 /etc/init.d/bt_monitor status
启动后稍等一两分钟,刷新监控页,曲线应当开始出现。如果想每次开机自动运行,用chkconfig或面板里的开机启动管理把bt_monitor加进去。有些系统用systemd,可写成service单元,但官方脚本已兼容多数环境,直接init方式最稳。
如果start报错说进程已存在却无数据,先stop再start强制重启,避免僵尸进程占着端口不写库。重启完用ps aux | grep bt_monitor确认有python进程常驻。
四、排查写入与磁盘问题
服务起来了但历史还是空,常见原因是统计库所在磁盘满了。宝塔默认把监控数据放系统盘,若日志或网站把空间吃光,进程无法写新记录。用以下命令看占用:
# 查看磁盘使用 df -h # 看面板数据目录大小 du -sh /www/server/panel/data
清理出空间后重启监控服务即可恢复。另外,部分用户为了省资源把/www/server/panel/data/control.conf里的监控项改成0,这也会让对应图表无历史。打开该文件把需要的项改为1并重启进程:
# 编辑控制文件,将 cpu、mem 等设为 1 vi /www/server/panel/data/control.conf /etc/init.d/bt_monitor restart
五、验证与日常维护
全部处理好,等几分钟再进监控页,应能看到从启动时刻起逐步延伸的曲线。历史长度取决于服务连续运行时间,之前断档的部分无法补回,这是采集式监控的天然限制。
建议把bt_monitor设开机自启,并偶尔用df -h关注系统盘。若机器常重启,可在宝塔计划任务里加一条 shell 任务,内容就是/etc/init.d/bt_monitor start,触发时机选“系统重启后”,双保险防止监控掉线。这样历史图表就能长期稳定保留,排查性能问题也更有依据。