php-fpm
和nginx
一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。为了后续的Prometheus监控,我们需要先了解php-fpm状态页是怎么回事。
在上一篇文章中,已经开启了php-fpm状态,链接 如下:
https://www.cnblogs.com/xiao987334176/p/12918413.html
pm.status_path = /fpm_status
上篇文章中,也对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
效果如下:
由于在dockerhub里面找的一些php-fpm-exporter都不好使,docker如何使用都没有说明。
所以我决定自己封装一个docker
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
http://192.168.31.34:9191/metrics
修改你的Prometheus配置文件,最后一行增加
- job_name: PHP-FPM
static_configs: - targets: ['192.168.31.34:9190']
labels:
instance: localhost
访问targets
确保状态为UP
模板地址如下:
https://grafana.com/dashboards/3901
等待一段时候后,效果如下:
本文参考链接: