news 2026/6/10 17:21:32

在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/6/9 10:19:24

使用蚁剑连接一句话木马远程控制小皮

首先我们启动小皮&#xff1a;事先写好一句话木马并以php的格式保存将木马文件放到小皮目录下在蚁剑中添加数据&#xff0c;输入url和连接密码&#xff0c;测试连接后发现连接成功此时我们便可以通过蚁剑访问本机文件了关于127.0.0.1127.0.0.1 是 IPv4 协议中预留的本地回环地址…

作者头像 李华
网站建设 2026/6/10 13:17:15

混合检索中Dify查询优化的8个致命误区,90%工程师都踩过坑!

第一章&#xff1a;混合检索中Dify查询优化的核心挑战在构建基于大语言模型与知识库协同的智能应用时&#xff0c;Dify平台通过混合检索机制融合关键词匹配与向量语义搜索&#xff0c;以提升查询结果的相关性。然而&#xff0c;在实际应用中&#xff0c;该机制面临多项核心挑战…

作者头像 李华
网站建设 2026/6/10 15:55:10

【大厂都在用的测试方法论】:基于Agent的Dify用例自动生成体系

第一章&#xff1a;基于Agent的Dify用例自动生成体系概述在人工智能与自动化测试深度融合的背景下&#xff0c;基于Agent的Dify用例自动生成体系应运而生。该体系通过部署轻量级智能代理&#xff08;Agent&#xff09;&#xff0c;实现对Dify平台业务逻辑的动态感知与测试需求解…

作者头像 李华
网站建设 2026/6/10 15:51:31

视频帧提取效率低?你必须掌握的Dify底层存储秘技

第一章&#xff1a;视频帧提取效率低&#xff1f;根源剖析与优化必要性在处理视频分析、目标检测或机器学习训练数据准备时&#xff0c;视频帧提取是关键前置步骤。然而&#xff0c;许多开发者面临提取速度慢、资源占用高、输出质量不稳定等问题。这些问题不仅拖慢整体流程&…

作者头像 李华
网站建设 2026/6/10 15:54:11

远程办公软件Top 10:打造从沟通到协作的完整闭环

远程办公在2025年已不再是备选方案&#xff0c;而是常态化的工作模式。然而&#xff0c;很多团队发现&#xff1a;人虽然在线了&#xff0c;效率却断链了。聊天用微信&#xff0c;任务在Trello&#xff0c;文档在云盘&#xff0c;代码在GitLab&#xff0c;开会用Zoom……数据割…

作者头像 李华
网站建设 2026/6/10 16:12:09

企业级SSL配置全解析,私有化Dify如何实现零信任安全?

第一章&#xff1a;企业级SSL配置的核心挑战 在现代企业IT架构中&#xff0c;SSL/TLS加密已成为保障数据传输安全的基石。然而&#xff0c;随着业务规模扩大和安全标准提升&#xff0c;企业级SSL配置面临多重复杂挑战&#xff0c;远超简单的证书部署。 证书生命周期管理的复杂…

作者头像 李华