天天看点

《Cacti实战》——1.2 为什么要使用Cacti

本节书摘来自华章计算机《cacti实战》一书中的第1章,第1.2节,作者:刘钊,张跃著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

在it行业,任何产品或者解决方案都不可能适用于所有的用户和场景,针对cacti自身的特点,本节首先介绍它比较合适的使用场景。接着介绍目前市面上常用的同类产品,cacti的优势和劣势,最后总结归纳出使用cacti的理由。

1.2.1 cacti的使用场景

通过笔者这些年的考察,会发现在如下几个场景中,cacti具有得天独厚的优势。

1.?中小型企业

通常情况下,企业,特别是中小型的企业,对于it信息系统的建设成本比较敏感,通常这样的企业又不乏有技术、有想法的工程师,利用开源软件既可以得到符合自己情况的系统,又能节省一大笔系统建设成本,所以在中小型企业的机房,经常会看到cacti的身影。

2.?大型数据中心

大型数据中心的监控系统往往非常复杂,并不是某一家就可以提供end-to-end的解决方案,在这种情况下,cacti可以肩负起整体监控系统的网络流量、单台主机工作负载以及非it化的生僻设备的监控任务,并通过开放的api接口接受其他监控系统的整合,协同工作。

3.?紧急的项目抢险

不同于常用的使用场景,cacti不仅可以作为一般企业it系统监控和数据中心的日常运行维护管理,在某些特殊场景中,它还可以发挥独特的作用。紧急的项目抢险就是一个非常好的例子,笔者在项目的运行维护中,经常会接到这样的电话:

“我的数据库系统怎么从今天早上起变得这么慢?!”

“先别急,这之前的几天你们对数据库系统做过什么没有?”

“没有啊……什么都没做啊……好好的就突然慢下来了!”(通常我们的客户都是这样回答的……)

“系统日志和监控数据发给我看一下吧,我来试着定位问题。”

“系统日志怎么导出来啊?监控系统前几天消防演习,机柜关机的时候给停掉了,赶紧过来,别那么多废话了!”(客户暴怒了……)

通常这种情况下,我们都会再带着一套cacti系统,接驳目标设备,cacti系统会自动展现监控设备的情况,没准儿我们会发现网络的传输速度正常,数据库主机的计算压力也不大,内存也没有吃满到交换文件的地步,存储性能也ok,就是语句执行起来时间很长,试着查看了一下计划任务,发现问题:不知哪路“神仙”把rebuild index的维护计划给删掉了,导致大量的新增记录没有索引,联合查询的时候非常慢。问题得到准确定位!

通过cacti采集数据,对数据可视化来定位问题,既快速,又简单明了。

cacti,挺好的,我们一直用它,倍儿有面子!

总结起来,cacti对于1000台服务器以下的数据中心监控,具有广泛的普适性,它良好的界面设计、开放的系统架构,可以承担起监控的重任。目前笔者看到cacti已经在电信、石油、政府、教育、医疗等多个行业的客户机房使用。相信大家在日常的工作中也会经常看到,cacti默默地为我们工作。

1.2.2 cacti与同类运维工具的对比

目前在业内,有非常多的同类软件,针对商用产品,不做太多评价,毕竟开源项目的高度可定制化,随心所欲地按照用户需求修改功能,这一点是商业产品不具备的。单纯从开源项目来看,与cacti在同一水平线上的产品有如下几个:

1.?nagios

nagios是一款开源的免费网络监视工具,能有效监控windows、linux和unix的主机状态,交换机、路由器等的网络设置,以及监控打印机的什么等。在系统或服务状态异常时,发出邮件或短信报警,第一时间通知技术人员,在状态恢复后,发出正常的邮件或短信通知。

nagios的优势在于可以对数据中心中大量的服务器,以及在其上运行的数据服务进行监控,以快速定位问题,进行报警。

相比cacti,nagios在网络流量、实时监控以及数据可视化方面的功能很弱。

2.?zabbix

zabbix是一个基于web界面的、提供分布式系统监视以及网络监视功能的企业级开源解决方案。zabbix的界面如图1-3所示。

《Cacti实战》——1.2 为什么要使用Cacti

zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制,使系统管理员快速定位和解决存在的各种问题。zabbix由两部分构成:zabbix server与可选组件zabbix agent。

