前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prometheus监控PHP-FPM

Prometheus监控PHP-FPM

作者头像
py3study
发布2020-05-27 10:12:12
1.9K0
发布2020-05-27 10:12:12
举报
文章被收录于专栏:python3python3

一、概述

启用php-fpm状态功能

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

在上一篇文章中,已经开启了php-fpm状态,链接 如下:

https://www.cnblogs.com/xiao987334176/p/12918413.html

代码语言:javascript
复制
pm.status_path = /fpm_status

nginx配置

上篇文章中,也对nginx默认主机添加了配置

代码语言:javascript
复制
    location ~ ^/(fpm_status|health)$ {
        fastcgi_pass 192.168.31.34:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

访问php-fpm状态页面

代码语言:javascript
复制
http://192.168.31.34/fpm_status

效果如下:

1.png
1.png

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-exporter

封装docker

由于在dockerhub里面找的一些php-fpm-exporter都不好使,docker如何使用都没有说明。

所以我决定自己封装一个docker

下载php-fpm-exporter

代码语言:javascript
复制
https://github.com/bakins/php-fpm-exporter/releases

下载二进制文件

1.png
1.png

注意:不要下载zip文件,需要自己手动用go环境编译。对于go语言不熟悉的人,会编译失败。

所以,下载已经编译好的文件,是比较稳妥的办法。

创建目录/opt/php-fpm-exporter,结构如下:

代码语言:javascript
复制
./
├── dockerfile
├── php-fpm-exporter.linux.amd64
└── run.sh

说明:

php-fpm-exporter.linux.amd64 就是我们下载的二进制文件

run.sh 就是php-fpm-exporter的启动命令。

dockerfile

代码语言:javascript
复制
FROM alpine:3.10
ADD php-fpm-exporter.linux.amd64 /php-fpm-exporter
ADD run.sh /
RUN chmod 755 /php-fpm-exporter /run.sh
EXPOSE 9190
ENTRYPOINT [ "/run.sh" ]

run.sh

代码语言:javascript
复制
#!/bin/sh

/php-fpm-exporter --addr 0.0.0.0:9190 --endpoint $endpoint

生成镜像

代码语言:javascript
复制
docker build -t php-fpm-exporter:v1 .

运行镜像

说明:这里只需要传入一个环境变量即可。确保url可以正常访问。

代码语言:javascript
复制
docker run -d -it --restart=always --name php-fpm-exporter -e endpoint=http://192.168.31.34/fpm_status -p 9190:9190 php-fpm-exporter:v1

访问metrics

代码语言:javascript
复制
http://192.168.31.34:9191/metrics

三、配置Prometheus

修改你的Prometheus配置文件,最后一行增加

代码语言:javascript
复制
  - job_name: PHP-FPM
    static_configs:      - targets: ['192.168.31.34:9190']
        labels:
          instance: localhost

访问targets

1.png
1.png

 确保状态为UP

四、grafana导入dashboards

模板地址如下:

https://grafana.com/dashboards/3901

等待一段时候后,效果如下:

1.png
1.png

本文参考链接:

https://blog.csdn.net/u012599988/article/details/103179946

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
    • 启用php-fpm状态功能
      • nginx配置
        • php-fpm status详解
        • 二、安装php-fpm-exporter
          • 封装docker
            • 下载php-fpm-exporter
          • 运行镜像
            • 访问metrics
            • 三、配置Prometheus
            • 四、grafana导入dashboards
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档