温馨提示×

Ubuntu PHP-FPM如何监控

小樊
35
2026-07-13 20:46:33
栏目: 编程语言

在 Ubuntu 上监控 PHP-FPM 可以从 进程状态、性能、慢日志、系统资源、告警 等多个层面来做。下面给你一套可落地的监控方案,从简单到完整。


一、确认 PHP-FPM 状态(最基础)

1️⃣ 查看 PHP-FPM 是否运行

systemctl status php-fpm
# 或(Ubuntu 常见)
systemctl status php8.1-fpm

2️⃣ 查看进程数量

ps aux | grep php-fpm

二、启用 PHP-FPM 状态页(强烈推荐 ✅)

这是最常用、最有效的监控方式

1️⃣ 启用 status 配置

编辑 pool 配置:

vim /etc/php/8.1/fpm/pool.d/www.conf

取消或添加:

pm.status_path = /status

2️⃣ 配置 Nginx 访问(示例)

location /status {
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    # 可选:限制访问
    allow 127.0.0.1;
    deny all;
}

3️⃣ 访问状态页

curl http://127.0.0.1/status

输出示例:

pool:                 www
process manager:      dynamic
start time:           01/Jan/2026:10:00:00 +0800
start since:          3600
accepted conn:        12000
listen queue:         0
max listen queue:     2
active processes:     5
total processes:      10

✅ 可监控指标:

  • 活跃进程数
  • 队列长度
  • 连接数
  • 进程状态

三、监控 PHP-FPM 慢日志(排查性能问题)

1️⃣ 开启慢日志

request_slowlog_timeout = 2s
slowlog = /var/log/php8.1-fpm.slow.log

2️⃣ 查看慢请求

tail -f /var/log/php8.1-fpm.slow.log

✅ 常用于:

  • 接口慢
  • SQL 慢
  • 第三方接口超时

四、系统级监控(进程 / CPU / 内存)

1️⃣ top / htop

htop

查看:

  • php-fpm 进程数
  • CPU 占用
  • 内存占用

2️⃣ 查看 socket 连接

ss -x | grep php

五、使用 Prometheus + Grafana(企业级 ✅)

1️⃣ 使用 php-fpm-exporter

推荐:

https://github.com/hipages/php-fpm_exporter

2️⃣ prometheus 配置示例

- job_name: php-fpm
  static_configs:
    - targets: ["localhost:9253"]

3️⃣ Grafana 面板

可监控:

  • 请求数
  • 进程数
  • 队列
  • 延迟
  • 异常率

生产环境最推荐


六、日志监控(问题定位)

1️⃣ PHP-FPM 错误日志

tail -f /var/log/php8.1-fpm.log

常见错误:

  • server reached pm.max_children
  • time out
  • failed to connect

七、关键监控指标总结 ✅

指标 说明
active processes 当前活跃进程
listen queue 等待处理的请求
max listen queue 历史最大队列
accepted conn 总请求数
slow requests 慢请求
memory / cpu 资源占用

八、常见告警阈值建议

  • listen queue > 10 ⚠️
  • active processes = pm.max_children ⚠️
  • 慢日志持续增长 ⚠️
  • PHP-FPM 重启频繁 ⚠️

九、快速检查命令合集

systemctl status php8.1-fpm
curl http://127.0.0.1/status
tail -f /var/log/php8.1-fpm.log
tail -f /var/log/php8.1-fpm.slow.log

如果你愿意,我可以:

  • ✅ 给你 Grafana Dashboard JSON
  • ✅ 帮你 根据并发量计算 pm 参数
  • ✅ 针对 LNMP / Docker / Kubernetes 单独讲

你现在是在 本地 / 云服务器 / 容器 环境?

0