接着上次zabbix server的源码,server的代码其实很大部分还没看,有一方面是自己的c实在很烂,再就是关于zabbix的代码,官方也没有啥文档,有的文档基本是图形操作和api相关的。这些对我来说,没太大的用处。

     正好这两天在搞爬虫性能的监控,看看’优秀‘的zabbix agentd是怎么玩的。  正题,zabbix_agentd.c 里面发现了include了不少的包,这些包是zabbix agent一些做监控的包,比如cpustat.c、vmstats.c、stats.c等。

这里特意申明下博客的原文地址,xiaorui.cc

可以看到在agentd.c源码中存在一些关于各种配置的线程的数目。  

parse_commandline 这个函数,很明显是用来检查args_parse参数的。 

zbx_validate_config 这个是为了检测配置文件,如果error,会写入日志。 

zabbix agent启动的时候,会分别开启三个进程。 

collector_thread
用来收集本机的基本监控信息

listener_thread
用来实现zabbix master连接过来的被动监控

active_checks_thread 
这个是主动的推送数据,记得2.0以前的版本,貌似这段函数是在zabbix_agentd.c 里面的,但是看的时候,发现跑到active.c 。

主动监控里面有个重要的逻辑,就是获取监控数据的refresh时间,应该是貌似是60s,但是如果你的配置有申明的话,那就按照config来说 。调用的是refresh_active_checks函数,序列化是用json处理的。 

监控的项目有了,数据也收集了,但是如何去发送,zabbix调用的是send_buffer 函数方法。

还有很多没怎么看懂,继续阅读zabbix代码,你还别说,看源码,治疗睡眠。 



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

zabbix二次开发集成运维平台展现监控图表

前沿:     集群控制平台已经要慢慢的灰度上线了,出问题的时候,才找点bug,时间有点空闲。正好看了下zabbix的数据库,产生了自己想做一套能...

阅读全文

监控报警开发之zabbix语音电话报警方案

前言:      我相信大家的公司都是有noc的成员,noc是在做什么的,现在基本定义为盯着监控,严重的告警会给你打电话,催你解决,并...

阅读全文

4则回应给“跟我来看zabbix源码之zabbix_agentd.c客户端代码分析”

  1. canghai说道:

    < ,>代码被转码的厉害,博主写了自己不看么?

发表评论