1、启用php-fpm的状态页面
#find / -name www.conf #查找php的配置文件
#vim /xxx/www.conf #编辑配置文件
pm.status_path = /phpfpm_status #取消注释,更改内容
2、在nginx服务的配置文件上启用php的状态页
#find / -name nginx.conf #查找nginx的配置文件
#vim /xxx/nginx.conf #添加如下内容
location /phpfpm_status {
fastcig_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
allow 127.0.0.1;
deny all;
include fastcgi_params;
}
#systemctl restart php-fpm #重启php服务
#curl 127.0.0.1/phpfpm_status; #测试php状态页是否成功
3、编写一个脚本获取变量值
#vim /etc/zabbix/zabbix_agentd.d/php_status.sh
#!bin/bash
php_file=/tmp/php_status.log
php_comm=$1
/usr/bin/curl -s "http://127.0.0.1/phpfpm_status" >$php_file
case $php_comm in
accepted_conn) #获取服务的总请求数
awk '/^accepted comm/ {print $NF}' $php_file
;;
listen_queue) #获取等待空闲进程的请求总数
awk '/^listen queue len/ {print $NF}' $php_file
;;
idle_processess) #空闲进程数
awk '/^idle processes/ {print $NF}' $php_file
;;
active_processes) #活跃进程数
awk '/^active processes/ {print $NF}' $php_file
;;
*) #提示输入的格式
echo "please enter accepted_conn | listen_queue | idle_processes | active_processes"
esac
#chmoed +x /etc/zabbix/zabbix_agentd.d/php_status.sh #给脚本执行权限
#vim /etc/zabbix/zabbix_agentd.d/php_status.conf #增加配置文件获得值
UserParameter=php_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/php_status.sh "$1"
#systemctl restart zabbix-agent #重启zabbix-agent服务
#zabbix_get -s zabbix-agent的IP -k php_status[active_processes] #在zabbix的server端测试,需要安装zabbix-get
4、在web端添加监控项
其他监控项可根据此图添加
5、web端添加触发器
5、最后将该模板引用到需要的主机上即可