论坛监控告警真正要盯的只有三件事:磁盘还有多少余量、内存/缓存有没有在偷偷降级、关键进程和计划任务还活着没有。Clara BBS 内置的容量监控仪表盘、计划任务运行记录和环境体检已经把这三件事的数据留痕做完了,你只需要配上阈值和触发动作,就能在用户发现之前先发现。
磁盘满了论坛会先出现什么症状
结论:论坛磁盘告急不会直接报错,而是先表现为发帖报错、附件上传失败、数据库写入失败,所以必须靠趋势预判而不是靠报错发现。
Clara BBS 的容量监控仪表盘(插件)每天落一份容量快照,覆盖帖子数、用户数、附件、数据库、磁盘五项,并给出增长曲线和阈值进度。它最有价值的不是当前数字,而是外推预估:按当前增速推算还有多少天触到阈值、多久之后必须升级架构。这比看到 95% 才开始翻日志早得多。
实操上按这个口径设线:磁盘使用率 80% 进观察名单、90% 必须当天处理。论坛里三个吃盘大户分别是附件目录、MySQL 数据目录和日志。用 du -sh /www/wwwroot/站点/uploads、du -sh /www/wwwroot/站点/data、df -h 三条命令就能定位占比。回收站默认保留 30 天(后台可配)后自动彻底删除,长期占用偏高时可以把天数调小,这是最快见效的一项。
内存不够怎么判断,为什么论坛内存问题常被误判
结论:论坛"内存不足"时多数不是 PHP 崩掉,而是 MySQL 开始换页、Redis 被系统 OOM Killer 杀掉,表现出来却是"网站突然变慢"。
先看 free -h 的 available 而不是 free,再看 MySQL 慢查询。Clara BBS 容量监控仪表盘内置 MySQL 慢查询 TOP 榜,但依赖慢日志开启,要先在 MySQL 配置里打开 slow_query_log=ON 和 long_query_time=1,否则榜单是空的。
Redis 这块要重点盯:后台「系统工具 → 缓存设置」可以可视化开启 Redis,不需要改代码;Redis 出现异常时系统会自动降级到文件驱动,业务不中断——好处是不炸站,坏处是降级是静默的,性能掉下来你却不知道。所以要看 redis-cli info memory 的 used_memory 和 used_memory_peak,以及 redis-cli info stats 里的 evicted_keys,这个值持续增长就说明内存给少了。
进程挂了怎么第一时间知道
结论:进程异常的可靠信号不是"网站打不开",而是计划任务突然不跑了——因为前者可能只是网络抖动,后者一定是 PHP-FPM、MySQL 或调度本身出了问题。
Clara BBS 的计划任务用 Cron::register 统一注册,有两条触发通道:前台访问懒触发(零配置,装完就有)和外部 /cron 入口精准触发。流量大的站建议配系统级 crontab 每分钟调用一次,写成:
* * * * * curl -s -o /dev/null https://你的域名/cron
任务执行带文件锁防并发重跑,运行结果落库可查。所以巡检方式很直接:进后台看 Cron 运行记录,如果最新一条时间戳停在几分钟之前,就按 PHP-FPM → MySQL → Redis → Nginx 的顺序排查,systemctl status php-fpm、systemctl status mysqld 逐条过。
另一条线是后台一键环境体检,它会诊断协议层(HTTPS、HTTP2、TLS、域名归一)、缓存层(长缓存、Brotli、H3 广播)、安全层和运行环境(PHP 版本、扩展、目录权限),未通过项会直接附上按当前域名填好、可复制的 Nginx 修复片段。进程恢复后先跑一遍体检,能快速确认不是配置被改坏。
告警阈值定多少合适
结论:五个指标就能覆盖论坛 90% 的线上事故,全部可量化。
- 磁盘使用率:80% 预警、90% 紧急
- 内存 available:低于总内存 15% 预警
- Redis evicted_keys:5 分钟内增长 > 0 即预警
- Cron 运行记录:连续 2 次未更新即告警
- MySQL 慢查询(>1s):单小时超过 20 条进排查
Clara BBS 负责把容量快照、Cron 运行记录、在线会话、搜索日志、登录日志、管理日志、审计日志这些数据全部留痕,触发与推送交给宝塔的监控告警或云厂商监控即可,两边配合就形成闭环。另外把每日 GEO 健康体检和容量快照都挂在计划任务里,等于每天自动做一次自检。
每天 3 分钟、每周 15 分钟的巡检清单
每天:看容量仪表盘的阈值进度条和 Cron 最近运行时间,两个都正常基本当天无大事。
每周:翻一次增长曲线确认增速没突变,扫一遍慢查询 TOP 榜,检查附件目录体积增量,确认回收站没有异常堆积。每月看一次外推预估的剩余天数,提前决定是加磁盘、拆库还是上从库——数据库读写分离配置好之后,SELECT 类查询会自动走从库,写操作走主库,事务内、行锁查询、取自增 ID 三种场景强制主库保证一致性,从库连接失败还会静默回退主库并记日志,所以升级路径是平滑的,不需要在出事当天才临时决策。
监控告警的本质是把"事后救火"换成"事前看数"。磁盘看外推、内存看降级信号、进程看 Cron 留痕,这三条抓住了,论坛基本不会在你不知情的时候倒下。