温馨提示×

centos服务器上thinkphp如何监控

小樊
41
2025-12-25 07:16:19
栏目: 云计算

CentOS 上监控 ThinkPHP 的完整方案

一 监控分层与总体架构

  • 基础设施层:用系统工具与进程管理监控 CPU、内存、I/O、连接数PHP-FPM 进程健康度。
  • 应用与业务层:记录 请求耗时、错误日志、队列任务 等关键指标,并做实时告警。
  • 可视化与告警层:用 Prometheus + GrafanaAPM(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/htopps aux | grep phpss -tulpen | grep :9000(按实际 FPM 端口调整),必要时用 pidstat -p <PID> 观察单进程资源。
  • 队列与工作进程
    • 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_queuesupervisorctl tail tp_queue stderrsupervisorctl reload

三 应用日志与实时调试

  • 实时日志可视化(开发/预发)
    • 使用 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 实时看到日志。
  • 生产日志与轮转
    • 建议按天切割并压缩(如 logrotate),错误日志重点监控 ERROR/EXCEPTION,并接入 ELKGrafana Loki 做检索与可视化。

四 性能与 APM 监控

  • APM 方案(推荐生产使用)
    • New Relic:安装 Agent 并在 php.ini 配置应用名与 License,可获取 响应时间、慢事务、数据库/外部调用 等全链路数据。
    • Datadog:安装 dd-agentPHP 扩展,在 datadog.yaml 启用日志采集,代码中可用 DogStatsD 打点自定义指标(如队列长度、业务关键路径耗时)。
  • 代码级性能分析
    • XHProf / Blackfire:用于定位 CPU、内存、SQL 瓶颈;Blackfire 适合按请求做采样剖析与对比。
  • 压测与容量评估
    • 使用 Apache JMeter 做峰值与回归压测,关注 95/99 分位响应时间、吞吐、错误率,结合监控验证扩容阈值。

五 可视化与告警落地

  • Prometheus + Grafana
    • Node Exporter 采集主机指标,配合 PHP-FPM ExporterNginx/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)。

0