设为首页 收藏本站
查看: 1331|回复: 0

[经验分享] 配置zabbix监控vmware

[复制链接]

尚未签到

发表于 2015-11-23 11:45:27 | 显示全部楼层 |阅读模式
  1. 配置过程总的来说是比较简单的。结合官方文档,一般的环境都可以配置成功。
  zabbix官方文档:https://www.zabbix.com/documentation/2.2/manual/vm_monitoring
  
  其基本内容:
  1) zabbix 2.2.0开始支持
  2) Vcenter/Vsphere版本4.1及以上
  3) zabbix在编译时必须 configure 里有 --with-libxml2 --with-libcurl,前者用来解析调用SOAP接口返回的XML,后者用来调用vcenter的SOAP接口
  4) zabbix.conf配置
  StartVMwareCollectors(0-250) 只有大于0时才能是该功能生效,意为预先配置的vmware监控实例数量。
  VMwareCacheSize(256K-2G)内存中维护的vmware集群结构的大小,建议80M。
  VMwareFrequency(10-864000)zabbix获取更新vmware集群结构的最小间隔时间,单位为分钟。
  5) 模板在zabbix中已经预先配置好了,对于vcenter的HOST,指定为Template Virt VMware。
  6) 原则上添加对vcenter的host监控时,不需要zabbix_agent,在Web页面输入必要的ip信息,关联好模板,
  填写好三个宏(web页面上叫巨集)即可。
  ${URL}https://<vcenterIP>/sdk  见[1]
  ${USERNAME}这个原文写的比较模糊,就是登录vcenter client的那个用户名,比如常见的Administrator
  ${PASSWORD}对应USERNAME用户的密码 见[2]
  7) 配置好HOST后,经过VMwareFrequency时间后,zabbix监控到vmware vcenter机器上管理了那些esxi服务器,
      并将其加入到HOST中并同Template Virt VMware Hypervisor模板关联,再进一步监控到哪些vm和volume,
      也一并将其加入到HOST中并同Template Virt VMware Guest模板关联。
  8) 在HOST自动发现并添加后,item的更新是根据每一个项目(item)设置的时间间隔来更新的,但是与VMwareFrequency有关,
      因为check_simple大多都是从内存中维护的vmware集群结构中获取的&#20540;。
  
  2. zabbix官网上的功能详细信息
  功能描述: https://www.zabbix.org/wiki/Docs/specs/ZBXNEXT-1633

  功能开发跟踪:https://support.zabbix.com/browse/ZBXNEXT-1633

  

  3. 代码索骥
  1)  所有获得内存中维护的vmware集群结构的代码在src/zabbix_server/vmware/vmware.c中
  2)  所有获取item的&#20540;的代码在src/zabbix_server/poller/checks_simple.c和src/zabbix_server/poller/checks_simple_vmware.c中
  初始化 vmware.c的zbx_vmware_init,在zabbix_server.c初始化时调用
  主循环程序 main_vmware_loop,在zabbix_server进入主循环程序时调用,
       其主要任务是vmware_service_update(),即通过调用vcenter的SOAP接口,获取hypervisors信息,vmlist信息等等一系列XML并解析,
       最终构建和更新内存中维护的vmware集群结构的内容,如结构体zbx_vmware_service_t,zbx_vmware_datastore_t等等——此处还需具体列出
  item获取程序 src/zabbix_server/poller/poller.c的主循环程序main_poller_loop
  调用get_values调用get_value调用checks_simple.c的get_value_simple
     checks_simple.c的vmchecks数组维护了key和function的关系,并最终的function在checks_simple_vmware.c中
  3) item获取的例子 vm.memory.size为例
     模板中的键&#20540;叫vmware.vm.memory.size[{$URL},{HOST.HOST}],
  在checks_simple.c中去掉vmware前缀,找到对应的function为check_vcenter_vm_memory_size
     checks_simple_vmware.c中的check_vcenter_vm_memory_size,AGENT_REQUEST中的两个参数就是键&#20540;中的URL和HOST.HOST
  从代码上看就是去取得内存中维护的vmware集群结构中该HOST的details的XML片段并且再细粒度的解析。
  
  [1] 看网上很多人纠结于URL是否正确,因为用curl -I -k https://<vcenterIP>/sdk得到的返回时404,
  这个vmware的KB也解释了,只处理SOAP协议,用curl -i -k --data &quot;&quot; https://192.168.30.222/sdk就可以判定URL没有问题。
  [2] 看网上很多人纠结于用户名和密码是否正确,原因可能是密码中有XML需要转义的字符,比如<>之类的,
  最简单的办法是避免这个问题,将密码改掉。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142589-1-1.html 上篇帖子: zabbix Installation from source 下篇帖子: zabbix监控服务器日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表