Zabbix应用监控系列之PHP-FPM状态监控
2016-09-12 18:01
141 查看
1.配置所有Agent(标准化目录结构)
2.PHP-FPM工作模式通常与Nginx结合使用,修改php-fpm.conf(找到自己的php-fpm.conf存放路径)
3.修改nginx.conf的配置文件,通过Nginx访问PHP-FPM状态。
4.访问测试phpfpm_status
[root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf #编辑配置文件引用key
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@linux-node1 ~]# mkdir /etc/zabbix/scripts #存放Shell脚本
2.PHP-FPM工作模式通常与Nginx结合使用,修改php-fpm.conf(找到自己的php-fpm.conf存放路径)
[root@linux-node1 ~]# vim /etc/php-fpm.d/www.conf #我php-fpm存放路径
pm.status_path = /phpfpm_status
3.修改nginx.conf的配置文件,通过Nginx访问PHP-FPM状态。
location ~ ^/(phpfpm_status)$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
4.访问测试phpfpm_status
[root@linux-node4 conf.d]# curl http://127.0.0.1/phpfpm_status[/code]pool: wwwprocess manager: dynamicstart time: 05/Jul/2016:15:30:56 +0800start since: 409accepted conn: 22listen queue: 0max listen queue: 0listen queue len: 128idle processes: 4active processes: 1total processes: 5max active processes: 2max children reached: 0#PHP-FPM状态解释:pool #fpm池名称,大多数为wwwprocess manager #进程管理方式dynamic或者staticstart time #启动日志,如果reload了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,那说明你的最大进程数量过小,可以适当调整。
4.编写php-fpm的Shell脚本(如果端口不一致,只需要修改脚本端口即可)[root@linux-node1 ~]# cd /etc/zabbix/scripts[root@linux-node1 scripts]# vim phpfpm_status.sh#!/bin/bash############################################################# $Name: phpfpm_status.sh# $Version: v1.0# $Function: Nginx Status# $Author: xuliangwei# $organization: www.xuliangwei.com# $Create Date: 2016-06-23# $Description: Monitor Nginx Service Status############################################################PHPFPM_COMMAND=$1PHPFPM_PORT=80 #根据监听不同端口进行调整start_since(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^start since:/ {print $NF}'}accepted_conn(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^accepted conn:/ {print $NF}'}listen_queue(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^listen queue:/ {print $NF}'}max_listen_queue(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^max listen queue:/ {print $NF}'}listen_queue_len(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^listen queue len:/ {print $NF}'}idle_processes(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^idle processes:/ {print $NF}'}active_processes(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^active processes:/ {print $NF}'}total_processes(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^total processes:/ {print $NF}'}max_active_processes(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^max active processes:/ {print $NF}'}max_children_reached(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^max children reached:/ {print $NF}'}slow_requests(){/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/phpfpm_status" |awk '/^slow requests:/ {print $NF}'}case $PHPFPM_COMMAND instart_since)start_since;;;accepted_conn)accepted_conn;;;listen_queue)listen_queue;;;max_listen_queue)max_listen_queue;;;listen_queue_len)listen_queue_len;;;idle_processes)idle_processes;;;active_processes)active_processes;;;total_processes)total_processes;;;max_active_processes)max_active_processes;;;max_children_reached)max_children_reached;;;slow_requests)slow_requests;;;*)echo $"USAGE:$0 {start_since|accepted_conn|listen_queue|max_listen_queue|listen_queue_len|idle_processes|active_processes|total_processes|max_active_processes|max_children_reached}"esac
给脚本添加执行权限[root@linux-node1 scripts]# chmod +x phpfpm_status.sh
5.key的phpfpm_status.conf的子配置文件如下:[root@linux-node1 ~]# cat /etc/zabbix/zabbix_agentd.d/phpfpm_status.confUserParameter=phpfpm_status[*],/bin/bash /etc/zabbix/scripts/phpfpm_status.sh "$1"
6.重启zabbix-agent[root@linux-node1 ~]# systemctl restart zabbix-agent
7.测试一定使用Zabbix_get来获取值[root@linux-node1 zabbix_agentd.d]# zabbix_get -s 192.168.90.11 -k phpfpm_status[accepted_conn]45
8.展示所有Key(记得将模板关联主机)如图4-5
9.查看图形,如图4-4(图形自定义)
Zabbix应用监控系列之PHP-FPM状态监控
标签:
zabbix,应用监控
原文链接:http://www.xuliangwei.com/xubusi/679.html
相关文章推荐
- zabbix监控nginx、php-fpm的状态
- zabbix监控phpfpm
- zabbix监控php-fpm性能状态
- 开启nginx和php-fpm的status状态监控
- zabbix监控redis、mysql状态、php-fpm性能状态
- zabbix监控nginx、php-fpm的状态
- zabbix监控php-fpm的性能
- Zabbix监控php-fpm status
- zabbix系列(八)zabbix添加对web页面url的状态监控
- 使用zabbix监控nginx和php-fpm性能
- Zabbix监控Memcached PHP-FPM Tomcat Nginx MySQL 网站日志
- 开启php-fpm和nginx状态监控
- LNMP系列——Php-fpm生产环境配置
- zabbix 监控phpfpm_status
- zabbix 监控php-fpm 性能
- Zabbix监控Nginx 和PHP-FPM状态
- Nginx系列(五. 将php-fpm注册为服务)
- zabbix监控php-fpm性能状态
- zabbix实战--Php-fpm监控详解
- zabbix3.2学习笔记(六):自定义监控nginx+php-fpm status