centos服务器上thinkphp如何监控
导读:CentOS 上监控 ThinkPHP 的完整方案 一 监控分层与总体架构 基础设施层:用系统工具与进程管理监控 CPU、内存、I/O、连接数 与 PHP-FPM 进程健康度。 应用与业务层:记录 请求耗时、错误日志、队列任务 等关键指标...
CentOS 上监控 ThinkPHP 的完整方案
一 监控分层与总体架构
- 基础设施层:用系统工具与进程管理监控 CPU、内存、I/O、连接数 与 PHP-FPM 进程健康度。
- 应用与业务层:记录 请求耗时、错误日志、队列任务 等关键指标,并做实时告警。
- 可视化与告警层:用 Prometheus + Grafana 或 APM(New Relic、Datadog) 做长期存储、图表与阈值告警。
二 基础设施与进程监控
- PHP-FPM 与系统资源
- 使用 systemd 管理并查看状态:
sudo systemctl status php-fpm,错误日志通常在 /var/log/php-fpm/;实时查看:sudo tail -f /var/log/php-fpm/error.log。 - 资源与连接监控:
top/htop、ps aux | grep php、ss -tulpen | grep :9000(按实际 FPM 端口调整),必要时用pidstat -p < PID>观察单进程资源。
- 使用 systemd 管理并查看状态:
- 队列与工作进程
- 用 Supervisor 守护 thinkphp-queue,异常自动重启、集中日志:
- 安装:
yum install -y epel-release supervisor & & systemctl enable --now supervisord - 示例配置
/etc/supervisord.d/queue.ini:[program:tp_queue] command=php /www/wwwroot/your-project queue:work --queue default --daemon autostart=true autorestart=true stderr_logfile=/var/log/supervisor/tp_queue.err.log stdout_logfile=/var/log/supervisor/tp_queue.out.log user=www-data - 常用命令:
supervisorctl status tp_queue、supervisorctl tail tp_queue stderr、supervisorctl reload。
- 安装:
- 用 Supervisor 守护 thinkphp-queue,异常自动重启、集中日志:
三 应用日志与实时调试
- 实时日志可视化(开发/预发)
- 使用 SocketLog 将 ThinkPHP 日志推送到浏览器控制台:
- 服务端:
npm install -g socketlog-server并启动socketlog-server(默认 WebSocket 1229 端口,若防火墙开启需放行)。 - ThinkPHP 配置
config/log.php:return [ 'type' => 'socket', 'host' => '127.0.0.1', 'level' => ['debug','warning','error','info'], 'allow_client_ids' => ['your_client_id'], ]; - 在 Chrome 安装 SocketLog 扩展,设置相同的 client_id,访问页面即可在 Console 实时看到日志。
- 服务端:
- 使用 SocketLog 将 ThinkPHP 日志推送到浏览器控制台:
- 生产日志与轮转
- 建议按天切割并压缩(如 logrotate),错误日志重点监控 ERROR/EXCEPTION,并接入 ELK 或 Grafana Loki 做检索与可视化。
四 性能与 APM 监控
- APM 方案(推荐生产使用)
- New Relic:安装 Agent 并在
php.ini配置应用名与 License,可获取 响应时间、慢事务、数据库/外部调用 等全链路数据。 - Datadog:安装 dd-agent 与 PHP 扩展,在
datadog.yaml启用日志采集,代码中可用 DogStatsD 打点自定义指标(如队列长度、业务关键路径耗时)。
- New Relic:安装 Agent 并在
- 代码级性能分析
- XHProf / Blackfire:用于定位 CPU、内存、SQL 瓶颈;Blackfire 适合按请求做采样剖析与对比。
- 压测与容量评估
- 使用 Apache JMeter 做峰值与回归压测,关注 95/99 分位响应时间、吞吐、错误率,结合监控验证扩容阈值。
五 可视化与告警落地
- Prometheus + Grafana
- 以 Node Exporter 采集主机指标,配合 PHP-FPM Exporter 或 Nginx/Apache 指标暴露给 Prometheus,在 Grafana 建立 ThinkPHP 专属看板(如:请求量、5xx 比例、平均耗时、慢查询、队列堆积、FPM 进程数/队列长度)。
- 配置 Alertmanager 实现阈值告警(如:5xx > 1% 持续 5 分钟、平均响应时间 > 2s、队列堆积 > 1000)。
- 快速落地清单
- 立即执行:开启 PHP-FPM 日志、部署 Supervisor 守护队列、接入 SocketLog 到开发环境。
- 一周内:上线 Prometheus + Grafana 基础看板与告警;为关键接口接入 DogStatsD 打点。
- 持续优化:接入 New Relic/Datadog APM,建立慢事务基线并制定优化目标(如 P95 < 500ms)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos服务器上thinkphp如何监控
本文地址: https://pptw.com/jishu/780402.html