zabbix server可以通过snmp、zabbix agent、ping、端口监视等方法提供对网络状态的监视,数据收集等功能,它可以运行在linux、solaris、hp-ux、aix、free bsd、open bsd、os x等平台上。

zabbix agent需要安装在被监控的目标服务器上,它主要收集硬件信息或与操作系统有关的内存、cpu等信息。它可以运行在linux、solaris、hp-ux、aix、free bsd、open bsd、os x、tru64/osf1、windows nt 4.0、windows 2000/2003/xp/vista等操作系统之上。

zabbix的优势在于数据的输入/输出,但是在数据可视化方面做得不如cacti。

3.?zenoss core

zenoss core是开源企业级it管理软件,它允许it管理员依靠单一的web控制台来监控网络架构的状态和健康度。

zenoss core来源于zenoss开源项目,zenoss的体系架构非常庞大,当然具备的功能也比较完善,这一点是相对于cacti来说的,这是cacti的弱点。

但是zenoss的体系架构足够复杂,也导致在二次开发和实际使用过程中,系统管理员必须花很长的时间,耗费很大的精力来学习,修改过后的zenoss,由于功能模块的强耦合性,导致系统在上线之前需要进行大量的测试与验证,耗费人力、物力是在所难免的。

简单易用是cacti对比zenoss最大的优势。

4.?opennms

opennms是一个企业级基于java /xml的分布式网络和系统运维管理平台。它可以显示网络中各种终端和服务器的状态和配置,为管理网络提供有效的信息。opennms的界面如图1-4所示。

《Cacti实战》——1.2 为什么要使用Cacti

opennms是用java语言开发的,可以真正做到跨平台。这个项目是由一群经验丰富的网络管理专家设计开发的,针对网络管理员平时关注的对象建模,有很好的粒度把控和很好的扩展性。他们还借鉴了linux系统设计的一些概念。它的系统开发、设计最大程度地遵循国际通信标准。opennms从设计之初就被定义为一个分布式系统,可以通过配置来满足各种复杂的网络管理要求。

我们必须承认在现阶段,opennms是市场上占有率最高的开源系统运维软件,跨平台的设计、完善的设备库、友好的界面都是它成功的因素。但是在实际使用过程中,我们发现针对opennms的二次开发需要具备java、jsp、servlet、spring、mvc等技术基础,开发的难度比较大,并且安装配置过程也非常麻烦。

几款开源软件的总体评估情况如表1-1所示。

《Cacti实战》——1.2 为什么要使用Cacti

1.2.3 使用cacti的理由

cacti的外观设计、架构设计很简单,而且松散耦合,深究其内涵,我们发现它对高级功能的扩展支持也很到位,特别适合中小型企业、院校机构、政府机关等潜在用户使用。通过一段时期的实际项目部署,也发现它确实简化了用户工作、增强了运维性能。总结起来,使用cacti的理由也许会有以下几点。

1.?友好的体验

cacti的安装和配置、数据组织、界面展现均通过web来实现,通过鼠标点击即可完成。cacti交互体验非常友好,还有具有强大的数据管理功能。cacti登录之后的主界面如图1-5所示。

《Cacti实战》——1.2 为什么要使用Cacti

因为cacti基于rrdtool进行运维数据的管理,所以rrdtool天生的优势(数据采集效率高、可以显示负值、一个图形中可以接驳多个数据源、数据的存储方便,等等)能很好地继承下来。

2.?低负载的运行

cacti的数据存储与可视化是分开的,这样可以有效降低cacti服务器的负载,提高运维服务器的性能。

通常可以把cacti需要的各个组件安装在不同的服务器上来均衡cacti系统的资源开销。例如,数据中心本身就已经部署了mysql服务器,那么新建一个cacti数据库即可,还可以将cacti的主体程序与rrdtool图像文件分开存放来降低系统的计算资源,等等。

3.?高自由度的定制

cacti调用的组件均为开源、高度的可定制化属性,用户可以根据自己的需要制作模板,不会遇到设备无法兼容的问题。

同时,cacti加载扩展插件和模板的方法及其简单,用户能最快速地享受到扩展插件带给系统的好处。水位线预警功能插件的配置界面如图1-6所示。

《Cacti实战》——1.2 为什么要使用Cacti