date: 2020-03-24title: php-fpm开启状态统计页 #标题
tags: php #标签
categories: zabbix # 分类

zabbix监控php-fpm时,需要开启它状态统计页以便收集相关信息。

修改php配置文件

  1. [root@mysql ~]# cat /usr/local/php5.6/etc/php-fpm.conf | grep status_path
  2. pm.status_path = /status # 去掉开头的注释符号“;”

nginx添加location规则

  1. [root@mysql ~]# vi /usr/local/nginx/conf/nginx.conf # location规则如下
  2. location ~ ^/(status|ping)$ {
  3. fastcgi_pass 127.0.0.1:9000;
  4. fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  5. include fastcgi.conf;
  6. }

重启相关服务

  1. [root@mysql ~]# systemctl restart php-fpm
  2. [root@mysql ~]# nginx -s reload

访问状态统计页

  1. [root@mysql ~]# curl www.test.com/status # 访问测试
  2. pool: www # fpm池子名称,大多数为www
  3. process manager: dynamic # 进程管理方式,值:static, dynamic or ondemand. dynamic
  4. start time: 24/Mar/2020:10:29:20 +0800 # 启动日期,如果reload了php-fpm,时间会更新
  5. start since: 34 # 运行时长
  6. accepted conn: 4 # 当前池子接受的请求数
  7. listen queue: 0 # 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
  8. max listen queue: 0 # 请求等待队列最高的数量
  9. listen queue len: 128 # socket等待队列长度
  10. idle processes: 4 # 空闲进程数量
  11. active processes: 1 # 活跃进程数量
  12. total processes: 5 # 总进程数量
  13. max active processes: 1 # 最大的活跃进程数量(FPM启动开始算)
  14. max children reached: 0 # 最大进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
  15. slow requests: 0 # 启用了php-fpm slow-log,缓慢请求的数量

php-fpm其他参数

php-fpm状态页比较个性化的一个地方是它可以带参数,可以带参数json、xml、html(输出格式不一样),以及full参数(显示每个php进程的详细信息)。

php-fpm状态页非常使用,使用zabbix或者nagios监控可以考虑使用xml或者默认方式。用web的话,推荐使用html,表格会比较清晰。

full参数

  1. [root@mysql ~]# curl www.test.com/status?full
  2. pool: www
  3. process manager: dynamic
  4. start time: 24/Mar/2020:10:29:20 +0800
  5. start since: 686
  6. accepted conn: 130
  7. listen queue: 0
  8. max listen queue: 0
  9. listen queue len: 128
  10. idle processes: 6
  11. active processes: 1
  12. total processes: 7
  13. max active processes: 6
  14. max children reached: 0
  15. slow requests: 0
  16. ************************
  17. pid: 90213 # 进程PID,可以单独kill这个进程
  18. state: Idle # 当前进程的状态 (Idle, Running, …)
  19. start time: 24/Mar/2020:10:29:20 +0800 # 进程启动的日期
  20. start since: 686 # 当前进程运行时长
  21. requests: 23 # 当前进程处理了多少个请求
  22. request duration: 85032 # 请求时长(微妙)
  23. request method: POST # 请求方法 (GET, POST, …)
  24. request URI: /zabbix/jsrpc.php?output=json-rpc # 请求URI
  25. content length: 114 # 请求内容长度 (仅用于 POST)
  26. user: - # 用户 (PHP_AUTH_USER) (or ‘-’ 如果没设置)
  27. script: /usr/local/nginx/html/zabbix/jsrpc.php # (or ‘-’ if not set)
  28. last request cpu: 94.08 # 最后一个请求CPU使用率。
  29. last request memory: 6291456 # 上一个请求使用的内存
  30. ................. # 省略部分内容