Zabbix监控php-fpm

php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。 为了后续的zabbix监控,我们需要先了解php-fpm状态页是怎么回事。

启用php-fpm状态功能及Nginx配置
cat  /usr/local/php-5.5.10/etc/php-fpm.conf | grep status_path pm.status_path = /status
或者 /etc/php-fpm.d/www.conf 默认注释 删除即可
默认情况下为/status,当然也可以改成其他的,例如/qxfell_status等等。
 
  location ~ ^/(status|ping)$
     {
         include fastcgi_params;
         fastcgi_pass 127.0.0.1:9000;
         fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
     }
 
重启Nginx和php-fpn 用crul查看获取状态

curl http://192.168.242.110/status

pool:                 www
process manager:      dynamic
start time:           01/Apr/2017:00:58:44 +0800
start since:          1976
accepted conn:        516
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       7
active processes:     1
total processes:      8
max active processes: 6
max children reached: 0
 
php-fpm status详解
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,缓慢请求的数量

监控php-fpm脚本

vim  /etc/zabbix/alertscripts

#!/bin/bash
 
listenqueue(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "listen queue:"|grep -vE "len|max"|awk '{print$3}'
}
 
listenqueuelen(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "listen queue len" |awk '{print$4}'
}
 
idle(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "idle processes" |awk '{print$3}'
}
active(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "active" |awk '{print$3}'|grep -v "process"
}
total(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "total processes" |awk '{print$3}'
}
 
mactive(){
 
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "max active processes:" |awk '{print$4}'
}
 
since(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "start since: " |awk '{print$3}'
}
 
conn(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "accepted conn" |awk '{print$3}'
}
 
reached(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "max children reached" |awk '{print$4}'
}
requests(){
        wget --quiet -O - http://127.0.0.1:80/status?auto |grep "slow requests" |awk '{print$3}'
}
$1
将脚本文件定义到agentd配置中
#vim /etc/zabbix/zabbix_agentd.conf

UserParameter=idle.processe,/etc/zabbix/alertscripts/php-fpm_status.sh idle
UserParameter=total.processes,/etc/zabbix/alertscripts/php-fpm_status.sh total
UserParameter=active.processes,/etc/zabbix/alertscripts/php-fpm_status.sh active
UserParameter=max.active.processes,/etc/zabbix/alertscripts/php-fpm_status.sh mactive
UserParameter=listen.queue.len,/etc/zabbix/alertscripts/php-fpm_status.sh listenqueuelen
UserParameter=listen.queue,/etc/zabbix/alertscripts/php-fpm_status.sh listenqueue
UserParameter=start.since,/etc/zabbix/alertscripts/php-fpm_status.sh since
UserParameter=accepted.conn,/etc/zabbix/alertscripts/php-fpm_status.sh conn
UserParameter=max.children.reached,/etc/zabbix/alertscripts/php-fpm_status.sh reached
UserParameter=slow.requests,/etc/zabbix/alertscripts/php-fpm_status.sh requests

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Felix的技术分享

Stetho的通信原理

3143
来自专栏Android开发小工

你真的知道APP缓存目录的内幕吗

在使用外部存储执行任何工作之前,应始终调用 getExternalStorageState() 以检查介质是否可用。介质可能已装载到计算机,处于缺失、只读或其他...

1114
来自专栏文大师的新世界

8. 遇到不可抗力的自然灾害

之前提到过尽量不要改名,涉及到的改动比较大,会遇到各种不知名错误,趁着本次改动详细记录一下:

673
来自专栏linux系统运维

原 添加自定义监控项目,配置邮件告警,测

2053
来自专栏简书专栏

利用Python发送email

引入smtplib和email.mime.text.MIMEText两个库可以完成发送邮件的功能 代码逻辑顺序:初始化邮箱服务——>使用用户名和密码登录邮箱—...

1072
来自专栏破晓之歌

python使用smtplib和MIMEText发送邮件

1.使用Python来操作邮箱:https://blog.csdn.net/qq_38059635/article/details/81569081

1792
来自专栏北京马哥教育

你所不知道的linux匿名管道知识

豌豆贴心提醒,本文阅读时间5分钟 相信很多在linux平台工作的童鞋, 都很熟悉管道符 '|', 通过它, 我们能够很灵活的将几种不同的命令协同起来完成一件任...

3085
来自专栏用户3030674的专栏

Android文件各种存储路径的比较

应用内部存储空间(数据文件私有)文件存储到这个路径下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。 需要注意的是,这个文件的目录和应用的存储位...

2751
来自专栏云计算教程系列

如何在FreeBSD 10.1上使用Sendmail通过外部SMTP服务发送电子邮件

设置新的Web服务器时最常见的需求之一是发送电子邮件。最安全,最简单的方法是将服务器连接到SendGrid或Amazon SES等邮件服务。使用外部服务将帮助您...

2000
来自专栏linux运维学习

linux学习第六十二篇:添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理

添加自定义监控项目 需求:监控某台web的80端口连接数,并出图 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现 对于第一步,需要到客...

31810

扫码关注云+社区

领取腾讯云代金券