Ubuntu 20.04 上使用 Prometheus 和 Grafana 监控 PHP 8.0

news2024/9/23 15:31:31

本文方案监听php状态信息是采用php-php-exporter直接通过sock监控php-fpm信息。还可以通过nginx查询php状态信息从而监控,中间需要加上nginx配置。详见本文末尾

查找最新的 php-fpm_exporter 版本
访问 php-fpm_exporter 的 GitHub releases 页面 来查找最新版本。获取最新版本的下载链接,然后使用该链接。y也可以浏览器直接点击下载
在这里插入图片描述

  1. 下载最新版本的 php-fpm_exporter
    可以使用以下命令来下载:
wget https://github.com/bakins/php-fpm-exporter/releases/download/v0.6.1/php-fpm-exporter.linux.amd64 -O php-fpm-exporter
chmod +x php-fpm-exporter
sudo mv php-fpm-exporter /usr/local/bin/

使用 Systemd 创建一个服务文件:

sudo nano /etc/systemd/system/php-fpm-exporter.service

添加以下内容:

[Unit]
Description=PHP-FPM Exporter
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/php-fpm-exporter --addr="0.0.0.0:9253" --fastcgi=unix:///run/php/php8.0-fpm.sock
Restart=always

[Install]
WantedBy=multi-user.target

保存文件并退出,然后启动并启用服务:

sudo systemctl daemon-reload
sudo systemctl start php-fpm-exporter
sudo systemctl enable php-fpm-exporter

确保 php-fpm 的 status 页面在配置中被正确指向。可以通过编辑 /etc/php/8.0/fpm/pool.d/www.conf 启用:

sudo nano /etc/php/8.0/fpm/pool.d/www.conf

找到 pm.status_path 并确保它没有被注释掉,并设置为 /status:

pm.status_path = /status

重启prometheus

1.3. 检查 PHP-FPM Exporter 状态
验证 php-fpm-exporter 是否正常运行:

curl http://<PHP_Server_IP>:9253/metrics
  1. 配置 Prometheus 以监控 PHP-FPM
    在 Prometheus 主机上,编辑 Prometheus 配置文件 prometheus.yml,添加 PHP-FPM 主机的 php-fpm-exporter 作为新的抓取目标。

2.1. 编辑 Prometheus 配置文件

sudo nano /etc/prometheus/prometheus.yml

添加以下内容:

scrape_configs:
  - job_name: 'php-fpm'
    static_configs:
      - targets: ['<PHP_Server_IP>:9253']

保存文件并退出。

2.2. 重起加载 Prometheus 配置
在这里插入图片描述
在这里插入图片描述

导入 PHP-FPM 监控仪表盘id 11237或15096

在这里插入图片描述
错误解决:

root@iZ2zeinkufk6dnq6zhds1rZ:~# curl http://127.0.0.1:9253/metrics
# HELP phpfpm_scrape_failures_total Number of errors while scraping php_fpm
# TYPE phpfpm_scrape_failures_total counter
phpfpm_scrape_failures_total 1
# HELP phpfpm_up able to contact php-fpm
# TYPE phpfpm_up gauge
phpfpm_up 0

根据输出,php-fpm_exporter 未能成功抓取 PHP-FPM 的指标。这可以从以下两点看出:

phpfpm_scrape_failures_total 为 1:表示在抓取 php-fpm 时发生了一次错误。
phpfpm_up 为 0:表示无法联系到 php-fpm。
原因:
PHP-FPM 使用 Unix 套接字 (.sock 文件) 而不是网络端口 (127.0.0.1:9000),那么 php-fpm_exporter 需要配置为通过 FastCGI 协议连接到 PHP-FPM。可以通过以下步骤解决问题:
更新 Systemd 服务文件以使用 Unix 套接字:

bash
复制代码
sudo nano /etc/systemd/system/php-fpm-exporter.service
将 ExecStart 行修改为:

php-fpm-exporter --addr="127.0.0.1:9253" --fastcgi=unix:///run/php/php8.0-fpm.sock

保存文件并退出。

第二种方案

步骤 1:启用 PHP-FPM 状态页面
修改 PHP-FPM 池配置文件:

打开 PHP-FPM 的池配置文件。默认情况下,这些配置文件位于 /etc/php/8.0/fpm/pool.d/ 目录中(根据 PHP 版本不同,路径可能会有所不同)。

sudo nano /etc/php/8.0/fpm/pool.d/www.conf

配置状态页面:

在配置文件中,找到并修改以下参数(如果没有这些参数,可以手动添加):

pm.status_path = /status

这行配置将启用 /status 路径来提供 PHP-FPM 的状态信息。
设置监听地址(可选):

