当前位置: 首页 > news >正文

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地址。 该装的包装完之后&#xff0c…...

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-文本标签

历史上&#xff0c;网页的主要功能是文本展示。所以&#xff0c;HTML 提供了大量的文本处理标签。 1.<div> <div>是一个通用标签&#xff0c;表示一个区块&#xff08;division&#xff09;。它没有语义&#xff0c;如果网页需要一个块级元素容器&#xff0c;又没…...

香橙派5plus单独编译并安装linux内核无法启动的原因分析与解决记录

1 说明 我依照官方手册编译单独编译linux内核&#xff0c;安装后重启出现内核启动失败的问题,编译和安装步骤如下&#xff1a;# 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 地址&#xff0c;或者手动配置一个静态 IP 地址。下面我将详细说明这两种常见的配置方法。 通过 DHCP 自动获取 IP 地址 如果你的开发板连接到网络&#xff08;比如通过网线或者 Wi-Fi&#xff09;&#xff0c;并且网络环境支持 DHCP…...

低代码开发:开启企业数智化转型“快捷键”

一、低代码开发浪潮来袭&#xff0c;企业转型正当时 在当今数字化飞速发展的时代&#xff0c;低代码开发已如汹涌浪潮&#xff0c;席卷全球。从国际市场来看&#xff0c;诸多企业巨头纷纷布局低代码领域&#xff0c;像微软的 PowerApps、OutSystems 等平台&#xff0c;凭借强大…...

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打不开&#xff0c;但是数据库已经安装成功了&#xff0c;这里借助Pg命令来还原数据库 C:\Program Files\PostgreSQL\15\bin\psql.exe #链接数据库 psql -U postgres -p 5432#创建数据库 CREATE DATABASE "数据库名称"WITHOWNER postgresENCODING UTF8…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...