当前位置:网站首页>php-fpm自定义zabbix监控
php-fpm自定义zabbix监控
2022-07-20 23:18:00 【半吊子炼全栈】
自定义php-fpm zabbix监控模板
根据以上实验
在设备1、设备2基础上
设备1 192.168.70.10 zabbix-server
设备2 192.168.70.20 zabbix-agent
设备2:
安装php-rpm服务
[[email protected]]# yum -y install php-fpm
修改php-fpm配置文件开启状态页面功能(搜索:status)
[[email protected]]# vim /etc/php-fpm.d/www.conf
pm.status_path = /php_status #取消注释并改名php_status
启动php-fpm
[[email protected]]# systemctl start php-fpm
设置开机自启
[[email protected]]#systemctl enable php-fpm
修改nginx配置文件指定php配置 (Ctrl+v 下滑 出现可视块 取消注释)
[[email protected]]#vim /etc/nginx/conf.d/default.conf
……
location /php_status { #指定php页面 名称
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #配置环境
include fastcgi_params;
}
重启nginx
[[email protected]]#systemctl restart nginx
测试访问php状态页面:http://192.168.70.20/php_status
php-fpm status状态值详解
pool:fpm池子名称,大多数为www
process manager:进程管理方式,值:static,dynamic or ondemand
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功能时,如 果出现php-fpm慢请求这个计数器会增加,一般不当的Mysql查 询会触发这个值
自定义phpfpm监控项 (监控以上状态)
[[email protected] script]# vim/etc/zabbix/zabbix_agentd.d/phpfpm_status.conf UserParameter=phpfpm_status[*],/bin/bash /etc/zabbix/script/phpfpm_status.sh "$1"
上传脚本到/etc/zabbix/script路径并添加执行权限
[[email protected] script]#/etc/zabbix/script
[[email protected] script]#ls
phpfpm_status.sh
[[email protected] script]# cat phpfpm_status.sh
#!/bin/bash
PHPFPM_COMMAND=$1
#根据监听不同端口进行调整
PHPFPM_PORT=80
start_since(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^start since:/ {print $NF}'
}
accepted_conn(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^accepted conn:/ {print $NF}'
}
listen_queue(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^listen queue:/ {print $NF}'
}
max_listen_queue(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^max listen queue:/ {print $NF}'
}
listen_queue_len(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^listen queue len:/ {print $NF}'
}
idle_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^idle processes:/ {print $NF}'
}
active_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^active processes:/ {print $NF}'
}
total_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^total processes:/ {print $NF}'
}
max_active_processes(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^max active processes:/ {print $NF}'
}
max_children_reached(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^max children reached:/ {print $NF}'
}
slow_requests(){
/usr/bin/curl -s "http://127.0.0.1:"$PHPFPM_PORT"/php_status" |awk '/^slow requests:/ {print $NF}'
}
case $PHPFPM_COMMAND in
start_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
脚本授权
[[email protected] script]# chmod +x phpfpm_status.sh
重启zabbix agent服务监控项生效
[[email protected] script]# systemctl restart zabbix-agent
开启php-rpm
[[email protected] script]# systemctl restart php-fpm
查看服务端都
[[email protected] script]# netstat -ntlp
设备1
解析
[[email protected]]#vim /etc/hosts
192.168.70.20 host-20
zabbix server获取监控项数据
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[start_since] #php-fpm运行时 长
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[accepted_conn] #当前接收的连接数
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[listen_queue] #等待连接的请求数
[[email protected]]# zabbix_get -s 192.168.0.111 -k phpfpm_status[max_listen_queue] #请求等待队列最高 的数量
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[listen_queue_len] #socket等待队列 长度
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[idle_processes] #空闲进程数量 `在这里插入代码片`
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[active_processes] #活跃进程数量
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[total_processes] #总进程数量
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[max_active_processes] #最大的活跃 进程数量
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[max_children_reached] #进程最大数 量限制的次数
[[email protected]]#zabbix_get -s 192.168.0.111 -k phpfpm_status[slow_requests] #php-fpm慢 请求
配置 ——>模板——>创建模板
新创建模板内——>创建 应用集
在新模板——>创建 监控项
监控项名称:php-fpm运行时长
类型:客户端
键值:phpfpm_status[start_since](选择脚本里面的名称)
消息类型:数字(无正负) (涉及小数的为 浮点数)
更新间隔:1m (表示1分钟)
历史数据保留时长:7d(7天)
趋势存储时间:365d(365天)
应用集:PHP (我们新建的)
添加
脚本里面的其它数据依次添加
添加完成
完成
边栏推荐
- 华为无线设备漫游配置同一业务VLAN的AP间非快速漫游
- 线程间有哪些资源是不可以共享的?
- The performance of major mainstream programming languages is PK, and the results are unexpected
- cv demo
- ccs3-综合实验--样式表文件--设计一个菜单页面
- 【机器学习】如何在训练过程中挑选比较好的模型保存(pytorch)
- tars源码分析之23
- 简单工厂模式(一)在源码中的应用 | Calendar 日历 | 源码浅析 | 使用总结 | 建造者模式
- 华为无线设备配置基于ACL的报文过滤
- @RequestParam注解的正确使用方式
猜你喜欢
超简单的三管无感无刷三相电机驱动板
工作经验总结1
同城两中心自适应同步模式部署
二维数组中查找
华为无线设备配置基于ACL的报文过滤
Poor CDH cluster: there are 1855 blocks with insufficient replicas in the cluster. There are 1857 blocks in the cluster. Percentage of blocks with insufficient copies: 99.89%. Critical threshold: 40.0
Message queue rockermq development practice
mysql explain执行计划分析
Practice - how many threads are appropriate to create
OpenCV学习——ArUco模块
随机推荐
Monitor Deep Learning Training Progress
Huawei wireless devices are configured with fast roaming between APs of the same service VLAN
Configuring airtime scheduling for Huawei wireless devices
c#其它类中可以引用窗体控件
思科配置单臂路由的实际案例,很简单
SAP FIORI专题之二:用webide构建带导航栏的fiori
【机器学习】如何在训练过程中挑选比较好的模型保存(pytorch)
进程的五种状态
有了线程后,发生的变化
JS-添加方式(行内 内嵌 外部)
华为无线设备配置不同业务VLAN的AP间快速漫游
Opencv learning - aruco module
tars源码分析之21
[solution] VC6.0 cannot be debugged at breakpoints
235. 二叉搜索树的最近公共祖先-dfs法
静态通讯录的实现
Analysis of tars source code 26
MD编辑器 - Typora
如何用度量数据驱动代码评审的改善
数据分析demo