确保 PHP-FPM 的监听配置可以通过 HTTP 访问。默认情况下,PHP-FPM 使用 Unix socket 来与 Web 服务器通信。如果您希望通过 TCP 端口访问,请更改 listen 参数,例如:

listen = 127.0.0.1:9000

通过这样配置,PHP-FPM 将通过 TCP 端口 9000 来监听来自 127.0.0.1 的请求。
重启 PHP-FPM 服务:

配置完成后,重启 PHP-FPM 服务以应用更改:

sudo systemctl restart php8.0-fpm

步骤 2:配置 Nginx 代理 PHP-FPM 状态页面
编辑 Nginx 配置文件:

打开 Nginx 配置文件(通常位于 /etc/nginx/sites-available/default 或 /etc/nginx/nginx.conf,具体路径可能因您的配置不同):
bash
复制代码
sudo nano /etc/nginx/sites-available/default
添加状态页面配置:

在 Nginx 配置中,添加一个新位置块来代理 PHP-FPM 的状态页面:

server {
    listen 80;
    server_name your_domain_or_ip;

    location /status {
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        allow 127.0.0.1;  # 仅允许本地主机访问
        deny all;          # 禁止其他所有访问
    }

    # 其他配置...
}

请确保状态页面仅对 Prometheus 和 php-fpm_exporter 所在的主机可见,以防止暴露敏感的 PHP-FPM 状态信息。
测试 Nginx 配置并重启服务:

sudo nginx -t
sudo systemctl restart nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2093932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx简单的安全性配置

文章目录 引言I Nginx简单的安全性配置禁止特定的HTTP方法限制URL长度禁止某些用户代理限制请求速率连接限制禁止访问某些文件类型II 常见的安全规则防御CC攻击User-Agent过滤GET-URL过滤GET-参数过滤POST过滤(sql注入、xss攻击 )引言 Nginx本身并不具备复杂的防火墙规则定制…

【电力电子】单相并网逆变器

摘要 单相并网逆变器是一种将直流电转换为单相交流电&#xff0c;并与电网同步输出的装置。它广泛应用于小型可再生能源系统&#xff0c;如光伏发电&#xff0c;确保产生的电能能够高效、安全地并入电网。本文探讨了单相并网逆变器的设计理论、控制策略以及其在不同负载条件下…

PAT--1002 写出这个数

题目描述 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10 100 。 输出格式&#xff1a; 在一行内输出 n 的各位数字…

深入探索C语言中的各种Sleep方法

引言 在程序设计中&#xff0c;有时需要让进程或线程暂停执行一段时间&#xff0c;这种需求可以通过使用 sleep 函数来实现。本文将详细介绍在 C 语言环境下可用的不同类型的 sleep 函数&#xff0c;包括它们的用途、参数以及注意事项&#xff0c;并提供一些示例代码。 目录 …

HTB-Responder(文件包含和哈希破解)

前言 各位师傅大家好&#xff0c;我是qmx_07,今天给大家讲解Responder靶场 渗透过程 信息搜集 服务器开放了80,5985端口尝试访问网站5985端口是一种远程管理协议 绑定域名 我们发现访问ip&#xff0c;进行了重定向跳转&#xff0c;需要绑定一下域名 echo "10.129.160…

麦穗检测计数-目标检测数据集(包括VOC格式、YOLO格式)

麦穗检测计数-目标检测数据集&#xff08;包括VOC格式、YOLO格式&#xff09; 数据集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1N9tGbcssxvSM1W71q2YbNA?pwd3nb3 提取码&#xff1a;3nb3 数据集信息介绍&#xff1a; 共有 3373张图像和一一对应的标注文件 标…

Python内存管理详解

Python是一种动态类型的语言&#xff0c;它提供了自动内存管理机制。这意味着开发者不需要手动管理内存的分配和释放&#xff0c;Python会自动处理这些细节。本文将深入探讨Python中的内存管理机制&#xff0c;包括对象的创建、垃圾回收以及一些最佳实践。 Python内存管理概述…

定制开发 AI 智能名片拓客微信小程序在内容营销中的应用与价值

摘要&#xff1a;本文探讨了不同类型的内容营销及其目标&#xff0c;分析了传统媒体与以社交媒体为主要发布平台的内容营销在效果衡量上的差异。引入定制开发 AI 智能名片拓客微信小程序&#xff0c;阐述其在内容营销中的作用&#xff0c;强调应以多维度视角衡量内容营销效果&a…

Python打发无聊时光:15.Python打开黑神话-八戒3D模型

