zabbix实战--Php-fpm监控详解
参考视频教程:
http://www.roncoo.com/course/view/fb3050a5b34b42f39ccad83ebebc89c1
龙果运维平台开源地址:https://github.com/roncoo/roncoo-cmdb
Php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。下面我们先来了解一下详情也的情况:
一、打开php-fpm详情页面:
Vim php-fpm.conf
pm.status_path = /13/status
二、修改nginx配置文件,打开/13/status的监控页面:
server {
listen 80;
server_name www.checkweb.com;
location /
{
root /home/www/web/bbs.chekcwev.com;
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
重启nginx,php-fpm
三、访问页面状态(我是用内网做host解析的,不用外网访问):
四、几个监控项目解析:
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,缓慢请求的数量
五、有编程语言基础,或者用curl访问的同学可以用json的方式返回json数据:
curl http://www.checkweb.com/13/status?json
六、具体脚本:
[root@BJ-monitor-h-01 scripts]# cat php-fpm_status.py
#coding=utf-8
import urllib,urllib2
import json,sys
def data_result():
try:
data = urllib2.urlopen("http://www.checkweb.com/13/status?json").read()
except urllib2.HTTPError as err:
print str(err)
data_ret = json.loads(data)
return data_ret
def accepted_conn():
data = data_result()
return data["accepted conn"]
def listen_queue():
data = data_result()
return data["listen queue"]
def max_listen_queue():
data = data_result()
return data["max listen queue"]
def listen_queue_len():
data = data_result()
return data["listen queue len"]
def idle_processes():
data = data_result()
return data["idle processes"]
def active_processes():
data = data_result()
return data["active processes"]
def total_processes():
data = data_result()
return data["total processes"]
def max_active_processes():
data = data_result()
return data["max active processes"]
def max_children_reached():
data = data_result()
return data["max children reached"]
def slow_requests():
data = data_result()
return data["slow requests"]
if __name__== "__main__":
if sys.argv[1]=="accepted_conn":
print accepted_conn()
if sys.argv[1]=="listen_queue":
print listen_queue()
if sys.argv[1]=="max_listen_queue":
print max_listen_queue()
if sys.argv[1]=="listen_queue_len":
print listen_queue_len()
if sys.argv[1]=="idle_processes":
print idle_processes()
if sys.argv[1]=="active_processes":
print active_processes()
if sys.argv[1]=="total_processes":
print total_processes()
if sys.argv[1]=="max_active_processes":
print max_active_processes()
if sys.argv[1]=="max_children_reached":
print max_children_reached()
if sys.argv[1]=="slow_requests":
print slow_requests()
七、配置zabbix 客户端:
[root@BJ-monitor-h-01 zabbix_agentd.conf.d]# cat php-fpm.conf
UserParameter=php-fpm.status[*],/usr/bin/python /usr/local/zabbix/scripts/php-fpm_status.py $1
八、web添加item的key选型:
**到此对于php-fpm的监控已经完成了。
更多课程信息,请关注 龙果学院 官方网站http://www.roncoo.com/
或关注 龙果 微信公众号 RonCoo_com
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
spring 整合spring data jpa
一、导入依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> </dependency> 二、配置jpa <?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframewor...
- 下一篇
MySQL 慢查询日志
MySQL有一种日志,叫做慢查询日志,主要就是用来记录一些耗时的查询操 作。通过这个日志我们就可以分析出哪些的操作是影响性能的,我们需要对其 进行一些优化措施。 视频链接:http://www.roncoo.com/course/view/658088f6e77541f5835b61800314083e 查看开启状态 上面的截图是我在 windows 下安装的 MySQL5.7 版本,我们可以发现,这个版本是开启了慢查询的。我在 CentOS6.9 下采用 yum 的方式安装的 MySQL5.7 默认没有开启慢查询日志。不管默认有没有给我们开启,我们是需要了解慢查询日志是如何开启的,开启的方式也非常简单。找到 MySQL 的配置文件,Windows 下是 my.ini,Linux 下的是 my.cnf。进行如下配置就可以了。 slow-query-log=1 slow_query_log_file="mysql-slow.log" long_query_time=10 第一行是指定开启慢查询日志 第二行是指定慢查询日志的路径 第三行是指定查询时间大于多少...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果