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 requests
 4 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连接数上涨 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java高频面试之SE-08

hello啊,各位观众姥爷们!!!本牛马baby今天又来了!哈哈哈哈哈嗝🐶 成员变量和局部变量的区别有哪些? 在 Java 中,成员变量和局部变量是两种不同类型的变量,它们在作用域…

Linux(Centos 7.6)命令行快捷键

Linux(Centos 7.6)操作系统一般都是使用命令行进行管理,如何能高效的进行命令编辑与执行,需要我们记住一些常见的命令,也需要连接一些常见快捷键的使用,常见快捷键如下: 快捷键快捷键说明tab命令行补齐ctrlr快速查找之…

Geoserver修行记-后端调用WMS/WMTS服务无找不到图层Could not find layer

项目场景 调用geoserver地图服务WMS,找不到图层 我在进行地图服务调用的时候,总是提示我找不多图层 Could not find layer,重点是这个图层我明明是定义了,发布了,且还能够正常查看图层的wms的样式,但是在调用后端调用…

ip属地的信息准确吗?ip归属地不准确怎么办

在数字化时代,IP属地信息成为了我们日常生活中不可或缺的一部分。在各大社交媒体平台上,IP属地信息都扮演着重要的角色。然而,随着技术的不断进步和网络的复杂性增加,IP属地信息的准确性问题也日益凸显。那么,IP属地信…

nginx高可用集群搭建

本文介绍nginx高可用集群的搭建。利用keepalived实时检查nginx进程是否存活、keepalived的虚拟ip技术,达到故障转移的目的。终端用户通过访问虚拟ip,感知不到实际发生的故障。架构图如下: 0、环境 Ubuntu:22.04.2 ltsnginx: 1.…

UE5材质节点Distance

Distance可以计算两个物体间的距离,可以用来做过渡效果 当相机和物体距离3000的时候,就会渐渐从蓝过渡到红色,除以500是为了平滑过渡

CS·GO搬砖流程详细版

说简单点,就是Steam买了然后BUFF上卖,或许大家都知道这点,但就是一些操作和细节问题没那么明白。我相信,你看完这篇文章以后,至少会有新的认知。 好吧,废话少说,直接上实操! 首先准…

【Cocos TypeScript 零基础 3.1】

目录 场景跳转 场景跳转 把新建好的TS文件与场景绑定 选中 场景 或 camera 拖进右边的 属性检查器 双击T文件,进入编辑 至于用什么IDE看个位朋友高兴 我这里有 VScode ,先用这个,老师也没有推荐 (老师也用的是这个) VScode UI 也有中文包,请自行上网搜索 打开创建的TS文件后…

分析服务器 systemctl 启动gozero项目报错的解决方案

### 分析 systemctl start beisen.service 报错 在 Linux 系统中,systemctl 是管理系统和服务的主要工具。当我们尝试重启某个服务时,如果服务启动失败,systemctl 会输出错误信息,帮助我们诊断和解决问题。 本文将通过一个实际的…

pd虚拟机 Parallels Desktop 20 for Mac 安装教程【支持M芯片】

文章目录 效果图一、下载软件二、安装运行⚠️注意事项:1、前往 系统设置–> 隐私与安全性 –> 完整磁盘访问权限,中允许终端:2、安装运行【ParallelsDesktop-20.1.2-55742.dmg】,运行【安装.app】3、将【Patch】文件夹拖到…

回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测 数据准备&#x…

JAVA创建绘图板JAVA构建主窗口鼠标拖动来绘制线条

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…

CSS层叠样式表

目标 能够说出什么是CSS能够使用CSS基础选择器能够设置字体样式能够设置文本样式能够说出CSS的三种引入方式能够使用Chrome调试工具调试样式 目录 CSS简介CSS基础选择器CSS字体属性CSS文本属性CSS的引入方式综合案例Chrome调试工具 1.1 HTML的局限性 说起HTML,…

Win32汇编学习笔记03.RadAsm和补丁

Win32汇编学习笔记03.RadAsm和补丁-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 扫雷游戏啊下补丁 在扫雷游戏中,点关闭弹出一个确认框,确认之后再关闭,取消就不关闭 首先第一步就是确认关闭按钮响应的位置,一般都是 WM_CLOSE 的消息 ,消息响应一般都在过…

深入Android架构(从线程到AIDL)_08 认识Android的主线程

目录 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程​编辑 UI线程的责任: 迅速处理UI事件 举例 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程 UI线程的责任: 迅速处理UI事…

4.CSS文本属性

4.1文本颜色 div { color:red; } 属性值预定义的颜色值red、green、blue、pink十六进制#FF0000,#FF6600,#29D794RGB代码rgb(255,0,0)或rgb(100%,0%,0%) 4.2对齐文本 text-align 属性用于设置元素内文本内容的水平对齐方式。 div{ text-align:center; } 属性值解释left左对齐ri…

数据挖掘——支持向量机分类器

数据挖掘——支持向量机分类器 支持向量机最小间隔面推导基于软间隔的C-SVM非线性SVM与核变换常用核函数 支持向量机 根据统计学习理论,学习机器的实际风险由经验风险值和置信范围值两部分组成。而基于经验风险最小化准则的学习方法只强调了训练样本的经验风险最小…

慧集通iPaaS集成平台低代码培训-基础篇

训练使用素材: 1.数据源: 单号业务日期工厂仓库物料单位数量批次0100012022-5-1210031001030001kg500202304150100012022-5-1210031001030001kg122202304150100012022-5-1210031001030001kg1250202304150100012022-5-1210031001030002kg130202304110100…

深入理解计算机系统—虚拟内存(一)

一个系统中的进程是与其他进程共享 CPU 和主存资源的。然而,共享主存会形成特殊的挑战。随着对 CPU 需求的增长,进程以某种合理的平滑方式慢了下来。但是如果太多的进程需要太多的内存,那么它们中的一些就根本无法运行。 为了更加有效地管理内…

Unresolved plugin: ‘org.apache.maven.plugins:maven-site-plugin:3.12.1‘

问题 使用idea 社区办加载项目提示下面问题: Unresolved plugin: org.apache.maven.plugins:maven-site-plugin:3.12.1 问题解决 maven插件地址: https://maven.apache.org/plugins/maven-dependency-plugin/plugins.html Maven 中央仓库地址&#…