14. 案例:配置 php-fpm 监控

14. 案例:配置 php-fpm 监控

14.1. 安装 php-fpm

# 使用 yum 安装
yum -y install php php-fpm php-gd php-mysql php-common php-pear php-mbstring php-mcrypt

# 启动并设置开机自启
systemctl status php-fpm
systemctl start php-fpm
systemctl enable php-fpm

14.2 修改 PHP 配置文件

[root@demo ~]# whereis php-fpm
php-fpm: /usr/sbin/php-fpm /etc/php-fpm.conf /etc/php-fpm.d /usr/share/man/man8/php-fpm.8.gz
[root@demo ~]# cd /etc/php-fpm.d/
[root@demo php-fpm.d]# ll
总用量 12
-rw-r--r-- 1 root root 10021 522 15:42 www.conf
[root@demo php-fpm.d]# vim www.conf 

pm.status_path = /php_status

在这里插入图片描述

14.3. 修改 nginx 配置文件

[root@demo ~]# whereis nginx
nginx: /usr/local/nginx
[root@demo ~]# cd /usr/local/nginx/
[root@demo nginx]# ll
总用量 4
drwx------ 2 nobody root    6 519 23:01 client_body_temp
drwxr-xr-x 2 root   root 4096 522 15:43 conf
drwx------ 2 nobody root    6 519 23:01 fastcgi_temp
drwxr-xr-x 2 root   root   40 519 23:00 html
drwxr-xr-x 2 root   root   58 520 11:36 logs
drwx------ 2 nobody root    6 519 23:01 proxy_temp
drwxr-xr-x 2 root   root   53 520 11:30 sbin
drwx------ 2 nobody root    6 519 23:01 scgi_temp
drwx------ 2 nobody root    6 519 23:01 uwsgi_temp
[root@demo nginx]# cd conf/
[root@demo conf]# ll
总用量 60
-rw-r--r-- 1 root root 1077 519 23:00 fastcgi.conf
-rw-r--r-- 1 root root 1077 520 11:25 fastcgi.conf.default
-rw-r--r-- 1 root root 1007 519 23:00 fastcgi_params
-rw-r--r-- 1 root root 1007 520 11:25 fastcgi_params.default
-rw-r--r-- 1 root root 2837 520 11:25 koi-utf
-rw-r--r-- 1 root root 2223 520 11:25 koi-win
-rw-r--r-- 1 root root 3957 519 23:00 mime.types
-rw-r--r-- 1 root root 3957 520 11:25 mime.types.default
-rw-r--r-- 1 root root 2701 520 11:36 nginx.conf
-rw-r--r-- 1 root root 2656 520 11:25 nginx.conf.default
-rw-r--r-- 1 root root  636 519 23:00 scgi_params
-rw-r--r-- 1 root root  636 520 11:25 scgi_params.default
-rw-r--r-- 1 root root  664 519 23:00 uwsgi_params
-rw-r--r-- 1 root root  664 520 11:25 uwsgi_params.default
-rw-r--r-- 1 root root 3610 520 11:25 win-utf
[root@demo conf]# vim nginx.conf

  location /php_status {
        
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
	

在这里插入图片描述

修改完成后,重启 nginx php-fpm

14.4 浏览器查看数据

在这里插入图片描述

14.4.1 状态解释说明
字段说明
poll大多数为www,在 www.conf 文件中可以查看
process manager进程管理方式,值:static(静态), dynamic(动态) or ondemand(按需要), dynamic
start time启动日期,如果reload了php-fpm,时间会更新
start sincephp-fpm已运行了多少秒
accepted conn当前pool接收到的请求数
listen queue处于等待状态中的连接数,如果这个值不为0,需要增加php-fpm进程数量
max listen queuephp-fpm启动到现在处于等待连接的最大数量
listen queue lensocket等待队列长度
idle processes空闲进程数量
active processes活跃进程数量
total processes总进程数量
max active processes从php-fpm启动到现在最多有几个进程处于活动状态
max children reached进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点
slow requests当启用了php-fpm slow-log功能时,如果出现php-fpm慢请求这个计数器会增加,一般使用不恰当的Mysql查询会触发这个值或者开发过程中存在bug也会触发这个值

14.5 编写 php-fpm 监控脚本

#!/bin/bash
#check php-fpm status
case $1 in
    ping)                           #检测php-fpm进程是否存在
    /sbin/pidof php-fpm | wc -l
    ;;
    start_since)             #提取status中的start since数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==4{print $3}'
    ;;
    conn)                     #提取status中的accepted conn数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==5{print $3}'
    ;;
    listen_queue)         #提取status中的listen queue数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==6{print $3}'
    ;;
     max_listen_queue)  #提取status中的max listen queue数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==7{print $4}'
    ;;
    listen_queue_len)    #提取status中的listen queue len
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==8{print $4}'
    ;;
    idle_processes)      #提取status中的idle processes数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==9{print $3}'
    ;;
    active_processes)   #提取status中的active processes数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==10{print $3}'
    ;;
     total_processes)    #提取status中的total processess数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==11{print $3}'
    ;;
    max_active_processes)     #提取status中的max active processes数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==12{print $4}'
    ;;
     max_children_reached)    #提取status中的max children reached数值
    /usr/bin/curl localhost/php_status 2>/dev/null  | awk 'NR==13{print $4}'
    ;;
    slow_requests)   #提取status中的slow requests数值
    /usr/bin/curl localhost/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

14.6 修改 zabbix 配置文件

vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

# 增加
UserParameter=php_fpm_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d \$1


# 修改完成重启 zabbix-agent
systemctl restart zabbix-agent.service

14.7 服务端验证

[root@zabbix ~]# zabbix_get -s 192.168.169.131 -k php_fpm_status[start_since]
4749

14.8 添加模板

配置 --> 模板
模板名称:Template php-fpm Status Monitor
群组:Linux servers

在这里插入图片描述

14.9 创建应用集

在这里插入图片描述

 

14.10 配置监控项

名称:PHP_FPM_Status_Ping
键值:php_fpm_status[ping]

在这里插入图片描述

按以上格式将如下内容添加到监控项中:
	名称:
		PHP_FPM_Status_start_since
        PHP_FPM_Status_accepted_conn
        PHP_FPM_Status_listen_queue
        PHP_FPM_Status_max_listen_queue
        PHP_FPM_Status_listen_queue_len
        PHP_FPM_Status_idle_processes
        PHP_FPM_Status_active_processes
        PHP_FPM_Status_total_processes
        PHP_FPM_Status_max_active_processes
        PHP_FPM_Status_max_children_reached
        PHP_FPM_Status_slow_requests
	键值:
		php_fpm_status[start_since]
        php_fpm_status[conn]
        php_fpm_status[listen_queue]
        php_fpm_status[max_listen_queue]
        php_fpm_status[listen_queue_len]
        php_fpm_status[idle_processes]
        php_fpm_status[active_processess]
        php_fpm_status[total_processes]
        php_fpm_status[max_active_processes]
        php_fpm_status[max_children_reached]
        php_fpm_status[slow_requests]

在这里插入图片描述

14.11 配置触发器

这里可以参考上面 14.4.1 状态解释说明 中的字段含义添加触发器

在这里插入图片描述

14.12 配置图形

在这里插入图片描述

14.13 配置主机模板

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值