zabbix监控php-fpm性能状态

1. 启用php-fpm状态功能

# cat  /usr/local/php/etc/php-fpm.conf | grep status_path
pm.status_path = /status

2. nginx配置

location ~ ^/(status|ping)$
    {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    }

3. 重启nginx/php-fpm

# service nginx restart
# service php-fpm restart

4. 打开status页面

# curl http://127.0.0.1/status
pool:                 www
process manager:      dynamic
start time:           04/Feb/2016:17:22:03 +0800
start since:          923888
accepted conn:        202606
listen queue:         0
max listen queue:     1
listen queue len:     32768
idle processes:       5
active processes:     1
total processes:      6
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其他参数

php-fpm状态页比较个性化的一个地方是它可以带参数,可以带参数json、xml、html并且前面三个参数可以分别和full做一个组合。

6.1 json

# curl http://127.0.0.1/status?json
{"pool":"www","process manager":"dynamic","start time":1454577723,"start since":924013,"accepted conn":202636,"listen queue":0,"max listen queue":1,"listen queue len":32768,"idle processes":5,"active processes":1,"total processes":6,"max active processes":6,"max children reached":0,"slow requests":0}

6.2 xml

# curl http://127.0.0.1/status?xml
<?xml version="1.0" ?>
<status>
<pool>www</pool>
<process-manager>dynamic</process-manager>
<start-time>1454577723</start-time>
<start-since>923976</start-since>
<accepted-conn>202619</accepted-conn>
<listen-queue>0</listen-queue>
<max-listen-queue>1</max-listen-queue>
<listen-queue-len>32768</listen-queue-len>
<idle-processes>5</idle-processes>
<active-processes>1</active-processes>
<total-processes>6</total-processes>
<max-active-processes>6</max-active-processes>
<max-children-reached>0</max-children-reached>
<slow-requests>0</slow-requests>

6.3 html

# curl http://127.0.0.1/status?html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>PHP-FPM Status Page</title></head>
<body>
<table>
<tr><th>pool</th><td>www</td></tr>
<tr><th>process manager</th><td>dynamic</td></tr>
<tr><th>start time</th><td>04/Feb/2016:17:22:03 +0800</td></tr>
<tr><th>start since</th><td>924097</td></tr>
<tr><th>accepted conn</th><td>202649</td></tr>
<tr><th>listen queue</th><td>0</td></tr>
<tr><th>max listen queue</th><td>1</td></tr>
<tr><th>listen queue len</th><td>32768</td></tr>
<tr><th>idle processes</th><td>5</td></tr>
<tr><th>active processes</th><td>1</td></tr>
<tr><th>total processes</th><td>6</td></tr>
<tr><th>max active processes</th><td>6</td></tr>
<tr><th>max children reached</th><td>0</td></tr>
<tr><th>slow requests</th><td>0</td></tr>
</table>
</body></html>

6.4 full

# curl http://127.0.0.1/status?full
pool:                 www
process manager:      dynamic
start time:           04/Feb/2016:17:22:03 +0800
start since:          924257
accepted conn:        202692
listen queue:         0
max listen queue:     1
listen queue len:     32768
idle processes:       5
active processes:     1
total processes:      6
max active processes: 6
max children reached: 0
slow requests:        0

************************
pid:                  18703
state:                Idle
start time:           14/Feb/2016:11:32:55 +0800
start since:          81205
requests:             3060
request duration:     52445
request method:       GET
request URI:          /sesamestreet/elmo/index.php
content length:       0
user:                 -
script:               /www//sesamestreet/elmo/index.php
last request cpu:     38.14
last request memory:  3670016

************************
pid:                  18396
state:                Idle
start time:           14/Feb/2016:11:32:01 +0800
start since:          81259
requests:             3061
request duration:     155
request method:       GET
request URI:          /index.php
content length:       0
user:                 -
script:               /www//index.php
last request cpu:     0.00
last request memory:  262144

************************
pid:                  19326
state:                Idle
start time:           14/Feb/2016:11:34:51 +0800
start since:          81089
requests:             3057
request duration:     69
request method:       GET
request URI:          /status?xml
content length:       0
user:                 -
script:               /status
last request cpu:     0.00
last request memory:  262144

************************
pid:                  17667
state:                Idle
start time:           14/Feb/2016:11:29:55 +0800
start since:          81385
requests:             3066
request duration:     117
request method:       GET
request URI:          /index.php
content length:       0
user:                 -
script:               /www//index.php
last request cpu:     0.00
last request memory:  262144

************************
pid:                  18954
state:                Idle
start time:           14/Feb/2016:11:33:50 +0800
start since:          81150
requests:             3060
request duration:     46680
request method:       GET
request URI:          /sesamestreet/elmo/index.php
content length:       0
user:                 -
script:               /www//sesamestreet/elmo/index.php
last request cpu:     64.27
last request memory:  3670016

************************
pid:                  17619
state:                Running
start time:           14/Feb/2016:11:29:52 +0800
start since:          81388
requests:             3068
request duration:     95
request method:       GET
request URI:          /status?full
content length:       0
user:                 -
script:               /status
last request cpu:     0.00
last request memory:  0

