配置php-fpm性能页面(基于nginx)
php-fpm配置
# vim /usr/local/php/etc/php-fpm.conf
listen.allowed_clients = 127.0.0.1
pm.status_path = /phpstatus
配置完成后reload配置
nginx配置
# vim /usr/local/nginx/conf/nginx.conf
server {
listen 8000;
server_name localhost;
location /NginxStatus {
stub_status on;
access_log off;
}
location ~ /(phpstatus)$
{
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
配置完成后reload配置
测试
# curl -s -m 10 http://localhost:8000/phpstatus
pool: www
process manager: dynamic
start time: 02/Dec/2018:17:53:44 +0800
start since: 1373
accepted conn: 682
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 133
active processes: 1
total processes: 134
max active processes: 6
max children reached: 0
slow requests: 0
//以xml格式返回
# curl -s -m 10 http://localhost:8000/phpstatus?xml
<?xml version="1.0" ?>
<status>
<pool>www</pool>
<process-manager>dynamic</process-manager>
<start-time>1543744424</start-time>
<start-since>1399</start-since>
<accepted-conn>705</accepted-conn>
<listen-queue>0</listen-queue>
<max-listen-queue>0</max-listen-queue>
<listen-queue-len>128</listen-queue-len>
<idle-processes>133</idle-processes>
<active-processes>1</active-processes>
<total-processes>134</total-processes>
<max-active-processes>6</max-active-processes>
<max-children-reached>0</max-children-reached>
<slow-requests>0</slow-requests>
php-fpm status状态值详解
pool:fpm池子名称,大多数为www
process manager:进程管理方式,值:static,dynamic or ondemand
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:总进程数量
zabbix_agent配置
# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/UserParameter_script.conf
追加
#PHP-FPM
UserParameter=php-fpm.status[*],/usr/local/zabbix/scripts/php-fpm_monitor.sh $1
PHP-FPM监控脚本
#!/bin/bash
COMMAND=$1
# PHP-FPM性能监控
function php_status() {
local HOST="localhost"
local PORT="8000"
/usr/bin/curl -s -m 10 http://localhost:8000/phpstatus?xml |grep "<$COMMAND>" |awk -F'>|<' '{print $3}'
}
# PHP-FPM连接数统计
function php_conn() {
local FPMPORT=9000
/bin/netstat -ant|grep $FPMPORT|grep $COMMAND |wc -l
}
# 执行function
case $COMMAND in
TIME_WAIT|ESTABLISHED|CLOSE_WAIT)
php_conn;
;;
accepted-conn|listen-queue-len|active-processes)
php_status;
;;
*)
echo $"USAGE:$0 {accepted-conn|listen-queue-len|active-processes|ESTABLISHED|TIME_WAIT|CLOSE_WAIT}"
esac
重启Agent
WEB页面配置(参考Zabbix自定义监控)
创建模板-->创建应用集-->创建监控项(取accepted-conn--请求数, listen-queue-len--列对数, active-processes--活跃进程数)