zabbix监控php-fpm主要是通过nginx配置php-fpm的状态输出页面,在正则取值.要nginx能输出php-fpm的状态首先要先修改php-fpm的配置,没有开启nginx是没有法输出php-fpm status。
第一个里程:修改文件php-fpm
vim /application/php-5.5.32/etc/php-fpm.conf文件
第二个里程:修改nginx配置文件
vim vim /application/nginx/conf/extra/www.conf,在server 区块下添加一行内容
重启nginx
第三个里程:curl 127.0.0.1/php_status 我们可以看到php-fpm 的状态信息
第四个里程:编写监控脚本和监控文件
vim /server/scripts/php_fpm-status.sh
#!/bin/sh
#php-fpm status
case $1 in
???ping) ??????????????????????????#检测php-fpm进程是否存在
???/sbin/pidof php-fpm | wc -l
???;;
???start_since) ????????????#提取status中的start since数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==4{print $3}‘
???;;
???conn) ????????????????????#提取status中的accepted conn数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==5{print $3}‘
???;;
???listen_queue) ????????#提取status中的listen queue数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==6{print $3}‘
???;;
????max_listen_queue) ?#提取status中的max listen queue数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==7{print $4}‘
???;;
???listen_queue_len) ???#提取status中的listen queue len
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==8{print $4}‘
???;;
???idle_processes) ?????#提取status中的idle processes数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==9{print $3}‘
???;;
???active_processes) ??#提取status中的active processes数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==10{print $3}‘
???;;
????total_processes) ???#提取status中的total processess数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==11{print $3}‘
???;;
???max_active_processes) ????#提取status中的max active processes数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==12{print $4}‘
???;;
????max_children_reached) ???#提取status中的max children reached数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==13{print $4}‘
???;;
???slow_requests) ??#提取status中的slow requests数值
???/usr/bin/curl 127.0.0.1/php_status 2>/dev/null ?| awk ‘NR==14{print $3}‘
???;;
???*)
???echo "Usage: $0 {conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processess|total_processes|max_active_processes|max_children_reached|slow_requests}"
???exit 1
???;;
esac
vim /etc/zabbix/zabbix_agentd.d/test.conf
UserParameter=php_status[*],/bin/sh /server/scripts/php_fpm-status.sh $1
第六个里程:重启服务
在服务端测试
第七个里程:在web端进行配置
这时候我们再来看最新监控数据,就可以看到我们监控的内容了
配置到这,我们PHP状态监控基本完成,根据需求配置相应的触发器,即可。
zabbix 如何监控php-fpm?
原文地址:https://www.cnblogs.com/wzxmt/p/9824428.html