举一反三-自建zabbix监控php

news2024/11/18 15:24:35

php-fpm监控需要通过nginx服务。因此需要开启相关配置。

php-fpm如果是yum安装的,那么在/etc/php-fpm.d/www.config中编辑如下选项:

pm.status_path = /php_status

保存并退出编辑。重启php-fpm服务。

接下来编辑nginx配置项。编辑如下:

location ~ \.(php|phar)(/.*)?$|/php_status {

 ... ...

}

 红字部分是新增部分,如果之前php已经在nginx 中配置。

保存退出,并重启nginx服务。

使用curl命令看看php-fpm输出的状态,命令如下:

 curl http://127.0.0.1/php_status

注:命令运行在php和nginx运行的主机内。

从输出内容看,给出的状态值并不丰富。如果想要获得更丰富的数据,只需要稍作修改。如下:

 curl http://127.0.0.1/php_status?full

从图中,我们看到,除了之前的状态值,还输出了每个pid中运行时的一些状态。 

 看最后输出的部分,可以得知最后执行的内容就是我们刚才调取php-fpm状态的URI。

服务配置完毕,下一步是编写脚本。

这里给出一个脚本范例。

#!/bin/bash
php_status_fun(){
    NGINX_PORT=$1
    NGINX_COMMAND=$2
    php_active(){
             /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'active processes' |head -1 | awk '{print $3}'
                  }
    php_total(){
             /usr/bin/curl  "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'total processes' | awk '{print $3}'

        }
    php_max(){
             /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'max active processes' | awk  '{print $4}'
                   }
    php_children(){
             /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'max children reached' | awk '{print $4}'
                    }
    php_listen(){
             /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'listen queue len'| awk '{print $4}'
                   }
    php_maxlisten(){
             /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'max listen queue' | awk '{print $4}'
                   }
   php_accepted(){
             /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'accepted conn' | awk '{print $3}'
     }
             php_slow(){
            /usr/bin/curl "http://127.0.0.1:"$NGINX_PORT"/php_status" 2> /dev/null | grep 'slow requests' | awk '{print $3}'
                    }
   case $NGINX_COMMAND in 
                    active) 
                           php_active;
                           ;;
                    total) 
                           php_total;
                           ;;
                    maxactive)
                           php_max;
                           ;;
                    children)
                           php_children;
                           ;;
                    listen)
                           php_listen;
                           ;;
                    maxlisten)
                           php_maxlisten;
                           ;;
                    accepted)
                           php_accepted;
                           ;;
                    slow)
                        php_slow;
                            ;;
                    *)
                           echo "$NGINX_COMMAND"
                           ;;
   esac
}
main (){
        case $1 in
                php_status)
                        php_status_fun $2 $3;

                        ;;
                *)
                        echo $"Usage: $0 {php_status key}"
        esac
}
main $1 $2 $3

这个脚本与之前编写监控nginx服务的脚本类似。

下一步修改zabbix_agent.conf,添加如下:

UserParameter=php_status[*],/bin/bash /opt/scripts/php_status.sh $1 $2 $3

保存退出。登录zabbix管理平台,编辑模板以及item,graphs。

之前写过mysql监控制作模板、item、graphs。这里简化只给出一个item制作的截图示例。

 最后模板添加到主机内,大功告成。

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

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

相关文章

Linux下cal命令C/C++实现(显示日历信息)

大多数用户自然会将计算机上的日历视为GUI应用程序,或直接从桌面显示的东西。但也可以在Linux中使用cal命令通过命令行终端查看日历。 如果您通常使用Linux上的桌面环境,或者您来自Windows或MacOS操作系统,可能会认为这是一种过于复杂的日历…

RFID技术在固定资产管理中的作用

固定资产因具有数量庞大、分布广、变动频繁等特点造成管理难度较大,一直成为企业管理的一大重点。固定资产管理包括资产的新增、调拨、闲置、报废、维修、盘点等操作,让投入使用到报废退出使用的全过程进行全面的信息化管控。以往固定资产的一直由于管理…

AlexNet详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上,有需要的朋友可以康康✨ GitHub - tt-s-t/Deep-Learning: Store some of your own in-depth …

Python学习笔记——起步

Python 2 和 Python 3的区别 一、维护及版本更新不同 官方通知python2 2020开始已不再维护,python3的版本还在不断迭代更新 。 因为python2官方不再维护且python3的广泛使用,很多新的算法包、AI包等其他功能模块包都是基于python3开发的,p…

LaTeX使用方法

1.工具 1.生成表格:LaTeX Tables Editor 2.生成公式:Online LaTeX Equation Editor 、texmath demo、在线LaTeX公式编辑器-编辑器 2.技巧 1.插入图片: \begin{figure}[t] %t表示图片置顶,h表示指定位置,b表示置底…

条件分支if和else的使用详解

