在 Linux 环境下监控 ThinkPHP 应用,核心无非是盯紧三件事:进程是否活着、系统扛不扛得住、日志告警能不能及时反馈。

ThinkPHP Linux环境如何监控

一 进程与队列的保活监控

队列消费、定时任务这类常驻进程,最忌讳的便是悄无声息的挂掉。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

日常管理的几个命令值得记一下:

另外,/var/log/supervisor/ 目录下的日志文件需要纳入 logrotate 管理,否则日积月累,磁盘撑满只是时间问题。

二 系统与应用性能监控

进程保活只是第一步,性能瓶颈才是真正让人头疼的。这里需要分两层来看:系统资源和应用自身。

系统资源快速排查

PHP 与框架层性能分析

三 日志与告警闭环

再好的监控方案,如果缺少告警闭环,也等于白做。关键是把日志管好,然后让它主动“说话”。

日志集中与轮转

Web 错误日志、PHP-FPM 日志、应用日志、队列日志,统一落盘到一个便于检索的位置。同时为 Supervisor 日志配置 logrotate,可以按日切割、按大小切割、保留指定份数并压缩,省心很多。

主动告警

健康检查

对外暴露一个 /health 接口,检查数据库、Redis、缓存等组件的连通性。Nginx、负载均衡或 Kubernetes 的 Liveness Probe 可以定期探测这个接口,一旦异常就自动摘除实例,避免流量打到有问题的节点上。

四 快速落地清单

如果现在要从零开始搭建这套监控体系,建议按这个顺序逐步落地:

本文转载于:https://www.yisu.com/ask/35009881.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。