Fork me on GitHub

zabbix监控php-fpm

通过启用php-fpm的status页面,使用zabbix来获取各数据参数以达到监控php-fpm性能状态

php-fpm配置

配置文件php-fpm.conf

pm.status_path = /fpmstatus
ping.path = /fpmping
ping.response = pong

nginx配置

在配置的server内添加location

location ~ ^/(fpmstatus|fpmping) {    
     fastcgi_pass 127.0.0.1:9000;
     include fastcgi.conf;
     access_log off;
     allow 127.0.0.1;
     deny all;
}  

php-fpm status的含义

字段 含义
pool php-fpm pool的名称,大多数情况下为www
process manager 进程管理方式,现今大多都为dynamic,不要使用static
start time 启动时间
start since 运行时长,单位秒
accepted conn pool接收到的请求数
listen queue 请求等待的连接数,如果不为0,需要增加php-fpm进程数
max listen queue 从启动到现在处于等待连接的最大数量
listen queue len socket等待队列长度
idle processes 空闲进程数
active processes 活跃进程数
total processess 进程总数
max active process 从php-fpm启动到现在最大的活跃进程数
max children reached 当pm试图启动更多的children进程时,却达到了进程数的限制,达到一次记录一次,如果不为0,需要增加php-fpm pool进程的最大数
slow requests 当启用了php-fpm slow-log功能时,如果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查询会触发这个值

php-fpm状态页可以通过带参数实现个性化,可以带参数json、xml、html、full,并且前三个参数可分别和full组合,即:

#单个参数访问,如:
curl http://localhost/fpmstatus
curl http://localhost/fpmstatus?json
curl http://localhost/fpmstatus?xml
curl http://localhost/fpmstatus?html
curl http://localhost/fpmstatus?full
#组合形式,如:
curl http://localhost/fpmstatus?html&full

full详解:

pid – 进程PID,可以单独kill这个进程
state – 当前进程的状态 (Idle, Running, …)
start time – 进程启动的日期
start since – 当前进程运行时长
requests – 当前进程处理了多少个请求
request duration – 请求时长(单位微妙)
request method – 请求方法 (GET, POST, …)
request URI – 请求URI
content length – 请求内容长度 (仅用于 POST)
user – 用户 (PHP_AUTH_USER) (如果没设置为‘-’)
script – PHP脚本 (如果没设置为‘-’)
last request cpu – 最后一个请求CPU使用率。
last request memory - 最后一个请求使用的内存    

监控fpm

zabbix agent客户端脚本

/etc/zabbix/script/phpfpm_status.sh

#!/bin/bash

SERVER='127.0.0.1:80'

/usr/bin/curl -s "http://127.0.0.1/fpmstatus?xml" | grep "<$1>" | awk -F'>|<' '{print $3}'

zabbix agent客户端配置

/etc/zabbix/zabbix_agentd.d/userparameter_phpfpm.conf

#Monitor php-fpm status
UserParameter=phpfpm.status[*],/etc/zabbix/script/phpfpm_status.sh $1   

zabbix web端配置

配置请参考 zabbix自动发现规则监控redis(主从哨兵)

下载:phpfpm监控模板

轻轻的我走了,正如我轻轻的来