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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM