广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >Prometheus监控PHP-FPM
  • 771
分享到

Prometheus监控PHP-FPM

PrometheusPHPFPM 2023-01-31 08:01:39 771人浏览 薄情痞子
摘要

启用PHP-fpm状态功能php-fpm和Nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。为了后续的prometheus监控,我们需要先了解php-fpm状态页是怎么回事。在上一篇文章中,已经

启用PHP-fpm状态功能

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

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

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

pm.status_path = /fpm_status

 

nginx配置

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

    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状态页面

Http://192.168.31.34/fpm_status

效果如下:

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,缓慢请求的数量

 

封装Docker

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

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

 

下载php-fpm-exporter

https://GitHub.com/bakins/php-fpm-exporter/releases

下载二进制文件

1.png

 

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

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

 

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

./
├── dockerfile
├── php-fpm-exporter.linux.amd64
└── run.sh

说明:

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

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

 

dockerfile

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

#!/bin/sh

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

生成镜像

docker build -t php-fpm-exporter:v1 .

运行镜像

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

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

http://192.168.31.34:9191/metrics

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

  - job_name: PHP-FPM
    static_configs:      - targets: ['192.168.31.34:9190']
        labels:
          instance: localhost

 

访问targets

1.png

 

 确保状态为UP

 

模板地址如下:

https://grafana.com/dashboards/3901

 

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

1.png

 

 

 

本文参考链接:

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


--结束END--

本文标题: Prometheus监控PHP-FPM

本文链接: https://www.lsjlt.com/news/193702.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作