现行使用Cacti监控服务器性能很流行,但是,自从我接确到Zenoss之后,现在Zenoss远比我想象中的更为强大,这也,也就成了一个忠实的Zenoss的支持者与推荐者。有很多朋友都曾经问过我一个问题:你老说Zenoss如何如何,和Cacti比,它到底好在哪里?遂根据自己的认识,写一小文进行说明,当然,仅表代我个人现在的看到,如不专业,还请大家包涵。
开源SNMP方式监控软件之路
在开始对于Cacti与Zenoss Core(Zenoss Core为Zenoss的开源版本,以下,我们简称为zenoss,Zenoss企业版-Zenoss Enterpirse,简称Zenoss EP)进行比较之前,我们不仿对于整个开源SNMP方式监控之路进行一个简单的说明,以便我们更好理解监控的结构与体系。
讲Cacti,不得不先讲一下Mrtg:
Mrtg(The Multi Router Traffic Grapher)
作为最早的通过RRDtool方式会将各个监控数据整合到一个图形界面的工具,MRTG的确在这方面开创一个先河。Mrtg是通过Perl或其它的语言工具收集如SNMP等方式的数据,它以脚本的形式进行运算,并合成RRA(RRDtools图像),最终展现在我们的面前的。Mrtg虽然可以监控一些如CPU,内存,磁盘等硬件信息,但是,由于其每个图都需要由脚本来进行解释,所以,对于管理人员来讲,就需要大量的使用与维护这些脚本命令。对于大型机房体来讲,无非是增加了管理人员的运维成本。
Cacti
考虑到MRTG的配置复杂与繁琐,需要更多的管理人员来运维这些监控脚本,Cacti考虑使用数据库结构来表示同类的监控,Cacti的数据库大部分是存放他们之间有关系。Cacti引入Template模式,并套用到Host template,Graph template,Data template等方式。每个设备,每类对像都有其对应的模板与脚本来进行执行。大大减化了添加监控设备的复杂与工期。同时Cacti是一个开源的组织,所以为更多脚本与模板的研发提供了便利的条件(三方的脚本就是几百个左右)。Cacti使用PHP+SNMP+RRDTOOLS+MYSQL的结构,为三方组织提供了新增功能的可能。如Thold,Monitor,Discovery,Weathermap,notp,syslog等,我们现在用的Cacti其实就是一个整合各个插件与丰富脚本的软件。但是,对于整体监控来讲,并不只是几张图就可以解释了的。如一些对像的状态监控,对于一些说明性的监控,做为一个绘图工具来讲,可能就会有相应的困难。另外,对于设备的描述,现版本的Cacti只提供的了两个字段(Description与Notes)如果在整体监控过程中,在上千的设备找到某一具体业务、某一具体位置、某一具体用途的服务器来讲,是比较困难的(现版本的Notes还不支持数据分类等工作)。
Zenoss
如何可以将状态监控,性能监控,资源管理,更好的报告机制进行有机的整合呢?是否需自行开发呢?Zenoss给我们一个比较好的答复。
Zenoss公司于2002年成立,其结构为Zope/Python方式,图像展示与存放方面,借鉴Cacti的模板化的RRA,关系数据库如同目录结构一样。Zenoss系统将各种监视和管理信息通过一个标准的web浏览器集中向用户展示,系统的各种功能都可以通过web界面进行访问而无需编写任何配置文件。从一个较高的层面来讲,Zenoss由四个主要部分组成。
a. Zenoss标准模型
Zenoss的核心是Zenoss标准模型,该模型详细地描述了Zenoss管理的设备,同时还描述了
设备之间、Zenoss业务对象之间以及其它用户定义的重要分组之间的关系。由于该模型高度复杂,因此模型信息的来源也多种多样,其中一个最主要的来源称之为Zenoss自动发现进程,自动发现是指,Zenoss通过一个可用的传输通道来发现设备上的服务、接口等信息。通过这些发现的信息, Zenoss在系统中为设备建立一个模型。同时,用户可以通过Web界面手工输入设备相关数据的方式(或通过Zenoss的外部API)为设备建立模型。Zenoss的2.0版本增加了发现锁定功能,该功能使得自动发现的信息可以与手工录入的设备信息紧密地结合在一起,并为设备进行建模,而建立后的设备模型用于驱动Zenoss系统的所有监视元素。
b. Zenoss可用性监控(状态监控)
Zenoss的可用性测试包括针对IT基础架构的系统运行测试,通过测试可以判断系统是否在
正常运行,这些测试通常在被监控的系统外部运行,测试手段包括: ping测试、进程测试和服务测试。.
(包括对于网络端口状态的监控及服务端口的状态监控-好像这一部分原来我们是在IPMonitor里实现的)
c. Zenoss 事件管理系统
当Zenoss的监视进程检测到有失败信息或者门限值被突破后,系统就产生一个事件,该过
程与目前市面上绝大多数可用的监视系统一样。Zenoss的事件管理是Zenoss系统各部分状态信息以及受其监视系统信息的一个整合。Zenoss还可接入来自IT基础设施其它部分的事件,这其中包括Syslog和SNMP Traps。Zenoss收到这些事件后,通过一套规则进行处理并最终将这些事件整合进Zenoss模型。
d. Zenoss 性能监视系统
Zenoss性能监视系统的作用是,跟踪重要的IT资源信息并随时记录其变化。对系统管理员
来说,随时了解磁盘可用率、CPU负载以及Web页面载入时间都相当重要。而Zenoss就可以通过SNMP、 自定义脚本(ZenCommands) 或XML-RPC来采集这些数据。由于性能信息被整合在Zenoss模型中,因此浏览在其它Zenoss信息时,用户也可以根据上下文获得有关设备的性能数据。同时更好的区分与应用了状态与性能监控
Cacti与Zenoss的比较
功能类比较 |
Cacti |
Zenoss |
性能监控 |
★ |
★ |
状态监控 |
|
★ |
硬件信息 |
|
☆(安装SIM或OM) |
软件信息 |
|
★ |
资源管理(CMDB) |
|
★ |
权限与角色 |
★ |
☆(显示权限策略不全) |
报警 |
★ |
★ |
事件生命周期 |
|
★ |
WEB门户 |
|
★ |
报告与报表 |
☆(reportit) |
★ |
分布式监控体系 |
|
☆(可配) |
阅读(5098) | 评论(0) | 转发(0) |