IT技术博客大学习 共学习 共进步

服务器监控软件Zabbix初窥

Becomin' Charles 2013-07-26 13:25:46 浏览 4,242 次

   工作中,发现鄙厂使用的服务器监控系统,非常牛逼,CPU,内存,UDP,TCP,eth包量,各种监控应有尽有,此外,还有自定义上报。不光上报,还能对上报数据做绘图,异常数字报警,能发短信、邮件、RTX消息、微信消息等等,无所不能!于是乎,不禁对此类系统神往之,要是自己也能有一套就好了。于是,我找到了Zabbix。

   Zabbix始创于2001年,并专门成立了公司来研发运营此款产品(太敬佩老外的专注了)。该公司致力于提供服务器监控的解决方案,经过十多年的积累,就有了我们今天看到的Zabbix 2.x。

   Zabbix专门用于监控服务器的各种状态,以及网络服务的状态。它使用C语言开发了服务器端和客户端,使用PHP开发了后台管理界面和配置界面(根正苗红的开源软件啊),使用GPL v2发布。

   Zabbix的安装格外简单,这是我所料未及的。想起我曾经在服务器上编译安装各种软件的困难,Zabbix真的只能用顺畅无比来形容。我选择的是使用源码包安装的方式,从sourceforge下载了2.0.6源码,然后解压缩,按照官方Wiki的说明,在服务器上配置了zabbix_server,zabbix_agent,两个选项,然后就直接make install,完全无痛,无感知。

   接着,安装前端,只是文件拷贝和Web服务器配置而已,不比WordPress复杂多少。这里有个小插曲,就是zabbix安装的时候,其实不会自动在服务器中建表和填充初始配置数据(我要求太高了),不过看了丰富的log后,我轻易发现了问题的所在,直接搞定了。太赞。

   这个监控系统中,有很多的抽象概念,首先是host group,这是监控主机的分组,相似的服务器都在一个组里,比如接入服务器集群,中间层逻辑服务器集群,数据库集群,按照我理解大体是这么个概念。然后是host,就是一台一台的机器,这些机器必须属于某个group。添加完服务器后,下一个概念是item,就是你关心的属性,Zabbix系统内部封装了数百的属性,只要添加你感兴趣的就行了。为了降低操作负担,属性被特地按照系统、软件、不同的机型等多种维度进行了分类,并制作成了模版,如果懒得一个个加,直接应用某个模版,就万事大吉,比如我应用一个Template OS Linux,Application MySQL,就可以实现对服务器基础属性CPU,内存,Swap,网络流量,以及数据库比如uptime,slow query,流量等数据进行监控了。

   有了item后,还不够,item只是数据而已,并不是结论。接着,在分析item的基础上,建立trigger,其实就是一系列的数学表达式,对某个属性的值,做数量上的判定,如果满足某一要求,就出发系统事件events。比如CPU超过90%,agent连续5分钟没有上报,DB连接超时等等。

   有了events以后,肉戏来了,可以notification了,虽然没有仔细看文档,但是我知道,基本上也是可以触发任何形式的报警,只要你能接入,比如邮件、短信、微信等等之类的,如果没估计错,还有开发接口,就算没有,但是开源软件嘛,你懂的。

   瞧瞧人家,多严密的逻辑,多流畅的思维,随便一个开发人员,花不了半天,就能初步部署起来,并有了粗浅的了解。我恍惚觉得,甚至鄙厂的监控平台,也不能与其比肩。如果单就监控的灵活度、可配置、思维的逻辑严谨程度等等方面来看的话。不愧是2001年开始发展十多年的软件了。鄙厂总厂龄,也就稍长3年而已。要说鄙厂平台,估计唯一的优势,就是海量了,除此之外估计都难取胜了。

   今天玩得不多,真的只能算是初窥门径,看着还有数十种菜单,真的有点望而却步,但是需要就是人做一切事情的动机,我想,随着后续对服务器运维要求的提高,我恐怕不得不进一步掌握这个软件了。

建议继续学习

  1. Mysql监控指南 (阅读 21,102)
  2. 批量添加主机到cacti+nagios的监控报警系统中 (阅读 14,681)
  3. 我常用的主机监控shell脚本 (阅读 13,102)
  4. 7 天打造前端性能监控系统 (阅读 11,062)
  5. 如何监控HP服务器硬件状态 (阅读 10,505)
  6. Cacti 添加 Nginx 监控 (阅读 10,362)
  7. Linux下三种常用的流量监控软件对比 (阅读 9,982)
  8. Cacti 添加 Memcached 监控 (阅读 9,162)
  9. Cacti 添加 Apache 监控 (阅读 8,983)
  10. 你应该知道的16个Linux服务器监控命令 (阅读 8,406)