王志龙 2020-01-02
我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
个人博客:传送阵
笔者微信:zhanghe15069028807
,非诚勿扰。
我们监控php这个应用,同时的首先要要把他的状态页面显示出来,然后我们才能去取当中的值做成键值。
第一步:安装并启动php-fpm
[ ~]# yum -y install php-fpm php-cli [ ~]# systemctl start php-fpm [ ~]# systemctl enable php-fpm /usr/lib/systemd/system/php-fpm.service. [ ~]# systemctl status php-fpm #默认侦听在9000端口 [ ~]# php -v PHP 5.4.16 (cli) (built: Nov 1 2019 16:04:20) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
第二步:启用php的状态显示页面
[ ~]# rpm -qc php-fpm /etc/logrotate.d/php-fpm /etc/php-fpm.conf /etc/php-fpm.d/www.conf /etc/sysconfig/php-fpm [ ~]# vim /etc/php-fpm.d/www.conf 121 pm.status_path = /php_status [ ~]# systemctl restart php-fpm
第三步:在nginx当中开启php的访问
[ ~]# vim /etc/nginx/nginx.conf location ~ ^/(php_status|ping)$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME documentrootfastcgi_script_name; include fastcgi_params; } [ ~]# systemctl restart nginx [ ~]# curl http://127.0.0.1/php_status pool: www process manager: dynamic start time: 02/Jan/2020:19:39:24 +0800 start since: 126 accepted conn: 16 listen queue: 0 max listen queue: 0 listen queue len: 128 idle processes: 4 active processes: 1 total processes: 5 max active processes: 1 max children reached: 0 slow requests: 0
pool php-fpm pool(资源池)的名称,大多数情况下为www
process manager 进程管理方式,现今大多都为dynamic,不要使用static
start time 上次启动的时间
start since 已运行了多少秒
accepted conn pool 接收到的请求数
listen queue 处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数
max listen queue 从php-fpm启动到现在处于等待连接的最大数量
listen queue len 处于等待连接队列的套接字大小
idle processes 处于空闲状态的进程数
active processes 处于活动状态的进程数
total processess 进程总数
max active process 从php-fpm启动到现在最多有几个进程处于活动状态
max children reached 当php-fpm试图启动更多的children进程时,却达到了进程数的限制,达到一次记录一次,如果不为0,需要增加php-fpm pool进程的最大数
slow requests 当启用了php-fpm slow-log功能时,如果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查询会触发这个值
第四步:去github上下载一个别人早就定义好的模板
[ ~]#git clone https://github.com/maxvgi/zabbix-templates.git [ ~]# ls zabbix-templates [ ~]# cd zabbix-templates/ [ zabbix-templates]# ls aerospike iostat mysql nginx php-fpm README.md ssl-checks check_backups linux-sockets netstat nginx-background php-fpm-multiple-pools redis [ zabbix-templates]# cd php-fpm [ php-fpm]# ls #配置文件、脚本、模板 fpm.conf fpm.sh fpm.xml
第五步:将fpm.xml导入,并修改宏
第六步:将配置文件移动到/etc/zabbix/zabbix_agentd.d
[ zabbix_agentd.d]# pwd /etc/zabbix/zabbix_agentd.d [ zabbix_agentd.d]# cat fpm.conf UserParameter=php-fpm[*],/etc/zabbix/scripts/fpm.sh "$1" "$2"
第七步:根据配置文件当中的指示,把脚本放置到相应的目录
[ scripts]# pwd /etc/zabbix/scripts //别忘记加执行权限 [ scripts]# ls fpm.sh
第八步:重启zabbix-agent
[ ~]# systemctl restart zabbix-agent