监控PHP服务状态信息
1、安装PHP服务配置
上传PHP RPM包,安装
2、配置PHP状态信息
1. [root@Web01 ~]# cat /etc/php-fpm.d/www.conf|grep pm.status_path 2. pm.status_path = /status 3. [root@Web01 ~]# systemctl restart php-fpm
3、修改Nginx配置文件
1. [root@Web01 ~]# cat /etc/nginx/conf.d/status.conf 2. server { 3. listen 88; 4. location /nginx_status { 5. stub_status; 6. } 7. location /status { 8. fastcgi_pass 127.0.0.1:9000; 9. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 10. include fastcgi_params; 11. } 12. } 13. [root@Web01 ~]# systemctl restart nginx 14. [root@Web01 ~]# curl 127.0.0.1:88/status 15. pool: www #pool的名称 16. process manager: dynamic #进程管理方式,现今大多都为dynamic,不要使用static 17. start time: 16/May/2023:21:30:31 +0800 #php-fpm上次启动的时间 18. start since: 133 #php-fpm已运行了多少秒 19. accepted conn: 1 #pool接受到的请求数 20. listen queue: 0 #处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数 21. max listen queue: 0 #从php-fpm启动到现在处于等待连接的最大数量 22. listen queue len: 128 #处于等待连接队列的套接字大小 23. idle processes: 4 #处于空闲状态的进程数 24. active processes: 1 #处于活动状态的进程数 25. total processes: 5 #进程总数 26. max active processes: 1 #从php-fpm启动到现在最多有几个进程处于活动状态 27. max children reached: 0 #当php-fpm试图启动更多的children进程时,却达到了进程数的限制,达到一次记录一次,如果不为0,需要增加php-fpm pool进程的最大数 28. slow requests: 0 #当启用了php-fpm slow-log功能时,如果出现了php-fpm慢请求,这个计数器会增加,一般不当的mysql查询会触发这个值
4、自定义监控项
1. [root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/php.conf 2. UserParameter=fpm.accepted,curl -s 127.0.0.1:88/status|grep accepted|awk '{print $NF}' 3. UserParameter=fpm.idle,curl -s 127.0.0.1:88/status|grep idle|awk '{print $NF}' 4. UserParameter=fpm.active,curl -s 127.0.0.1:88/status|grep ^active|awk '{print $NF}' 5. UserParameter=fpm.total,curl -s 127.0.0.1:88/status|grep total|awk '{print $NF}' 6. UserParameter=fpm.children,curl -s 127.0.0.1:88/status|grep children|awk '{print $NF}' 7. [root@Web01 ~]# systemctl restart zabbix-agent 8. [root@Web01 ~]# zabbix_agentd -p | grep ^fpm #客户端查看能否正常获取值 9. zabbix_agentd [7902]: Warning: EnableRemoteCommands parameter is deprecated, use AllowKey=system.run[*] or DenyKey=system.run[*] instead 10. fpm.accepted [t|56] 11. fpm.idle [t|5] 12. fpm.active [t|1] 13. fpm.total [t|6] 14. fpm.children [t|0] 15. 16. [root@Zabbix ~]# zabbix_get -s 172.16.1.7 -k fpm.accepted #服务端查看能否正常获取客户端的值 17. 62
5、创建自定义PHP模板(监控项+触发器+图形)
1)基于模板添加监控项
依次添加其他配置项,除自定义的外再多添加个端口监控,zabbix自带的
2)基于模板配置触发器
3分钟之内受到限制次数的最大数等于5则报警