php-fpm 服务纳入zabbix监控
admin
2023-06-17 09:01:55
0次

前几天弄了个Nginx 服务监控,今天再试试php服务的监控

操作系统: CentOS 7.2 

PHP版本:5.6.30

zabbix版本:2.2.5

发现php-fpm和Nginx一样都有自身就具备可提供查看的状态页面,所以我们就可以在配置档案里开启它


首先查看你的php设定档是否开启了状态页面查看的功能

# cat  /data0/php/etc/php-fpm.conf | grep status_path 
;pm.status_path = /status


如果情况同上,那说明还没有开启,故我们就修改配置,让它支持查看php-fpm status

# vim  /data0/php/etc/php-fpm.conf 
pm.status_path = /status   ---去掉;号注释

保存退出


重启php-fpm服务,让查看status功能生效

# pkill -9 php-fpm
# /data0/php/sbin/php-fpm

在Nginx配置上添加支持获取PHP status的设定

# vim  /data0/nginx/conf/nginx.conf
##在server模块内添加即可
server {
    listen 80;
     server_name  www.sss.com;
     #20170701 php-fpm status for zabbix to fetch data
      location ~ ^/(status|ping)$ {
          include fastcgi_params;
          fastcgi_pass   172.17.0.2:9000;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          }
     #20170701 php-fpm status for zabbix to fetch data end
}

注:因为我的PHP是在docker内运行的,所以上面的fatstcgi_pass 要根据你自己的情况而定

设置完毕,保存退出,重启Nginx服务,让设定生效

# /data0/nginx/sbin/nginx -t
nginx: the configuration file /data0/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /data0/nginx/conf/nginx.conf test is successful
# /data0/nginx/sbin/nginx -s reload

至此,PHP、Nginx准备工作完毕,现在可以开始查看成效

查看你的status页面

有两种方式:

1.在本地访问

curl http://网址/status

# curl http://www.sss.com/status
pool:                 www
process manager:      dynamic
start time:           30/Jun/2017:14:14:02 +0800
start since:          94540
accepted conn:        75834
listen queue:         0
max listen queue:     2
listen queue len:     128
idle processes:       99
active processes:     1
total processes:      100
max active processes: 9
max children reached: 0
slow requests:        122


2.打开浏览器访问

http://网址/status

php-fpm 服务纳入zabbix监控

内容解释:

pool:         www --php-fpm池名
process manager:    dynamic  --进程管理方式
start time:      30/Jun/2017:14:14:02 +0800 --启动日期,一旦你对php-fpm服务更新,它也同样会更新
start since:      94540 --运行至现在的时长
accepted conn:     75834 --当前池所接受的请求数
listen queue:     0 --请求等待队列数,若此值大于0,就要增加php-fpm进程数了
max listen queue:   2 --最高的请求等待队列数
listen queue len:   128 --socket等待队列长度
idle processes:    99 --空闲进程数
active processes:   1 --活动的进程数
total processes:    100 --总进程数
max active processes: 9 --最大活动进程数
max children reached: 0 --大道进程最大数限制次数,同样若此值不为0,需要将最大进行时进程扩大来满足需求
slow requests:     122 --缓慢请求数

php-fpm status 页面非常友善的地方是在配合zabbix监控时,不在需要你编写shell脚本来获取数据了,不错吧,又可以偷懒了!

不信,在你的被监控主机(即PHP-fpm主机)上试下下面的做法

1.访问URL末尾添加?xml

curl http://www.sss.com/status?xml


www
dynamic
1498803242
95730
77180
0
2
128
99
1
100
9
0
122

php-fpm 服务纳入zabbix监控

2.访问URL末尾添加?html

curl http:/www.sss.com/devopsfjjerpstatus?html


PHP-FPM Status Page

poolwww
process managerdynamic
start time30/Jun/2017:14:14:02 +0800
start since95954
accepted conn77437
listen queue0
max listen queue2
listen queue len128
idle processes99
active processes1
total processes100
max active processes9
max children reached0
slow requests122

php-fpm 服务纳入zabbix监控

3.访问URL末尾添加?json

# curl http://www.sss.com/status?json
{"pool":"www","process manager":"dynamic","start time":1498803242,"start since":96133,"accepted conn":77639,"listen queue":0,"max listen queue":2,"listen queue len":128,"idle processes":99,"active processes":1,"total processes":100,"max active processes":9,"max children reached":0,"slow requests":122}

php-fpm 服务纳入zabbix监控

在被监控机的zabbix agent 的配置里添加自定义的parameter

vim  /data0/zabbix/etc/zabbix_agentd.conf
##monitoring for php-fpm status
UserParameter=php-fpm.status[*],/usr/bin/curl -s "http://www.sss.com/devopsfjjerpstatus?xml" | grep "<$1>"| awk -F '>|<' '{ print $$3}'

为了让修改的配置生效,我们要重启下zabbix_agentd服务

# pkill -9 zabbix_agentd
# /data0/zabbix/sbin/zabbix_agentd


目前在被监控机器上的设定已经基本结束,现在转战zabbix server,跟之前的操作一样,只要在zabbix web管理界面上导入PHP-fpm监控模板

注:有需要的朋友,可以在本文章末尾下载我的zabbix php-fpm监控模板

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

出现上面的汇入成功后,在你的模板列表里查找是否已经汇入

php-fpm 服务纳入zabbix监控

从上面的图中可以看出有个叫做Template App PHP-FPM的模板已经存在了。


查看监控项目内容

php-fpm 服务纳入zabbix监控


查看监控触发器

php-fpm 服务纳入zabbix监控


查看监控图形内容

php-fpm 服务纳入zabbix监控


接下来将这个模板链接到你需要监控php-fpm服务的主机即可,最简单的方法是把主机纳入到监控模板内

php-fpm 服务纳入zabbix监控


可以再到你的主机上看看,它是否已经被连接到你的主机上

php-fpm 服务纳入zabbix监控

发现Template App PHP_FPM已经在主机的连结模板内了


如果模板不合适,可以自己一步一步建立监控模板,可能zabbix监控版本不同,但是大体是一样的,根据自己的需求进行设定即可。

  1. 首先创建监控模板

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

选好群组模板,然后填入想要的模板名称以及需要纳入到监控模板内的主机

php-fpm 服务纳入zabbix监控


2.配置好模板后,创建应用集

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控


3.在应用集内添加监控项目

注:关于监控项目可以参考我在上面贴出监控项目内容里的监控项目名称和键值作为参考

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

其他监控项目和上面内容,除了名称、键值、备注描述信息,其他都是一样的。


4.添加监控告警

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

上面的告警是当php-fpm进程为零时,进行严重告警


5.添加监控项目查看图形

注:关于监控图形可以参考我在上面贴出监控图形内容里的监控图形名称作为参考,主要根据你自己的需求进行设定会比较精准

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

在名称上填入你想要的监控名称,在监控项选择你已经添加好的项目,反正就是根据你个人的需求进行设定即可


设定好上面的东西,那你就可以直接在监控内查看你的监控图形是否有数据产生了

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

php-fpm 服务纳入zabbix监控

至此所有创建动作结束,如果出图,则说明设定成功啦!

附件:http://down.51cto.com/data/2366813

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...