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,如需转载请自行联系原作者

相关文章
|
26天前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
3月前
|
监控 Linux 应用服务中间件
探索Linux中的`ps`命令:进程监控与分析的利器
探索Linux中的`ps`命令:进程监控与分析的利器
|
15天前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
27 2
zabbix agent集成percona监控MySQL的插件实战案例
|
2天前
|
监控 Ubuntu API
Python脚本监控Ubuntu系统进程内存的实现方式
通过这种方法,我们可以很容易地监控Ubuntu系统中进程的内存使用情况,对于性能分析和资源管理具有很大的帮助。这只是 `psutil`库功能的冰山一角,`psutil`还能够提供更多关于系统和进程的详细信息,强烈推荐进一步探索这个强大的库。
9 1
|
20天前
|
数据采集 监控 API
如何监控一个程序的运行情况,然后视情况将进程杀死并重启
这篇文章介绍了如何使用Python的psutil和subprocess库监控程序运行情况,并在程序异常时自动重启,包括多进程通信和使用日志文件进行断点重续的方法。
|
4月前
|
缓存 监控 调度
第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度
第六十一章 使用 ^PERFSAMPLE 监控进程 - 分析维度
35 0
|
1月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
55 0
|
3月前
|
SQL 监控 安全
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
代码审计-PHP原生开发篇&SQL注入&数据库监控&正则搜索&文件定位&静态分析
|
3月前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
50 0
Zabbix监控神通数据库教程
|
2月前
|
监控 关系型数据库 应用服务中间件
Linux zabbix监控 软件的安装
Linux zabbix监控 软件的安装

推荐镜像

更多