【Zabbix 自定义监控全流程实战指南(附图文教程):从语法基础到内存传参、PHP-FPM 服务、Web 场景监控配置】

【Zabbix 自定义监控全流程实战指南(附图文教程):从语法基础到内存传参、PHP-FPM 服务、Web 场景监控配置】
提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

zabbix自定义监控


前言

这篇内容带大家快速上手 Zabbix 的基础用法
关于 Zabbix 的安装步骤或创建监控项,还不太清楚的小伙伴,可以查看这篇文章补充相关知识
https://blog.ZEEKLOG.net/m0_63756214/article/details/156421867?spm=1001.2014.3001.5501
关于 Zabbix 创建触发器,动作,媒介及图形,还不太清楚的小伙伴,可以查看这篇文章补充相关知识https://blog.ZEEKLOG.net/m0_63756214/article/details/156644688?spm=1001.2014.3001.5501

这里先介绍一下我的环境

IP地址主机名部署软件节点作用及职责
192.168.136.134zabbix-server1. Zabbix Server;2. Zabbix Agent(自身监控代理);3. MySQL ;4. Apache核心监控节点,负责接收各被监控节点上报的监控数据
192.168.136.135zabbix-node11. Zabbix Agent;2. 被监控软件被监控业务节点,通过Zabbix Agent采集本地系统资源,将采集到的监控数据实时上报至Zabbix Server
192.168.136.138zabbix-node21. Zabbix Agent;2. 被监控软件被监控业务节点,通过Zabbix Agent采集本地系统资源,将采集到的监控数据实时上报至Zabbix Server

前文我们使用的都是 Zabbix 自带监控参数,添加监控项时直接从键值列表选择即可;若所需参数不在列表中,或不想手动翻找,就可以通过自定义监控来配置专属键值

在这里插入图片描述

一、自定义监控语法

自定义监控的核心是在Zabbix Agent配置文件(zabbix_agentd.conf)中定义UserParameter,语法格式固定:

