• 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

    效果如下:

    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

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

    下载二进制文件

    注意:不要下载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

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

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

    访问targets

     确保状态为UP

    四、grafana导入dashboards

    模板地址如下:

    https://grafana.com/dashboards/3901

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

    本文参考链接:

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

  • 相关阅读:
    数据结构中的知识
    Java中的小知识
    安装Linux虚拟机
    2.Two Sum
    1005. Maximize Sum Of Array After K Negations
    Leetcode刷题记录
    Markdown的使用笔记
    CCF历年试题总结
    在Linux上搭建Hadoop
    配置和使用连接池
  • 原文地址:https://www.cnblogs.com/xiao987334176/p/12923365.html
Copyright © 2020-2023  润新知