zbx源码分析 -- agent.ping

zbx版本:3.0.19

agent.ping这个键值所在的文件是zabbix-3.0.19\src\libs\zbxsysinfo\agent\agent.c

首先看一下ZBX_METRIC这个结构体,所在的文件是zabbix-3.0.19\include\module.h

4个结构成员说明如下:
第1个成员:监控项的键值(例如agent.ping)
第2个成员:标志, 可以是CF_HAVEPARAMS或0(取决于监控项是否接受参数)
第3个成员:函数,实现这个监控项的函数
第4个成员:测试参数,当zbx客户端带有"-p"标志启动时,这个参数列表会被用到

由上可知,agent.ping键值的功能就是由AGENT_PING函数实现的。AGENT_PING函数里就2行,其中SET_UI64_RESULT所在的文件是zabbix-3.0.19\include\module.h

SET_UI64_RESULT的功能就是把右边值赋给左边变量。所以我们知道了,agent.ping这个键值会始终返回1。

zbx自带模板里有对应描述,说明对源码的分析是正确的。

再多说几句parameters_agent,这个数组被用到的文件是zabbix-3.0.19\src\libs\zbxsysinfo\sysinfo.c

主要就是调用了add_metric函数,parameters_agent数组是add_metric函数的参数。add_metric函数的作用就是向zbx系统中注册一个新监控项键值。

commands是在sysinfo.c开头定义的一个ZBX_METRIC结构体变量,初始值是NULL。

add_metric函数中,把metric的成员值赋给commands的成员,除了第一次(commands初始值是NULL)之外,还要做内容比较,防止键值重复。

commands结构哪里使用?以后再分析。:)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,914评论 18 139
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,440评论 0 5
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,849评论 2 9
  • 我在云南的一个偏远山区长大,靠山吃山靠水吃水,幸好地下有煤,父亲和整个县里的青壮年劳动力一样,基本都以挖煤养家糊口...
    小勋公馆阅读 151评论 0 0
  • 你说 这煮过两次的水不能喝 讲不出为何 我连一次尝试的心也没有 太过滚烫 太易着凉 那天十八度 穿过急促 乍然迎...
    华丽与沮丧阅读 211评论 0 0