news 2026/5/22 12:27:03

在Zabbix Server使用PHP编译一个扩展模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在Zabbix Server使用PHP编译一个扩展模块

场景:一次性返回所有在线 Agent 的 CPU 利用率平均值(%)

Zabbix Server的PHP相关目录

# 一台已经跑通的 Zabbix 7.0 实例(Server + Web + Agent)# 参考 CentOS 7 源码编译路径:PHP_PREFIX=/usr/local/zabbix/php# 你的 PHP 安装目录PHP_BIN=${PHP_PREFIX}/bin/phpPHP_CONFIG=${PHP_PREFIX}/bin/php-configPHP_INI=${PHP_PREFIX}/etc/php.iniWEB_ROOT=/usr/local/zabbix/ui# Zabbix 前端目录

1、生成php需要识别的文件结构

mkdir-p /tmp/zbx_iowait&&cd/tmp/zbx_iowait# 用 PHP 自带的 ext_skel 工具${PHP_PREFIX}/bin/php-ext-skel --ext zbx_iowait --dir.# 结果目录结构# zbx_iowait/# ├── config.m4# ├── zbx_iowait.c# ├── php_zbx_iowait.h# └── tests/

2、修改两处文件

文件 1:zbx_iowait.c,把默认函数整块替换为:

PHP_FUNCTION(zbx_iowait){zbx_dc_host_t *hosts;zbx_dc_item_t *items;int host_num=0, item_num=0;doublesum=0, count=0;/* 直接调用 Zabbix Server 内部 DC 缓存 API,0 成本 */ zbx_dc_get_hosts_by_key("system.cpu.util[,avg1]",&hosts,&host_num,&items,&item_num);for(int i=0;i<item_num;i++){sum+=atof(items[i].lastvalue);count++;}zbx_dc_free_hosts(hosts, host_num, items, item_num);if(count)RETURN_DOUBLE(sum / count);RETURN_DOUBLE(0);}

文件 2:php_zbx_iowait.h,把函数声明改成:

PHP_FUNCTION(zbx_iowait);

3、编译

phpize ./configure --with-php-config=$PHP_CONFIGmake-j$(nproc)&&sudomakeinstall

4、加载扩展

echo"extension=zbx_iowait.so">>$PHP_INI# 重启 PHP-FPM(Zabbix Web 依赖的进程)sudosystemctl restart zabbix-php-fpm

5、验证

$PHP_BIN-r'var_dump(zbx_iowait());'# 输出类似:float(123456)

6、在 Zabbix 前端使用

登录 Zabbix → 「配置」→「主机」→ 任意 Agent → 「监控项」→「创建监控项」
字段填写
名称:CPU iowait (by PHP ext)
类型:脚本
键值:php.iowait
脚本内容:
<?phpechozbx_iowait();?>
保存后点「检测」→「最新数据」,即可看到实时 iowait 值。

7、回滚

sudosed-i'/zbx_iowait.so/d'$PHP_INIsudorm$(${PHP_CONFIG}--extension-dir)/zbx_iowait.sosudosystemctl restart zabbix-php-fpm
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 19:45:47

Dify与Spring AI版本适配实战指南(兼容性问题全收录)

第一章&#xff1a;Dify与Spring AI版本兼容性概述在构建基于AI的现代企业级应用时&#xff0c;Dify 与 Spring AI 的集成成为关键的技术选型之一。两者在生态整合、模型调用抽象和微服务架构支持方面具备天然契合点&#xff0c;但其版本间的兼容性直接影响系统的稳定性与功能可…

作者头像 李华
网站建设 2026/5/22 8:05:06

还在手动注释细胞类型?自动化R流程让你效率飙升(附完整代码)

第一章&#xff1a;空间转录组细胞类型注释的挑战与机遇空间转录组技术的发展使得在保留组织空间结构的前提下研究基因表达成为可能&#xff0c;然而细胞类型注释仍是其中的关键挑战。由于空间分辨率的限制&#xff0c;单个空间点往往包含多个细胞&#xff0c;导致表达信号混合…

作者头像 李华
网站建设 2026/5/22 12:52:40

鸿蒙高性能绘制离屏渲染

什么离屏渲染 离屏渲染也叫双缓冲渲染,也就是说有两块画布,一个画布在后台负责内容绘制,一个画布用于在上屏显示。这样的好处就是绘制过程中不会产生屏幕抖动,举个例子,当你在画板上作画时,旁边有人盯着你看,当你绘制完一幅图时, 你再用橡皮擦去擦掉。擦掉的过程就会人…

作者头像 李华
网站建设 2026/5/22 12:16:05

【高阶风控模型进阶指南】:基于R语言的相关性矩阵优化策略

第一章&#xff1a;高阶风控中相关性矩阵的核心作用在现代金融与信贷风控体系中&#xff0c;风险因子间的相互依赖关系日益复杂&#xff0c;相关性矩阵作为量化多维变量间线性关联的核心工具&#xff0c;发挥着不可替代的作用。它不仅揭示了不同资产、用户行为或风险指标之间的…

作者头像 李华
网站建设 2026/5/22 7:52:32

视频字幕检索的Dify缓存周期全解密(企业级缓存设计实战)

第一章&#xff1a;视频字幕检索的Dify缓存周期在构建基于AI的视频内容分析系统时&#xff0c;视频字幕检索是关键环节之一。Dify作为支持多模态工作流的开发平台&#xff0c;其缓存机制对提升字幕检索效率具有显著影响。合理的缓存周期设置不仅能减少重复计算开销&#xff0c;…

作者头像 李华
网站建设 2026/5/22 12:48:45

快速响应火灾:揭秘Linux消防主机的多传感器融合策略

在人们的传统印象里&#xff0c;消防报警器可能就是天花板上的一个白色小圆盘&#xff0c;一旦探测到烟雾便会发出刺耳的鸣响。然而&#xff0c;这种单一传感器的报警方式&#xff0c;在复杂多变的真实环境中常常力不从心&#xff1a;厨房的油烟可能引发误报&#xff0c;缓慢发…

作者头像 李华