UserParameter=<自定义键值>,<要执行的脚本/命令> 
  • <自定义键值>:自定义监控项的唯一标识(如 custom.nginx.status),添加监控项时需填写这个键值
  • <要执行的脚本/命令>:可以是直接的Shell命令,也可以是脚本路径(如 /etc/zabbix/scripts/check_nginx.sh

Zabbix自定义监控项可针对业务专属指标(如服务状态、接口响应)配置监测,弥补默认监控不足,满足个性化运维需求,接下来我将举一些例子

二、监控内存–基础用法

这里以zabbix-node1为例,来监控该机器上的内存情况

#在zabbix-node1上操作 root@zabbix-node1:~# free total used free shared buff/cache available Mem: 4013244230868310022414766821523529532 Swap: 401510004015100 root@zabbix-node1:~# free | awk '/^Mem/{print $2}' #查看总内存4013244 root@zabbix-node1:~# free | awk '/^Mem/{print $3}' #查看已用内存231232 root@zabbix-node1:~# free | awk '/^Mem/{print $NF}' #查看可用内存,已用和可用内存都会变3530116 root@zabbix-node1:~# ls /etc/zabbix/zabbix_agentd.d/ #当前目录下没有子配置文件 root@zabbix-node1:~# vim /etc/zabbix/zabbix_agentd.d/memory.conf #在zabbix的子配置目录中写文件UserParameter=memory.total,free |awk'/^Mem/{print $2}'UserParameter=memory.used,free |awk'/^Mem/{print $3}'UserParameter=memory.available,free |awk'/^Mem/{print $NF}' root@zabbix-node1:~# systemctl restart zabbix-agent.service #修改配置文件后需要重启zabbix-agent
#在zabbix-server中测试一下,看看能不能拿到数据 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k memory.total4013244 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k memory.used231480 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k memory.available3522404

接下来我们就可以去zabbix界面上添加这三个自定义的监控项

在这里插入图片描述

添加监控项memory.total

在这里插入图片描述

添加监控项memory.used

在这里插入图片描述

添加监控项memory.available

在这里插入图片描述

添加好后的界面

在这里插入图片描述

去“最新数据”中可以看到,数据已经生成

在这里插入图片描述


感兴趣的小伙伴还可以为 memory.used 和 memory.available 配置触发器,具体方法在此不再赘述,本专栏第二篇文章已有详细讲解,大家可以去翻阅

三、监控内存–传参用法

接下来我讲一下传参用法
这种传参写法能复用单个监控项键值,无需为MemTotal、MemFree等每个内存指标单独定义UserParameter,大幅简化配置;这种方法可以作为了解

root@zabbix-node1:~# cat /proc/meminfo #查看内存 MemTotal: 4013244 kB MemFree: 3099400 kB MemAvailable: 3528796 kB Buffers: 58064 kB Cached: 530776 kB SwapCached: 0 kB Active: 466096 kB Inactive: 176852 kB Active(anon): 54912 kB Inactive(anon): 764 kB ...... root@zabbix-node1:~# vim /etc/zabbix/zabbix_agentd.d/upgrade.memory.conf UserParameter=memory.stats[*],cat /proc/meminfo |awk'/^$1/{print $$2}'# $1:代表调用该监控项时传入的第一个参数(比如用 memory.stats[MemTotal],$1 就等于 MemTotal)# $$2:awk 里的 $2 表示取一行的第 2 列,前面多一个 $ 是因为 Zabbix 配置文件里需要转义,否则会被 Zabbix 解析成自身变量 root@zabbix-node1:~# systemctl restart zabbix-agent.service 
#在zabbix-server中测试一下能否取到数据 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k memory.stats[MemTotal]4013244 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k memory.stats[MemFree]3100116 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k memory.stats[MemAvailable]3529840

接下来去zabbix界面上配置监控项

在这里插入图片描述

新增监控项memory.stats[MemTotal],其他指标也是一样的配置方法,这里我就配置了三个指标

在这里插入图片描述

配置好后,去“最新数据”中可以看到已经产生了监控数据

在这里插入图片描述

四、监控php-fpm 服务的状态

root@zabbix-node1:~# apt -y install php-fpm #下载php root@zabbix-node1:~# vim /etc/php/7.2/fpm/pool.d/www.conf  user = www-data #nginx的所属用户 group = www-data #nginx的所属组 pm.status_path = /php-fpm-status #php-fpm 的状态监测页面 ,#打开注释并修改 ping.path = /ping #ping 接口,存活状态是否ok #打开注释 ping.response = pong #响应内容pong #打开注释 root@zabbix-node1:~# vim /etc/nginx/conf.d/php.conf server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri$uri/ =404;} location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;} location ~* /(php-fpm-status|ping){ fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params; access_log off;#访问这个页面就不用记录日志了}} root@zabbix-node1:~# systemctl restart nginx root@zabbix-node1:~# systemctl start php7.2-fpm.service  root@zabbix-node1:~# curl 192.168.136.135/php-fpm-status #访问 pool: www process manager: dynamic start time: 07/Jan/2026:14:22:58 +0800 start since: 9 accepted conn: 1 listen queue: 0 max listen queue: 0 listen queue len: 128 idle processes: 1 active processes: 1 total processes: 2 max active processes: 1 max children reached: 0 slow requests: 0 root@zabbix-node1:~# cat /etc/zabbix/zabbix_agentd.d/php.conf UserParameter=php.stats[*],curl -s 192.168.136.135/php-fpm-status |awk'/^$1/{print $$NF}'
#在zabbix-server上测试,看能否取到数据 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k "php.stats[pool]" www root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k "php.stats[accepted conn]"9 root@zabbix-server:~# zabbix_get -s 192.168.136.135 -k "php.stats[listen queue len]"128 root@zabbix-server:~# 

然后去zabbix的界面上添加监控项

在这里插入图片描述

添加php.stats[pool]的监控项,添加其他监控项操作类似

在这里插入图片描述

添加好后去"最新数据"中查看数据

在这里插入图片描述

五、Web场景监控

Zabbix Web 场景监控(也叫 Web 监控)是用于模拟用户访问行为、对 Web 应用的可用性和性能进行自动化检测的功能

它的核心原理是:预先配置一系列 HTTP 请求步骤(即一个 “场景”),Zabbix 会按照设定的频率自动执行这些步骤,同时收集每个步骤的响应时间、HTTP 状态码、内容匹配结果等关键数据

在上面实验中正好有两个页面,我就创建这两个页面的web监控

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

查看最新数据,web页面监控已产生监控数据

在这里插入图片描述


注:
文中若有疏漏,欢迎大家指正赐教。
本文为100%原创,转载请务必标注原创作者,尊重劳动成果。
求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~
后续会持续分享关于zabbix的进阶知识~

Read more

ComfyUI是什么?当AI绘画遇上“连连看”,专业创作原来可以如此简单!

目录 一、开篇明义:什么是ComfyUI? 二、核心设计哲学:为什么选择节点式工作流? 1. 完全透明化的生成过程 2. 可保存、可分享、可复用的工作流 3. 精细到极致的参数控制 三、ComfyUI技术架构剖析 1.核心组件详解 2.性能优势解析 四、实际应用场景:谁需要ComfyUI? 1. AI艺术创作者 2. 产品设计与原型开发 3. 教育与研究 4. 商业内容生产 用流程图玩转Stable Diffusion,揭开AI绘画的神秘面纱 一、开篇明义:什么是ComfyUI? 如果你曾对AI绘画感到好奇,或已经尝试过Midjourney、Stable Diffusion WebUI等工具,那么ComfyUI将为你打开一扇全新的门。这不是又一个“输入文字出图片”的简单工具,而是一个可视化节点编辑器,专门为Stable Diffusion设计。

Kook Zimage真实幻想Turbo应用探索:AR滤镜素材/VR场景幻想贴图生成

Kook Zimage真实幻想Turbo应用探索:AR滤镜素材/VR场景幻想贴图生成 1. 项目简介 Kook Zimage真实幻想Turbo是一款专为创意设计领域打造的AI图像生成工具,它基于先进的Z-Image-Turbo技术架构,专门针对幻想风格图像生成进行了深度优化。这个工具能够帮助设计师、创作者快速生成高质量的AR滤镜素材和VR场景贴图,大大提升了创意工作的效率和质量。 与传统的图像生成工具不同,Kook Zimage真实幻想Turbo在保持极速生成的同时,特别强化了幻想风格的表达能力和画面细节。无论是梦幻般的光影效果、奇幻的人物造型,还是超现实的场景构建,都能通过简单的文字描述快速实现。 这个工具最大的优势在于它的易用性和专业性平衡。你不需要深厚的技术背景,也不需要昂贵的硬件设备,就能创作出专业级的幻想风格图像作品。无论是个人创作者还是专业设计团队,都能从中获得巨大的价值。 2. 核心功能特点 2.1 极速生成能力 Kook Zimage真实幻想Turbo继承了Z-Image-Turbo架构的快速生成特性,通常只需要10-15个生成步骤就能产出高质量图像。

ROS1从入门到精通 12:导航与路径规划(让机器人自主导航)

【ROS1从入门到精通】第12篇:导航与路径规划(让机器人自主导航) 🎯 本文目标:深入学习ROS导航栈(Navigation Stack),掌握move_base框架、全局路径规划、局部路径规划、代价地图、恢复行为等核心概念,能够配置和调试完整的自主导航系统,实现机器人的智能移动。 📑 目录 1. ROS导航栈概述 2. move_base框架 3. 代价地图(Costmap) 4. 全局路径规划 5. 局部路径规划 6. 恢复行为 7. 导航配置与调优 8. 导航目标发送 9. 多机器人导航 10. 实战案例:完整导航系统 11. 总结与最佳实践 1. ROS导航栈概述 1.1 什么是ROS导航栈? ROS导航栈是一个2D导航框架,提供了从当前位置到目标位置的路径规划和执行能力。它包括:

ROS1与ROS2桥接器完整指南:实现跨版本机器人通信的终极方案

在机器人开发领域,ROS1和ROS2的共存带来了一个重要挑战:如何在两个不同版本的ROS系统之间实现无缝通信?🤔 这正是ros1_bridge项目的核心使命——为开发者提供双向通信桥梁,让您的机器人系统在版本升级过程中保持完美兼容。 【免费下载链接】ros1_bridgeROS 2 package that provides bidirectional communication between ROS 1 and ROS 2 项目地址: https://gitcode.com/gh_mirrors/ro/ros1_bridge 什么是ros1_bridge? ros1_bridge是一个专为ROS生态系统设计的开源软件包,它能够在ROS 1和ROS 2之间建立高效的数据传输通道。无论是简单的文本消息还是复杂的图像数据,这个桥接器都能确保信息在两个版本间准确传递。 核心优势与使用场景 🚀 为什么需要ros1_bridge? * 平滑迁移:从ROS1升级到ROS2时,无需一次性重构整个系统 * 混合部署:同时运行ROS1和ROS2节点,充分利用两个版本的优势 *