6.5 full详解

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

zabbix客户端配置

增加自定义key

# cat zabbix_agentd.conf | grep ‘php-fpm‘
#php-fpm
UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://127.0.0.1/status?xml" | grep "<$1>" | awk -F‘>|<‘ ‘{ print $$3}‘

重启zabbix客户端

/etc/init.d/zabbix_agentd restart

zabbix管理后台配置

导入php-fpm模板

进入后台->configuration->templates->import(右侧)->选择php模板->最后点击import。至此php-fpm模板已经导入到zabbix中

 

时间: 2024-08-04 12:34:02

zabbix监控php-fpm性能状态的相关文章

Zabbix 监控 WEB 应用性能

1.介绍使用 zabbix_sender 发送采集的 WEB 状态值,使用 pycurl 来采集 WEB 状态.2.实现Python 脚本如下: #!/usr/bin/env python #coding=utf-8 import os import sys import fileinput import pycurl import logging hostname = "Zabbix server" zabbix_server = "127.0.0.1" zabb

Zabbix 监控LVS连接的状态

一.这个监控的设置和我上一篇监控TCP状态类似,下面直接写监控脚本. # vim /usr/local/zabbix/scripts/ipvsadm_status #!/bin/bash  #shuidi #status about lvs forward  function Act1 {  /sbin/ipvsadm -Ln 2>/dev/null | grep '10.0.0.9:80' | sed '2d' | awk '{print $5}' }  function Act2 {  /s

zabbix 监控tcp连接的状态

Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB:或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想: 一.我的上一篇已经写了步骤,这里我只是列出脚本: #!/bin/bash #xiaoluo #scripts for tcp status function SYNRECV { /usr/sbin/

Zabbix监控Nginx 和PHP-FPM状态

Nginx自带监控模块ngx_http_stub_status_module提供Nginx的基本信息 在编译安装Nginx时加参数 --with-http_stub_status_module 安装好以后可以通过nginx -V|grep http_stub_status_module 查看状态模块是否已安装 PHP-FPM也自带监控,通过在php-fpm.conf中设置 pm.status_path = /php-fpm_status 就可以获取URL的方式获取PHP-FPM的状态 添加ngi

zabbix 监控 tomcat/jvm性能

http://www.ttlsa.com/web/install-tomcat7-on-linux/ http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ 配置tomcat jmx vim /usr/local/tomcat7/bin/catalina.sh # ----- Execute The Requested Command --------- 在次行下面加上 export CATALINA_OPTS="$CATALINA_

zabbix监控mysql的性能

参考  http://www.linuxidc.com/Linux/2016-04/130436.htm 环境: zabbix sever: 192.168.234.131 mysql :192.168.234.130 mysql 客户端操作: 1 添加监控用户,登入到数据里然后:   GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix' WITH GRANT OPTION;  MariaDB [(none)]>  f

ZABBIX监控每秒业务状态

一.背景 有客户监控MySQL的公网延迟,细粒度到每秒,对你没听错是每秒,云平台级别的监控阿里云/腾讯云虽都支持自定义监控,但是限于数据的存储,粒度最小为每一分钟,阿里云免费云监控频率是5分钟,收费的粒度才可调至1分钟,对此想到利用ZABBIX来进行每一秒的数据上报,最终利用其绘图来进行展示.在此抛砖引玉,其他自定义监控均为此类方法,只需要简单修改脚本获取到需要上报的值即可. 二.部署 2.1 安装ZABBIX SENDER 安装与zabbix版本一样的zabbix sender例如此处安装3.

zabbix监控mysql各项性能,主从复制

###################################################### 监控mysql(默认监控模板不能用,再agentd.conf开启自定义key,自己编写脚本) 在zabbix_agentd.conf尾部添加(注意相关文件路径,以及脚本权限等问题) vim zabbix_agentd.conf UserParameter=mysql.version,mysql -V UserParameter=mysql.ping,mysqladmin -uroot -

利用Shell生成Zabbix监控的数字报表

我们都知道Zabbix是一个非常强大的监控工具,我们公司呢也在用Zabbix监控所有网站的状态. 最近有一个需求,就是我们需要生成一份报告,报告里要包含前一天一整天的时间节点和对应的响应时间,这样的报告用来统计网站的可用性达到了什么水准. ? Zabbix本身自带报告功能,可是都是图像的,并没有数据格式的.虽然没有提供数据格式的报表,但是Zabbix提供了一套API,可以根据需求获取对应的数据(JSON格式),于是我就写了个脚本,用来把每个监控的网址的监控数据输出到一个CSV文件中.(后续可以用

zabbix监控nginx性能状态

nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控,来发现出来出现的问题.nginx处理流程图具体如下: 注释:Accepts(接受).Handled(已处理).Requests(请求数)是一直在增加的计数器.Active(活跃).Waiting(等待).Reading(读).Writing(写)随着请求量而增减 名称 描述 指标类型 Accepts(接受) NGINX 所接受的客户端连接数 资源: 功能 Handled(已处理) 成功的客户端连接数 资源: 功能