发布于2026-07-16 阅读(0)
扫一扫,手机访问
在 Linux 环境下监控 ThinkPHP 应用,核心无非是盯紧三件事:进程是否活着、系统扛不扛得住、日志告警能不能及时反馈。

队列消费、定时任务这类常驻进程,最忌讳的便是悄无声息的挂掉。Supervisor 是解决这个问题的标准方案,它能自动拉起异常退出的进程,并提供统一的日志管理和启停入口。
配置上其实很简单。以 ThinkPHP 6 的队列消费为例,单进程版配置大致是这样的:
[program:tp6_queue]
command=/usr/bin/php /www/wwwroot/your-project queue:work --queue=default --tries=3
directory=/www/wwwroot/your-project
user=www-data
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/tp6_queue.out.log
stderr_logfile=/var/log/supervisor/tp6_queue.err.log
如果业务量上去了,需要多进程并发消费,也很容易扩展:
[program:tp6_queue]
command=/usr/bin/php /www/wwwroot/your-project queue:work --queue=default --tries=3
directory=/www/wwwroot/your-project
process_name=%(process_num)02d
numprocs=5
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/tp6_queue.out.log
stderr_logfile=/var/log/supervisor/tp6_queue.err.log
日常管理的几个命令值得记一下:
supervisorctl reread && supervisorctl updatesupervisorctl start|stop|restart tp6_queuesupervisorctl status另外,/var/log/supervisor/ 目录下的日志文件需要纳入 logrotate 管理,否则日积月累,磁盘撑满只是时间问题。
进程保活只是第一步,性能瓶颈才是真正让人头疼的。这里需要分两层来看:系统资源和应用自身。
top -n 1 -b、vmstat 1 10、pidstat -u 1 -p 是排查利器,几秒钟就能确定是不是系统层面的问题。iostat -d -x -k 1 10 搭配 iotop,能精准定位哪块盘在忙、哪个进程在大量读写。ss -aA tcp 检查连接状态,iftop -i eth0 和 nload 实时看流量。sar 系列命令(sar -u 1、sar -r 10 3、sar -d)和 dstat 2 10 适合做持续采集和回溯。再好的监控方案,如果缺少告警闭环,也等于白做。关键是把日志管好,然后让它主动“说话”。
Web 错误日志、PHP-FPM 日志、应用日志、队列日志,统一落盘到一个便于检索的位置。同时为 Supervisor 日志配置 logrotate,可以按日切割、按大小切割、保留指定份数并压缩,省心很多。
对外暴露一个 /health 接口,检查数据库、Redis、缓存等组件的连通性。Nginx、负载均衡或 Kubernetes 的 Liveness Probe 可以定期探测这个接口,一旦异常就自动摘除实例,避免流量打到有问题的节点上。
如果现在要从零开始搭建这套监控体系,建议按这个顺序逐步落地:
autostart 和 autorestart,设置好 std 日志和 logrotate。top、vmstat、iostat、ss、iftop),在流量高峰期抓取 1–5 分钟的关键指标和日志片段,往往能快速定位问题。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8