Zabbix5.0版本(监控Nginx+PHP服务状态信息)
目录
1.监控Nginx服务状态信息
(1)通过Nginx监控模块,监控Nginx的7种状态
(2)开启Nginx状态模块
(3)配置监控项
(4)创建模板
(5)用默认键值添加Nginx-status端口监控项,并配置触发器
(6)基于模板创建图形
(7)模板创建完毕后关联被监控的主机
2.监控PHP服务状态信息
(1)安装PHP服务配置
(2)配置PHP状态信息
(3)修改Nginx配置文件
(4)自定义监控项
(5)创建自定义PHP模板
(6)关联模板到监控主机
(7)测试PHP访问
这篇文章继续给大家介绍zabbix监控,监控Nginx、PHP等服务,其实非常简单,难点在于如何去取这个值,包括监控业务,难点在于思路是否清晰,思维是否活跃,如何去进行判断是否有这个业务,并且业务正常运行。
1.监控Nginx服务状态信息
(1)通过Nginx监控模块,监控Nginx的7种状态
Nginx 的状态模块展示了七种不同的状态(四种计数器和三种状态)。以下是这七种状态的含义:
1. active:当前 Nginx 正在处理的连接数,包括等待请求处理或正在响应请求的连接数。
2. accepts:Nginx 启动后已经接受的连接总数。
3. handled:Nginx 工作进程已成功处理的连接总数。与 accepts 计数器不同,此计数器可能会多个小于 accepts 数量,在某些情况下,客户端可能已经断开了连接而无法正常处理。
4. requests:已经接收到、处理并响应的请求数量,该值通常应与 handled 值相等。
5. reading:当前正在读取客户端请求头部字段的连接数。
6. writing:当前正在向客户端发送响应数据的连接数。
7. waiting:空闲 keep-alive 连接,既没有读也没有写。可以处理下一个请求的连接。
通过理解这些状态可以帮助我们了解 Nginx 正在处理哪些连接,并且在调试和优化性能时非常有用。 当 active 连接数随着来自客户端的请求增加而增加时,可能需要考虑优化配置以确保足够的性能水平和稳定性。
(2)开启Nginx状态模块
[root@Web01 ~]# cat /etc/nginx/conf.d/status.conf
server {listen 88;location /nginx_status {stub_status;}
}
[root@Web01 ~]# systemctl restart nginx
(3)配置监控项
[root@Web01 ~]# curl -s 127.0.0.1:88/nginx_status
Active connections: 1
server accepts handled requests4 4 3
Reading: 0 Writing: 1 Waiting: 0
用awk以此取值,并设置为key
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx.connections,curl -s 127.0.0.1:88/nginx_status|awk 'NR==1{print $NF}'
UserParameter=nginx.accepts,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $1}'
UserParameter=nginx.handled,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $2}'
UserParameter=nginx.requests,curl -s 127.0.0.1:88/nginx_status|awk 'NR==3{print $3}'
UserParameter=nginx.Reading,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $2}'
UserParameter=nginx.Writing,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $4}'
UserParameter=nginx.Waiting,curl -s 127.0.0.1:88/nginx_status|awk 'NR==4{print $6}'
[root@Web01 ~]# systemctl restart zabbix-agent.service
测试取值
[root@Zabbix ~]# zabbix_get -s 172.16.1.7 -k nginx.connections
1
(4)创建模板
基于模板创建监控项,也可以先添加监控项在复制到模板
其他六项也同理,不再截图
(5)用默认键值添加Nginx-status端口监控项,并配置触发器
配置触发器
(6)基于模板创建图形
(7)模板创建完毕后关联被监控的主机
Web02同理
2.监控PHP服务状态信息
(1)安装PHP服务配置
上传PHP RPM包,安装
(2)配置PHP状态信息
[root@Web01 ~]# cat /etc/php-fpm.d/www.conf|grep pm.status_path
pm.status_path = /status
[root@Web01 ~]# systemctl restart php-fpm
(3)修改Nginx配置文件
[root@Web01 ~]# cat /etc/nginx/conf.d/status.conf
server {listen 88;location /nginx_status {stub_status;}location /status {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
[root@Web01 ~]# systemctl restart nginx
[root@Web01 ~]# curl 127.0.0.1:88/status
pool: www #pool的名称
process manager: dynamic #进程管理方式,现今大多都为dynamic,不要使用static
start time: 16/May/2023:21:30:31 +0800 #php-fpm上次启动的时间
start since: 133 #php-fpm已运行了多少秒
accepted conn: 1 #pool接受到的请求数
listen queue: 0 #处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数
max listen queue: 0 #从php-fpm启动到现在处于等待连接的最大数量
listen queue len: 128 #处于等待连接队列的套接字大小
idle processes: 4 #处于空闲状态的进程数
active processes: 1 #处于活动状态的进程数
total processes: 5 #进程总数
max active processes: 1 #从php-fpm启动到现在最多有几个进程处于活动状态
max children reached: 0 #当php-fpm试图启动更多的children进程时,却达到了进程数的限制,达到一次记录一次,如果不为0,需要增加php-fpm pool进程的最大数
slow requests: 0 #当启用了php-fpm slow-log功能时,如果出现了php-fpm慢请求,这个计数器会增加,一般不当的mysql查询会触发这个值
(4)自定义监控项
[root@Web01 ~]# cat /etc/zabbix/zabbix_agentd.d/php.conf
UserParameter=fpm.accepted,curl -s 127.0.0.1:88/status|grep accepted|awk '{print $NF}'
UserParameter=fpm.idle,curl -s 127.0.0.1:88/status|grep idle|awk '{print $NF}'
UserParameter=fpm.active,curl -s 127.0.0.1:88/status|grep ^active|awk '{print $NF}'
UserParameter=fpm.total,curl -s 127.0.0.1:88/status|grep total|awk '{print $NF}'
UserParameter=fpm.children,curl -s 127.0.0.1:88/status|grep children|awk '{print $NF}'
[root@Web01 ~]# systemctl restart zabbix-agent
[root@Web01 ~]# zabbix_agentd -p | grep ^fpm #客户端查看能否正常获取值
zabbix_agentd [7902]: Warning: EnableRemoteCommands parameter is deprecated, use AllowKey=system.run[*] or DenyKey=system.run[*] instead
fpm.accepted [t|56]
fpm.idle [t|5]
fpm.active [t|1]
fpm.total [t|6]
fpm.children [t|0][root@Zabbix ~]# zabbix_get -s 172.16.1.7 -k fpm.accepted #服务端查看能否正常获取客户端的值
62
(5)创建自定义PHP模板
基于模板添加监控项
依次添加其他配置项,除自定义的外再多添加个端口监控,zabbix自带的
基于模板配置触发器
3分钟之内受到限制次数的最大数等于5则报警
基于模板配置图形
(6)关联模板到监控主机
(7)测试PHP访问
[root@Web02 ~]# for i in `seq 100`;do ab -n2000 -c20 127.0.0.1:88/status;done
发现fpm连接数上涨
相关文章:

Zabbix5.0版本(监控Nginx+PHP服务状态信息)
目录 1.监控Nginx服务状态信息 (1)通过Nginx监控模块,监控Nginx的7种状态 (2)开启Nginx状态模块 (3)配置监控项 (4)创建模板 (5)用默认键值…...
C# 设计模式概况
什么是设计模式 大家熟知的GOF23种设计模式,源自《Design Patterns: Elements of Reusable Object-Oriented Software》一书,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著,四人组Gang of Four简称GOF。总结了在面向…...

Nginx 配置 SSL(HTTPS)详解
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。 随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…...

论文解读之Generative Dense Retrieval: Memory Can Be a Burden
本次论文解读,博主带来生成式稠密检索:记忆可能成为一种负担的论文分享 一、简介 生成式检索根据给定的查询,自回归地检索相关的文档标识符,在小规模的文档库中表现不错,通过使用模型参数记忆文档库,生成…...

RTC:实时时钟
RTC:实时时钟 1、实时时钟2、闹钟中断3、秒中断4、输出功能5、BKP的读写6、BKP的侵入事件 1、实时时钟 ①RTC.c #include "RTC.h"/*** brief:RTC初始化函数*/ RCC_PeriphCLKInitTypeDef RTCPeriphClkInit; //RTC时钟配置结构体 RTC_HandleT…...

mqtt python rtsp拉流图传测试
GitHub - robmarkcole/mqtt-camera-streamer: Stream images from a connected camera over MQTT, view using Streamlit, record to file and sqlite 用这个项目,按照readme配置,把config里面的ip配置成接收端的ip地址。 该装的包装完之后,…...

win32汇编环境,对话框程序中通过资源显示bmp图像
;运行效果 ;win32汇编环境,对话框程序中通过资源显示bmp图像 ;通过资源的方式,会把图像固定在exe文件里,会变大。通过读取文件的方式,没有固定在exe文件里,也可以随时换图像文件,所以exe文件较小 ;直接抄进RadAsm可编译…...
《探索人工智能的多元学派:符号主义、连接主义与行为主义》
在人工智能发展的进程中,不同学派从各自的角度诠释着智能的本质。其中符号主义、连接主义和行为主义学派占据着重要地位,它们以独特的方式推动着人工智能的发展。 符号主义学派:逻辑推理的核心 符号主义学派认为人工智能源于对逻辑符号的处…...
2024年终总结及计划
24年收获不少,早就想总结下,但是有的问题不想去思考,也不想去面对,就晚了几天,趁着加班总结反思下。 一、计划完成情况 1、生活 ①运动:继续坚持每周慢跑15公里,这是必须要做的。另外&#x…...

数据挖掘——关联规则挖掘
数据挖掘——关联数据挖掘 关联数据挖掘关联规则关联规则挖掘问题:具体挖掘过程Apriori 产生关联规则 关联数据挖掘 关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。 关联规则反映一个事物与…...

JVM实战—9.线上FGC的几种案例
大纲 1.如何优化每秒十万QPS的社交APP的JVM性能(增加S区大小 优化内存碎片) 2.如何对垂直电商APP后台系统的FGC进行深度优化(定制JVM参数模版) 3.不合理设置JVM参数可能导致频繁FGC(优化反射的软引用被每次YGC回收) 4.线上系统每天数十次FGC导致频繁卡顿的优化(大对象问题…...
STM32-BKP备份寄存器RTC实时时钟
一、原理 Unix: 一些系统是使用32bit有符号数存储,实际范围为-2,147,483,648到2,147,483,647即~ 经过计算int32数据会在2038年1月19日溢出,可以看到转换的为北京时间。 STM32的时间戳为无符号时间戳。 我们需要把秒计数器的时间通过计算…...
HTML-文本标签
历史上,网页的主要功能是文本展示。所以,HTML 提供了大量的文本处理标签。 1.<div> <div>是一个通用标签,表示一个区块(division)。它没有语义,如果网页需要一个块级元素容器,又没…...

香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录
1 说明 我依照官方手册编译单独编译linux内核,安装后重启出现内核启动失败的问题,编译和安装步骤如下:# 1. 克隆源码 git clone --depth1 -b orange-pi-6.1-rk35xx https://github.com/orangepi-xunlong/linux-orangepi# 2 配置源码 make rockchip_linu…...
嵌入式应用软件开发中C语言方向面试题
嵌入式应用软件开发中C语言方向面试题随笔 前言一、C语言基础二、嵌入式开发相关三、硬件相关知识五、实际编程问题前言 做嵌入式开发这么多年了,简单记录下C语言方向常见面试题,这里是应用软件方向的。 一、C语言基础 C语言的指针与数组的区别是什么?指针:指针是一个变量…...
linux 系统配置ip
最常见的配置方法是通过 DHCP 获取动态 IP 地址,或者手动配置一个静态 IP 地址。下面我将详细说明这两种常见的配置方法。 通过 DHCP 自动获取 IP 地址 如果你的开发板连接到网络(比如通过网线或者 Wi-Fi),并且网络环境支持 DHCP…...

低代码开发:开启企业数智化转型“快捷键”
一、低代码开发浪潮来袭,企业转型正当时 在当今数字化飞速发展的时代,低代码开发已如汹涌浪潮,席卷全球。从国际市场来看,诸多企业巨头纷纷布局低代码领域,像微软的 PowerApps、OutSystems 等平台,凭借强大…...
Tailwind CSS 实战:性能优化最佳实践
在现代网页开发中,性能优化就像是一场精心策划的马拉松。记得在一个电商项目中,我们通过一系列的性能优化措施,让页面加载时间减少了 60%,转化率提升了 25%。今天,我想和大家分享如何使用 Tailwind CSS 进行性能优化。 优化理念 性能优化就像是在打磨一块璞玉。我们需要通过各…...

[redux] useDispatch的两种用法
先重写2个方法先, 方便ts类型推导,如果你看不懂为什么这么写, 先看我这篇 [redux] ts声明useSelector和useDispatch-CSDN博客 export type RootState ReturnType<typeof store.getState>; export type AppDispatch typeof store.dispatch; export const useAppDispat…...

Postgresql 命令还原数据库
因为PgAdmin打不开,但是数据库已经安装成功了,这里借助Pg命令来还原数据库 C:\Program Files\PostgreSQL\15\bin\psql.exe #链接数据库 psql -U postgres -p 5432#创建数据库 CREATE DATABASE "数据库名称"WITHOWNER postgresENCODING UTF8…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...