顺序结构没什么好讲的,就是从上到下的写代码,所以接下来,壹哥就直接带各位来学习分支结构里的条件分支。我们在前面说过,分支结构,或者叫做条件分支,其实有两种情况。一种是if...else...类型的条件分支&…

vue组件通信6种方式总结(常问知识点)

前言 在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的 Vuex 状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用 Vuex 往往会比较重,本文将系统的罗列出几种不使用 Vuex&#xff…

X.509证书详解

概述 X.509是公钥基础设施(PKI)的标准格式。X.509证书就是基于国际电信联盟(ITU)制定的X.509标准的数字证书。X.509证书主要用于识别互联网通信和计算机网络中的身份,保护数据传输安全。X.509证书无处不在&#xff0c…

Spring之底层架构核心概念-过滤器

文章目录1.excludeFilters:排除过滤器2.includeFilters:包含过滤器3.问题:spring为什么能通过是否有Component注解来判断是否需要去注册bean呢?3.1 看源码3.2 原因4.总结1.excludeFilters:排除过滤器 用excludeFilters排除UserService 这个类后&#xf…

nature级别图表:单细胞转录组细胞比例统计可视化函数

单细胞转录组细胞比例: 关于单细胞比例的计算和作图我们之前出过3期,单细胞比例的展示是很多单细胞文章必不可少的内容:跟着Cell学单细胞转录组分析(六):细胞比例计算及可视化 相信跟着学习的小伙伴已经掌握了。最近学习一篇《nature medici…

JavaScript 数组-概念,创建数组,遍历数组,新增元素

JavaScript 数组-概念,创建数组,遍历数组,新增元素 目录JavaScript 数组-概念,创建数组,遍历数组,新增元素1. 数组的概念2. 创建数组2.1 数组的创建方式2.2 利用 new 创建数组2.3 利用数组字面量创建数组2.…

模式分类识别 | BiLSTM双向长短期记忆神经网络数据多特征分类预测(Matlab完整程序)

模式分类识别 | BiLSTM双向长短期记忆神经网络数据多特征分类预测(Matlab完整程序) 目录 模式分类识别 | BiLSTM双向长短期记忆神经网络数据多特征分类预测(Matlab完整程序)分类结果基本介绍程序设计参考资料分类结果

深度学习实验(五)——循环神经网络编程

深度学习实验五:循环神经网络编程 本次实验练习使用torch.nn中的类设计一个循环神经网络进行MNIST图像分类。 在本次实验中,你要设计一个CNN,用于将282828 \times 282828的MNIST图像转换为MMDM\times M\times DMMD的特征图,将该特征图看作是…

我,做了两年程序员,存了巨款5000,你们拿什么跟我比?

🕐没错,标题所见,从21年1月份开始从事程序员工作也过了两年了,今年还是没有存到钱。 今年换了一份工作,四月份的时候,从惠州换到了广州工作,从制造业转行到了政务行业,工资涨了&…

Keithley 2604B数字源表-安泰测试

Keithley 2600B 系列系统 SMU 仪器是业界标准电流-电压源和测量解决方案,适用于高度自动化生产测试应用。 双通道和单通道型号都紧密集成一个精密电源、真正电流源、数字万用表和具有脉冲生成功能的电子负载。 另外,TSP? 技术可运行完整测试程序&#x…

多点双向重发布的应用

目录 1.拓扑图 2.实验思路 3.主要配置 4.测试 5.实验总结 1.拓扑图 2.实验思路 在配置完RIP和OSPF之后,在2,3号设备上进行多点的双向重发布由于在进行了多点的双向重发布之后,会出现大量的负载均衡,导致选路不佳的问题解决办…

前端工程师leetcode算法面试必备-二叉树深度广度遍历

一、前言 Medium 难度主要考察结合二叉树性质的 CRUD 操作,而这一切的基础都离不开遍历二叉树。 二叉树是图的子集,因而同样适用以下两种搜索思想: **DFS(深度优先搜索):**沿着根节点递归下去&#xff0c…

普通程序员怎么赚多份钱?解锁更多赚钱新姿势

在当下这个社会,学会如何make money很重要。 咱们是个俗人,赚钱才是社会生存的头等大事。这不是高山流水的世界,而是能力创造财富,对于程序员来说,更是如此。 作为程序员,我们有更多挣钱的姿势!…

通过一个测试项目了解EF CORE

首先用vs2019创建一个.net core项目 可以是控制台应用程序,也可以是asp.net core项目 如果你使用控制台应用程序, 则可以在Main方法中直接使用EF Core进行CRUD操作。这通常用于测试或开发时快速进行数据库操作。 如果你使用ASP.NET Core应用程序, 则可以在控制器中使用EF Cor…

低温超导系统中实现液氦温度准确控制的解决方案

摘要:针对目前两种典型低温超导测试系统中存在的液氦压力控制精度较差的问题,本文提出了相应的解决方案。解决方案分别采用了直接压力控制和流量控制两种技术手段和配套数控阀门,结合24位AD和16位DA的超高精度的PID真空压力控制器和压力传感器…