宝塔面板监控图表空白是因监控服务未采集或存储历史数据,需依次重启监控服务、重建system.db数据库、补全Nginx日志转发配置、验证/tmp/bt-monitor.sock套接字状态。

如果您在宝塔面板中打开监控页面,发现系统或网站监控图表为空白、仅显示当前时间线而无历史记录,则大概率是监控服务未正确采集或存储历史数据。以下是启动并恢复监控历史记录的多种可行操作路径:
一、重启监控服务并重置数据采集状态
该方法通过强制刷新监控服务运行状态与数据缓存,使系统重新建立日志读取通道并开始积累新周期的历史记录。适用于监控服务进程存活但数据写入停滞的情况。
1、登录宝塔面板,在左侧菜单栏点击终端,进入命令行界面。
2、执行命令:bt 16,选择重启监控服务(部分版本需输入数字16后回车)。
3、等待约10秒后,再次执行命令:bt 17,选择清空当前监控记录(此操作仅清除已损坏或中断的临时缓存,不影响系统运行)。
4、返回面板首页,点击监控 → 点击右上角开启监控开关确保其处于开启状态。
5、静置10分钟以上,刷新监控页面查看图表是否开始填充连续的时间序列数据。
二、重建监控数据库文件
当system.db文件因升级或写入异常导致结构损坏时,监控模块将无法持久化存储历史统计值,表现为图表始终无历史点位。删除该文件可触发面板自动重建全新数据库结构,并从当前时刻起重新记录。
1、在终端中执行命令:rm -f /www/server/panel/data/system.db。
2、执行命令:bt restart,完整重启宝塔面板服务。
3、重启完成后,进入监控页面,关闭“开启监控”开关,等待约30秒后再重新打开。
4、保持页面开启状态,持续观察12分钟以上,检查折线图是否出现带时间轴的连续采样点。
三、手动注入Nginx日志转发配置(针对网站监控)
网站监控依赖Nginx将访问日志实时推送至Unix Socket管道(/tmp/bt-monitor.sock),若站点配置未随面板升级更新,则日志无法送达监控服务,导致网站监控长期无任何历史记录。需人工补全专用日志发送指令。
1、在宝塔面板中进入网站 → 选择对应站点 → 点击设置 → 切换到配置文件选项卡。
2、在配置文件中查找以location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$开头的区块,在其末尾大括号前插入以下两行(注意缩进对齐):
access_log syslog:server=unix:/tmp/bt-monitor.sock,nohostname,tag=4__access monitor;
error_log syslog:server=unix:/tmp/bt-monitor.sock,nohostname,tag=4__error;
3、继续查找以location ~ .*\.(js|css)?$开头的区块,在其末尾大括号前同样插入上述两行。
4、点击保存,然后返回站点设置页,点击重启Nginx。
5、前往监控 → 网站监控页面,等待8分钟以上,确认访问趋势图是否开始生成带时间戳的历史条目。
四、验证并启用Syslog Socket监听机制
监控服务需通过Unix Socket文件/tmp/bt-monitor.sock接收Nginx推送的日志,若该文件缺失或权限异常,则所有日志转发失败。此步骤用于确认底层通信管道是否就绪。
1、在终端中执行命令:ls -l /tmp/bt-monitor.sock,检查文件是否存在且类型为socket(输出首字符为s)。
2、若提示“No such file or directory”,则执行:touch /tmp/bt-monitor.sock && chmod 666 /tmp/bt-monitor.sock。
3、执行命令:ps aux | grep bt-monitor,确认进程列表中存在类似/www/server/panel/pyenv/bin/python /www/server/panel/class/bt_monitor_main.py的运行项。
4、如无该进程,执行:bt 16重启监控服务;如有但Socket仍不可用,执行:killall bt_monitor_main.py && bt 16。
5、再次检查Socket文件状态,并刷新网站监控页面观察历史数据是否开始累积。










