zabbix监控php-status和进程资源使用率

简介:

入职以后,领导让我着手zabbix监控的部署和具体的维护。监控php首先就是一个挺重要的事情了。zabbix监控php可以通过php自带的一个status功能来监控,需要在配置文件里面开启,同时在nginx里面配置php status可以访问

1.php-fpm 开启status

1
2
grep  pm.status_path  /usr/local/php/etc/php-fpm .conf
pm.status_path =  /php-fpm-status

默认情况下为/status,当然也可以改成/phpfpm_status等,我这里是改成/php-fpm-status

2.nginx配置

1
2
3
4
5
6
7
8
9
server {
         listen 80;
         server_name 127.0.0.1;
         location  /phpfpm_status  {
                 fastcgi_pass  127.0.0.1:9000;
                 include fastcgi_params;
                 fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
         }
}

3.php status详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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,缓慢请求的数量

4.添加zabbix_agent 配置

1
2
3
4
5
6
[root@localhost zabbix_agentd.conf.d] # cat check_php_status.conf 
UserParameter=php-fpm.status[*], /etc/zabbix/alertscripts/php_status .sh  $1
UserParameter=php_status, ps  -ef |  grep  php-fpm |  awk  '{ print $9}'  |   grep  master  |  wc  -l
UserParameter=process.php.memory, /home/hckjS213/zabbix/etc/script/processstatus .sh phpmem
UserParameter=process.php.cpu, /home/hckjS213/zabbix/etc/script/processstatus .sh phpcpu
UserParameter=process.php.num, /home/hckjS213/zabbix/etc/script/processstatus .sh phpnum


5.编写php监控脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
CURL=` which  curl`
function  idle {
   $CURL  "http://127.0.0.1/php-fpm-status"  2> /dev/null |  grep  -w  '^idle processes:'  |  awk   '{print $3}'
}
function  total {
   $CURL  "http://127.0.0.1/php-fpm-status"  2> /dev/null |  grep  -w  '^total processes:'  |   awk   '{print $3}'
}
function  active {
   $CURL  "http://127.0.0.1/php-fpm-status"  2> /dev/null |  grep  -w  '^active processes:'  |  awk  '{print $3}'
}
function  listen_queue {
   $CURL  "http://127.0.0.1/php-fpm-status"  2> /dev/null |  grep  -w  "^listen queue:"  |  awk   '{print $3}'
}
function  slow_requests {
   output=` $CURL  "http://127.0.0.1/php-fpm-status"  2> /dev/null |  grep  -w  "^slow requests:" |  awk   '{print $3}' `
if  [  "$output"  ==  ""  ]; then
echo  0
else
echo  $output
fi
   
        }
$1

php进程资源使用率脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
#chck for php and sphinx used cpu and memory
phpmem(){
     ps  aux| grep  "php" | grep  - v  "grep" | grep  - v  "processstatus.sh" | awk  '{sum+=$6}; END{print sum}'
}
phpcpu(){
     ps  aux| grep  "php" | grep  - v  "grep" | grep  - v  "processstatus.sh" | awk  '{sum+=$3}; END{print sum}'
}
phpnum(){
     ps  aux| grep  "php" | grep  - v  "grep" | grep  - v  "processstatus.sh" |  wc  -l
}
case  "$1"  in
phpmem)
phpmem
;;
phpcpu)
phpcpu
;;
phpnum)
phpnum
;;
*)
echo  "Usage: $0 {phpmem|phpcpu|phpnum}"
esac

6.测试

1
2
3
4
[root@Zabbix_server ~] #/usr/local/zabbix/bin/zabbix_get  -s 192.168.50.119 -k php-fpm.status[active]
  1
[root@Zabbix_server ~] # zabbix_get  -s 10.144.164.53 -p 10050 -k process.php.memory   
2070688

wKiom1hSD6ezT2G_AACPEZHIDFc105.png

wKioL1hSD9qBT6MbAACPW9hXpLE213.png



本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1882958,如需转载请自行联系原作者

相关文章
|
监控 应用服务中间件 nginx
基于Zabbix的SLA监控体系构建与实践
本文由Zabbix社区专家褚凤彬分享,详解SLA在Zabbix中的应用。通过Trigger与Service联动,构建Web应用的多层级监控体系,并介绍SLA计算规则、维护期处理及升级注意事项,助力企业精准掌控服务可用性。
862 36
|
存储 监控 算法
电脑监控管理中的 C# 哈希表进程资源索引算法
哈希表凭借O(1)查询效率、动态增删性能及低内存开销,适配电脑监控系统对进程资源数据的实时索引需求。通过定制哈希函数与链地址法冲突解决,实现高效进程状态追踪与异常预警。
551 10
|
PHP
基于PHP开发的资源库系统源码
基于PHP开发的资源库系统源码
397 13
|
运维 监控 安全
【案例分享】中国通号卡斯柯公司:ZABBIX如何破解轨道交通监控难题
本文根据2023上海峰会上朱林贤的演讲整理,聚焦中国通号卡斯柯公司如何借助Zabbix实现轨道交通信号系统的智能化管理。作为中外合资企业,卡斯柯通过统一平台整合设备监控,大幅降低成本并提升灵活性,成功应用于国内外项目。文章探讨了传统监控系统的痛点、研发维护经验及国产化与开源技术挑战,为行业转型提供了宝贵启示。未来,开放协作将是推动轨道交通智能化发展的关键。
931 8
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
480 25
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
308 23
|
PHP Docker 容器
如何在宿主主机运行容器中的php守护进程
在Docker容器中同时运行多个程序(如Nginx+PHP+Ftp)时,需用`docker exec`命令启动额外服务。首先通过`php -v`查看PHP版本,再用`which php-fpm7.4`确认PHP安装路径,通常返回`/usr/sbin/php-fpm7.4`。最后直接运行该路径启动PHP-FPM服务,确保其正常工作。
581 14
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
501 22
|
存储 缓存 监控
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
407 9

推荐镜像

更多