zabbix-php-fpm

王志龙 2020-01-02

我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
个人博客:传送阵
笔者微信:zhanghe15069028807,非诚勿扰。

zabbix-php-fpm

我们监控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导入,并修改宏

zabbix-php-fpm

第六步:将配置文件移动到/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

相关推荐