(在zabbix客户端上操作 web01 189.73)
启用php-fpm 状态功能
vim /usr/local/php/etc/php-fpm.d/www.conf
修改nginx 配置文件:
vim /usr/local/nginx/conf/nginx.conf
location ~ ^/(status|ping)$ { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; }
重启nginx php-fpm
/usr/local/nginx/sbin/nginx -s reload
systemctl restart php-fpm
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,缓慢请求的数量
一、编写监控脚本: (在zabbix客户端上操作 web01 189.73)
mkdir -p /usr/local/zabbix/script && cd /usr/local/zabbix/script
vim php-fpm_status.sh
#! /bin/bash #date: 2019-05-09 # Description:zabbix监控php-fpm 7.1.26性能以及进程状态 # Note:此脚本需要配置在被监控端 HOST="127.0.0.1" # 检测php-fpm进程是否存在 function ping { /sbin/pidof php-fpm | wc -l } # 检测php-fpm性能 #start since – 运行时长 function active { curl "http://$HOST/status" -s 2>/dev/null| awk '/^start since:/ {print $NF}' } #accepted conn – 当前池子接受的请求数 function accept_conn { curl http://$HOST/status -s 2>/dev/null| awk '/^accepted conn:/ {print $NF}' } #listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量 function queue { curl http://$HOST/status -s 2>/dev/null| awk '/^listen queue:/ {print $NF}' } #max listen queue – 请求等待队列最高的数量 function max_queue { curl http://$HOST/status -s 2>/dev/null| awk '/^max listen queue:/ {print $NF}' } #listen queue len – socket等待队列长度 function queue_len { curl http://$HOST/status -s | awk '/^listen queue len:/ {print $NF}' } #idle processes – 空闲进程数量 function idle_proc { curl http://$HOST/status -s | awk '/^idle processes:/ {print $NF}' } #active processes – 活跃进程数量 function active_proc { curl http://$HOST/status -s | awk '/^active processes:/ {print $NF}' } #total processes – 总进程数量 function total_proc { curl http://$HOST/status -s | awk '/^total processes:/ {print $NF}' } #max active processes – 最大的活跃进程数量(FPM启动开始算) function max_active_ps { curl http://$HOST/status -s | awk '/^max active processes:/ {print $NF}' } #max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。 function max_children { curl http://$HOST/status -s | awk '/^max children reached:/ {print $NF}' } #slow requests – 启用了php-fpm slow-log,缓慢请求的数量 function slow_request { curl http://127.0.0.1/status -s | awk '/^slow requests:/ {print $NF}' } # 执行function $1 ++++++++++++++++++++++++++
chmod +x php-fpm_status.sh
三、修改zabbix客户端的配置文件: (在zabbix客户端上操作web01 189.73)
cd /usr/local/zabbix/etc/zabbix_agentd.conf.d
vim php_status.conf
保存,退出,重启zabbix客户端
pkill zabbix_agentd
zabbix_agentd
四、测试 (在zabbix服务器上操作)
五、在zabbix WEB页面添加php 监控模版,并添加监控项。
添加监控项:
添加其他的监控项:
为监控主机(web01 189.73),添加模版
查看数据:
为php 模版添加图形:
+++++++++++++++++++++++
创建触发器:(php-fpm 进程挂掉后,触发,动作,邮件报警)
由于先前创建的动作是应用是所有触发器的,所以这里可以不用再单独创建动作。也可以单独为php-fpm 触发,创建一个动作。
测试触发器:(web01 192.168.189.73)停止php-fpm
重新启动 (web01 192.168.189.73) php-fpm