一、装vtk库并下载3D模型 首先装vtk库&#xff0c;直接在终端中输入命令&#xff1a; pip install vtk 接着将下面网盘链接中的vtk模型下载下来&#xff1a; 链接: https://pan.baidu.com/s/11pEPr3URQ5oR2kkn7dBEsg?pwdfa6s 提取码: fa6s --来自百度网盘超级会员v5的分享…

zsh: command not found: ohpm - mac安装ohpm工具 - 鸿蒙开发

OHPM简介&#xff1a; OHPM CLI 是鸿蒙生态三方库的包管理工具&#xff0c;支持OpenHarmony共享包的发布、安装和依赖管理。安装开发工具DevEco Studio--自带了ohpm&#xff0c;所以无需单独下载ohpm ohpm使用指导官网地址&#xff1a; 文档中心 注意&#xff1a; ohpm命令…

初等数学几百年重大错误:N各元n的对应n+1的全体是N的真子集N+——百年病态集论的症结

黄小宁 数学图可是“离散”的点组成的点集N&#xff5b;0&#xff0c;1&#xff0c;2&#xff0c;…&#xff0c;n&#xff0c;…0&#xff5d;&#xff08;各数是点的坐标&#xff09;。设本文所说集合往往是元不少于两个的集。定义&#xff1a;若数&#xff08;点&#xff09…

微服务框架三

微服务 微服务技术栈 服务发现概念 服务发现两种方式 客户端发现 服务端服务发现 服务发现技术对比 Nacos架构图 基于dubbo nacos服务调用 Nacos核心源码解析 registery 具体实现在nacosServiceRegistery setbeat 返回clientBeatInterval

网络准入控制系统

当我们谈论网络准入控制系统时&#xff0c;我们谈论的并不是网络准入控制系统&#xff0c;而是安全&#xff0c;我们不能只囿于它表面的浮华而忘掉它的本质&#xff0c;记住&#xff0c;不管讨论什么&#xff0c;我们必须要有直达本质的能力。网络的本质就是安全。 网络准入控制…

在大语言模型中,生成文本的退出机制,受max_generate_tokens限制,并不是所有的问答都完整的跑完整个transformer模型

目录 在大语言模型中,生成文本的退出机制,受max_generate_tokens限制,并不是所有的问答都完整的跑完整个transformer模型 1. max_generate_tokens的作用 2. 退出机制与Transformer模型 3. 实际应用中的影响 4. 结论 在大语言模型中,生成文本的退出机制,受max_genera…

网站建设完成后, 做seo必须知道的专业知识之--权重

SEO的权重是指搜索引擎对网站的综合评估和信任程度&#xff0c;这直接影响到网站在搜索结果中的排名和流量。 权重越高&#xff0c;说明搜索引擎对网站的认可度越高&#xff0c;从而有助于提高网站的关键词排名和流量。虽然“百度权重”并非百度官方提出的指标&#xff0c;但这…

开学日,LabVIEW 助你踏上编程之路

九月一日&#xff0c;伴随着凉爽的秋风和崭新的课本&#xff0c;新学期正式拉开帷幕。对于许多工科学生而言&#xff0c;这不仅意味着新课程的开始&#xff0c;更是开启实验室研究和工程项目的大门。而在工程软件开发的世界里&#xff0c;LabVIEW 是一个不可忽视的存在&#xf…

微服务CI/CD实践(二)服务器先决软件安装

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决软件安装 微服务CI/CD实践&#xff08;三&#xff09;gitlab部署 微服务CI/CD实践&#xff08;四&#xff09;nexus3部…

每天五分钟计算机视觉:人脸识别网络FaceNet

本文重点 在前面的课程中,为了解决人脸识别的问题,我们学习了Siamese神经网络。本文我们学习另外一种人脸识别网络模型FaceNet。 论文 FaceNet: A Unified Embedding for Face Recognition and Clustering FaceNet概述 FaceNet是谷歌在CVPR 2015上提出的一种深度学习模型,…

ET6框架(九)Protobuf消息使用

文章目录 一、序列化和反序列化二、什么是Prototbuf&#xff1f;三、ET工程中的Proto&#xff1a;四、查看消息类型五、生成编译Proto2CS: 一、序列化和反序列化 序列化 &#xff1a; 将程序中的对象转化为字节序列的过程 反序列化 &#xff1a; 把字节回复为程序中的过程 在网…

可以根据手机的折叠状态改变播放音效:nova Flip 的妙趣音效

由于折叠机最基础的“可折叠”属性&#xff0c;导致折叠机的扬声器相对于人的位置来说会存在更多的变化&#xff0c;在不同的折叠状态下&#xff0c;听感方面可能就会大有不同。 nova Flip手机利用这一特性&#xff0c;首次根据折叠形态差异&#xff0c;自适应了不同形态的音效…