apache监控php-fpm,Zabbix监控php-fpm

主机环境:

[root@test ~]# uname -a

Linux test 3.10.0-693.el7.x86_64 #1 SMP Thu Jul 6 19:56:57 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux

[root@test ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 7.4 (Maipo)

[root@test ~]# ifconfig

ens33: flags=4163 mtu 1500

inet 192.168.139.132 netmask 255.255.255.0 broadcast 192.168.139.255

ether 00:0c:29:ca:b7:70 txqueuelen 1000 (Ethernet)

RX packets 356 bytes 41989 (41.0 KiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 224 bytes 41057 (40.0 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Zabbix版本:3.4.9

php-fpm版本:

[root@test ~]# php-fpm -v

PHP 5.4.16 (fpm-fcgi) (built: Apr 12 2018 19:03:25)

Copyright (c) 1997-2013 The PHP Group

Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

主机防火墙和selinux关闭

Zabbix yum安装参考:https://www.tracymc.cn/archives/614,编译安装可参考https://www.tracymc.cn/archives/218.

zabbix监控php-fpm主要是通过nginx配置php-fpm的状态输出页面,在正则取值.

具体步骤:

1.修改php-fpm配置

在php-fpm的配置文件中(/etc/php-fpm.d/www.conf)找到“pm.status_path = /status”并将前面的分号去掉.

yum安装的话默认路径为/etc,找不到的话可以find或者locate查找.注意这里不是修改的/etc/php-fpm.conf这个配置文件,而是/etc/php-fpm.d/www.conf这个配置文件,直接在/etc/php-fpm.conf添加"pm.status_path = /status"的话会报如下错误,这个要注意!!!!!

ff4c0dd62aa5ae483a9620b38a15a4e6.png[root@test ~]# systemctl restart php-fpm //重启php-fpm

2.修改nginx配置

在nginx配置的server段添加如下配置:

location /status {

allow 127.0.0.1#你允许的ip

deny all;

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

截图如下:

f0b7752ddd5597c1c1f1c1d8103da926.png[root@test conf.d]# nginx -t //验证配置文件是否正确

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@test conf.d]# systemctl restart nginx //重启nginx

主机浏览器打开http://127.0.0.1:8080/status验证nginx配置修改是否生效,如下:

27fb1c066edc2bdbd57bf343977b383f.png具体参数含义如下:

pool – fpm池子名称,大多数为www

process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic

start time – 启动日期,如果reload了php-fpm,时间会更新

start since – 运行时长

accepted conn – 当前池子接受的请求数

listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量

max listen queue – 请求等待队列最高的数量

listen queue len – socket等待队列长度

idle processes – 空闲进程数量

active processes – 活跃进程数量

total processes – 总进程数量

max active processes – 最大的活跃进程数量(FPM启动开始算)

max children reached - 进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。

slow requests – 启用了php-fpm slow-log,缓慢请求的数量

3.添加监控脚本

[root@test conf.d]# cat /etc/zabbix/scripts/php-fpm_status.sh //脚本的端口根据实际情况填写,我这里的nginx是8080端口,如上截图

listenqueue(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "listen queue:"|grep -vE "len|max"|awk '{print$3}'

}

listenqueuelen(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "listen queue len" |awk '{print$4}'

}

idle(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "idle processes" |awk '{print$3}'

}

active(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "active" |awk '{print$3}'|grep -v "process"

}

total(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "total processes" |awk '{print$3}'

}

mactive(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "max active processes:" |awk '{print$4}'

}

since(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "start since: " |awk '{print$3}'

}

conn(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "accepted conn" |awk '{print$3}'

}

reached(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "max children reached" |awk '{print$4}'

}

requests(){

wget --quiet -O - http://127.0.0.1:8080/status?auto |grep "slow requests" |awk '{print$3}'

}

$1

[root@test zabbix]# chmod u+x /etc/zabbix/scripts/php-fpm_status.sh //赋予执行权限

[root@test ~]# cat /etc/zabbix/zabbix_agentd.conf |grep conf|grep -v ‘#’ //yum安装zabbix的话agent默认配置文件为/etc/zabbix/zabbix_agentd.conf

Include=/etc/zabbix/zabbix_agentd.d/*.conf //你懂的,包含/etc/zabbix/zabbix_agentd.d下面的配置

设置键值:

[root@test zabbix]# cat /etc/zabbix/zabbix_agentd.d/userparameter_php_fpm.conf

UserParameter=idle.processe,/etc/zabbix/scripts/php-fpm_status.sh idle

UserParameter=total.processes,/etc/zabbix/scripts/php-fpm_status.sh total

UserParameter=active.processes,/etc/zabbix/scripts/php-fpm_status.sh active

UserParameter=max.active.processes,/etc/zabbix/scripts/php-fpm_status.sh mactive

UserParameter=listen.queue.len,/etc/zabbix/scripts/php-fpm_status.sh listenqueuelen

UserParameter=listen.queue,/etc/zabbix/scripts/php-fpm_status.sh listenqueue

UserParameter=start.since,/etc/zabbix/scripts/php-fpm_status.sh since

UserParameter=accepted.conn,/etc/zabbix/scripts/php-fpm_status.sh conn

UserParameter=max.children.reached,/etc/zabbix/scripts/php-fpm_status.sh reached

UserParameter=slow.requests,/etc/zabbix/scripts/php-fpm_status.sh requests

[root@test zabbix]# systemctl restart zabbix-agent //重启agent

4.导入模板

模板下载地址:

b5758bb4867e5cc83175d18acb0a9c12.png

63f2e6f416eacc2937dc6673e282e919.png导入成功后可以在配置-模板查看已导入的模板,如下:

a663a63e2fa145c7a96680eab7897d87.png

5.关联模板

添加模板:

配置-主机点击相关主机进去配置模板,如下:

0bdbf3ed0a34a5d7478e04ce466b16f0.png

6.zabbix web验证是否有数据

关联模板后,稍等一会,查看web页面是否有数据.

部分截图如下:

1e2e7c214dab01baface48ab87969787.png

cb02d21d2fb543215c39fab5361a3d5f.png

注:模板没有设置触发器,可自行设定.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值