Zabbix监控php-fpm性能

2016年6月20日

php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。为了后续的zabbix监控,我们需要先了解php-fpm状态页是怎么回事。

1. 启用php-fpm状态功能

#cat  /etc/php-fpm.d/www.conf |  grep  pm.status_path
;pm.status_path = /statusvim /etc/php-fpm.d/www.conf
pm.status_path = /status

去掉 分号
默认情况下为/status,当然也可以改成其他的,例如/fpm_status等等。 提醒这里pm.status_path 设为什么,  nginx 配置中就只能是什么。

2. nginx配置

在默认主机里面加上location或者你希望能访问到的主机里面。

server {
listen  *:80 default_server;
server_name _;
location ~ ^/(status|ping)$
{
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
}

3. 重启nginx/php-fpm
请依照你的环境重启你的nginx和php-fpm

# service nginx restart
# service php-fpm restart

4. 打开status页面

[root@choies-east-app site]# curl 104.200.31.229/status
pool:                 www
process manager:      dynamic
start time:           14/Jan/2016:03:51:13 +0000
start since:          9706
accepted conn:        54
listen queue:         0
max listen queue:     0
listen queue len:     0
idle processes:       127
active processes:     1
total processes:      128
max active processes: 6
max children reached: 0
slow requests:        0

5. php-fpm status详解

pool – fpm池子名称,大多数为www
process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic
start time – 启动日期,如果reload了php-fpm,时间会更新
start since – 运行时长
accepted conn – 当前池子接受的请求数
listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
max listen queue – 请求等待队列最高的数量
listen queue len – socket等待队列长度
idle processes – 空闲进程数量
active processes – 活跃进程数量
total processes – 总进程数量
max active processes – 最大的活跃进程数量(FPM启动开始算)
max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
slow requests – 启用了php-fpm slow-log,缓慢请求的数量

6. php-fpm 监控配置

vim  /etc/zabbix/zabbix_agentd.conf
UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://104.237.132.189/status?xml" | grep "<$1>" | awk -F'>|<' '{ print $$3}'

7. 重启 zabbix-agent

service zabbix-agent restart

与之相匹配的 php-fpm 模板

没有评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注