应邀对开源IT监控系统进行对比,选取了Nagios、Cacti、Zenoss、Zabbix、Hyperic HQ做为对比样本,帮助读者选择开源的IT监控系统作为底层,开发所需的监控运维工具。
1 背景和目标
1.1 前言
随着SaaS、P2P等各类在线应用的兴起,使得各类在线应用服务公司采购了大量的服务器等IT设施、而如何对庞大的IT设施进行有效的监控和管理,一直是很头疼的问题。以往,网络监控软件都是商业软件的天下,主要是BMC Patrol、CA Unicenter、HP OpenView或IBM Tivoli,这些软件动辄都要花费一百万美元,而很多在线应用企业多少新型创业公司,根本无力承担。另外,商业网络与系统管理软件给人们留下的感觉还有部署周期长,同时集成和定制操作非常复杂等。在开源运动的驱动下,网络管理软件市场讲有所改变。开源软件是一个巨大的现象,开源软件将向最终用户提供一种替代的选择。
开源软件厂商和开发者正在尝试消除人们对网管软件的这种感觉,为用户提供廉价、灵活和易于集成的网络管理工具,如同开源软件进入ERP、CRM市场时一样,为广大用户带来平民级的网络管理软件。虽然像Multi Router Traffic Grapher(MRTG)和Big Brother这样的开源网管软件已经问世数十年了,它们已经成为在无力采用商业软件,或商业软件不能满足需要时,大多数企业的IT部门选择的替代工具。但是,由于可伸缩性和技术支持等问题,这些软件在企业环境中部署的比例很少。
今天,以Zenoss、GroundWork Open Source、Hyperic为代表的开源网管软件公司推出了IBM Tivoli、惠普OpenView、CA和BMC等商业软件之外的开源软件替代产品,它们开发开源网络管理和监控软件,付诸商业化,进行"商业开源运营"。这些厂商为用户提供技术支持和维护服务,提供定制服务、提供开源版本所不具备的某些功能,而这些功能与服务不是开源网管软件的一部分。虽然这些额外的工具或服务并不是免费的,但是它们相比传统商业网管软件动辄百万美元的价格,降到了一般企业都能承受的范围。
ü 价格优势
现有网络管理和监视解决方案一个最大的问题就是高成本,传统商业解决方案要投入大量资金,并且不是所有的功能都能够使用,或者都需要使用。这些商业软件都有高的离奇的价格,而且都是采用许可证形式分发,按照CPU数量等收费,现在运营各种在线应用的公司多是创业型企业,根本无力承担,虽然它们中少量也有风险投资之类支持,但是对于企业而言,能节省的费用还是需要尽量节省。
通过使用开源网络管理与监控软件工具,企业的收取获取成本几乎为零,因为无需支付全部的许可证费用,也无需为网络的扩展而支付额外的许可证费用,用户仅仅在需要保障技术支持或额外功能时才需支付少量费用;大量需要网络监控管理软件的企业一般都有自己的技术力量,因此使用开源软件时遇到的一般问题多可以自己解决,不但培养了自己的技术团队,还能省却不少成本。
Zenoss和Nagios等开源软件网络监视与管理工具整体正在获得增长势头,Groundwork 、Zenoss、Hyperic和Qlusters等公司提供了开源软件替代产品,一些厂商已经得到了足够的声誉。Zenoss公司的Zenoss Core是一个开源的网络和系统监控软件,使用Python/Zope编写,功能包括自动的配置变化跟踪,IT系统故障自动补救以及其它对IT系统管理的重要功能。被sourceforge评为2007年3月的优秀项目。UTStarcom、Pando、Mercy、Medifast等公司都已采用Zenoss进行网络管理和网络监控。
ü 定制的灵活性
灵活性对于企业采用开源软件监视计划有重要影响。很多用户反映,Tivolis和OpenViews这类商业软件很难客户化,非常不灵活,但是,其开源替代软件通常与上述软件相反。开源软件的一个重要特点就是灵活性,客户可以根据自己的要求使用某个产品。通过开源软件社区,最终用户可以要求获得他们需要的功能,讨论这个功能的利弊并且在许多情况下能够在相对短的时间里使用上这个功能。
由于开源软件用户可获得代码,对于Nagios和其它开源软件监视工具没有做的事情,最终用户可以自行这个工具与其它工具结合在一起创建他们需要的环境。开源软件多支持一模块或插件方式进行扩展和定制,广告业巨头Ogilvy & Mather公司利用Hyperic HQ来监测公司全球基础设施中的Web服务器和Web服务。它们充分利用产品的源代码,编写插件,以取得公司所需要的颗粒度水平。当然用户也可寻找专门的技术公司代为进行整合和定制,这点相比采用商业软件有很高的灵活度,Zenoss、Qlusters等开源网管软件公司都提供了定制开发和部署服务,可以为客户满足客户灵活性的需求。
ü 功能的多样性
传统商业网管软件为满足各种场合,各种客户的需求,提供的相当多的功能,而很多功能对部分客户而言却是多余的,或是很少用的;就像我们日常使用的Office只用到了常用功能,其它大量功能并没有用,而我们却也为它而付费了。
新兴开源网络管理软件公司并没有提供与其商业软件竞争对手提供的同样多的功能。他们采用80%-20%的规则,开源软件做到商业软件做的80%。开源软件永远不做商业软件做的一切功能,这里面既有一般客户没有使用需求的缘故,也有开源网管软件公司自身利用的考虑,投入和产出的权衡。
制作开源软件网络管理与监视工具OpenQRM的Qlusters公司首席执行官Ofer Shoshan说,最近对开源软件的兴趣来自于行业对能够处理更大部署的工具的需求增长。
以前大多数开源软件工具都是以小企业为目标的,这些工具都不是大企业级别的工具,无论功能还是可靠性、技术支持等方面。这些工具不可靠、不稳定并且不能管理大量的系统。典型的像Multi Router Traffic Grapher(MRTG)和Big Brother这样的开源网管软件,它们只针对特定问题提供解决方案,不能全面解决网络管理问题。
Zenoss公司制作集成的IT监视产品Zenoss Core。这种产品能够让IT管理员通过一个基于网络的操作台管理他们的基础设施的状况和健康。Zenoss软件监视整个网络、服务器、应用程序、服务、电源和相关的环境。然而,这个软件最大的好处是其开放性和灵活性。这就是说用户可以根据自己的系统选择任何方法对这个软件进行调整。这是一个全面的企业IT监视产品。它的网络监视和管理、应用程序管理和服务器管理都通过一个单一的控制台来完成。
ü 技术支持问题
人们对开源工具一直以来的诟病就是"缺乏技术支持",这将很多用户档在开源工具门外,尤其是企业级应用。因为没有一个首席信息官愿意冒丢掉饭碗的危险应用一种没有服务和技术支持的解决方案。现在很多开源网络管理工具厂商都提供了多种级别的技术支持,能够支持大企业的应用部署。对开源软件提供技术支持也是各家开源网管软件公司的主要盈利点。
Zenoss提供开源版和企业版两种版本,对开源版本,每个管理单元每年只需支付66美金,即可电话、邮件、培训等技术支持服务。GroundWork Open Source Solution一揽子软件包需4万美元,租赁服务为每年1万美元。Hyperic月租费为65美元,年租费为780美元。
这种带有技术支持的开源软件将更加促使一些最终用户使用开源软件替代工具。如果出现问题,有一家公司负责,可以得到需要的帮助,对企业应用很重要。这将是一个良性发布的轨迹:企业开发开源软件,用户为技术支持而付费,使得企业能够生活下去,得以持续的对开源软件进行完善和发展。
当然,对于那些愿意自己做一点研究工作的人来说,在使用开源软件遇到问题时,他们更愿意深入研究这个问题并且找到一个解决方案,如果它的解决方案能够分享出来,对其所用开源网管软件的发展和推广也是种帮助,开源的意义就是集群众的智慧解决问题。
ü 客户的声音
美国的一家在线交友公司eHarmony的工程与运营副总裁Mark Douglas说,Hyperic HQ所具有的“巨大覆盖面”吸引他选择这款产品,而该软件的开源特性则是另一个加分因素。他现在使用该软件监测网络交换机、存储阵列和应用服务器。
Douglas说: “它为我们提供了监测整个资产集的完整视图,包括硬件、软件,还有我们所使用的开源工具。虽然开放源代码在我们的企业环境中还没有成为主流,但它无疑是其中的一部分。”
至于Douglas所提到的加分因素,他说,Hyperic HQ不仅管理来自EMC的存储阵列,而且还管理来自小厂商3Par的设备。
他说:“我不知道这是否只是该软件一般的开放性,但是它支持我们拥有的几乎所有东西,我们还可以编写专用于自己环境的插件。”
Hyperic公司的CEO Javier Soltero 说,Hyperic HQ实际上算是一种混合产品,部分是开放源代码,部分为专有技术。 “实际部署开源产品的过程仍然常常令人头痛,但是客户还是会进行迁移。因此,我们的产品同时采用了商用和开放源代码技术,尽量将安装时间减少到最低。”
开源网管软件为需要网管软件而又买不起网管软件的公司,提供了一种高效的低成本应用方案;开源网管软件的兴起也再次证实了开源存在的巨大价值,以及开源商业模式的可行性。随着开源软件服务收费模式的更广泛接纳,网络管理软件市场也许将迎来一次巨大的变革。选择开源网络管理与监控软件会是个更明智的选择。
1.2 目标
对当前主流的网管监控软件进行对比分析,帮助用户选择一款适合的开源软件,在此基础上进行整合和二次开发,构建自有的网管监控平台。
1.3 比较的维度
进行开源网管监控系统对比的维度:
1) License
不仅仅是免费,无license限制是首选;
2) 市场占有率
广泛的市场占有率,说明软件得到过足够多的验证;针对于成功的开源软件,可以找到一些第三方的扩展资源,我们只要遵循拿来主义就好;
3) 功能
一些功能可以直接拿来使用,或者简单的改造,可以节约成本;
完备的扩展开发接口
被选择的开源软件是否已经提供完备的二次开发接口,满足二次开发的要求;
易用性
开源监控产品的安装、配置、维护和使用的难度,严重影响着今后开发和使用,因此,易用性作为对比的一部分。
4) 开发技术
选择开源软件的另外一个层面考虑是尽量考虑使用的开发技术,尽量避免国内少有或很新的技术,避免难以组织开发人员;
2 开源网管系统对比
2.1 选择对比的软件
2.1.1候选软件
从市场占有率、国内使用情况、开发语言、功能上考虑,选择了以下5款软件。
1) Nagios
2) Cacti
3) Zenoss
4) Zabbix
5) Hyperic HQ
2.2 候选软件介绍
2.2.1 Nagios
Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint。它是一款免费的开源 IT 基础设施监控系统,其功能强大,灵活性强,能有效监控 Windows 、Linux、VMware 和 Unix 主机状态,交换机、路由器等网络设置等。一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营人员,在状态恢复后发出正常的邮件或短信通知。Nagios 结构简单,可维护性强,越来越受中小企业青睐,以及运维和管理人员的使用。同时提供一个可选的基于浏览器的 Web 界面,方便管理人员查看系统的运行状态,网络状态、服务状态、日志信息,以及其他异常现象。
1) Nagios 结构说明
Nagios 结构上来说, 可分为核心和插件两个部分。Nagios 的核心部分只提供了很少的监控功能,因此要搭建一个完善的 IT 监控管理系统,用户还需要在 Nagios 服务器安装相应的插件,插件可以从 Nagios 官方网站下载 http://www.nagios.org/,也可以根据实际要求自己编写所需的插件。
2) Nagios 主要功能
ü 网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
ü 主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)
ü 可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)
ü 可以通过配置Nagios远程执行插件远程执行脚本
ü 远程监控支持SSH或SSL加通道方式进行监控
ü 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
ü 包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
ü 可并行服务检查
ü 能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查
ü 当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知
ü 能够自定义事件处理机制重新激活出问题的服务或主机
ü 自动日志循环
ü 支持冗余监控
ü 包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等
3) Nagios 监控实现原理
Nagios 软件需安装在一*立的服务器上运行,这台服务器称为监控中心,监控中心服务器可以采用 Linux 或 Unix 操作系统;每一台被监视的硬件主机或服务都运行一个与监控中心服务器进行通信的 Nagios 软件后台程序,也可以理解为 Agent 或插件均可。监控中心服务器读取配置文件中的指令与远程的守护程序进行通信,并且指示远程的守护程序进行必要的检查。虽然 Nagios 软件必须在 Linux 或 Unix 操作系统上运行,但是远程被监控的机器可以是任何能够与其进行通信的主机,根据远程主机返回的应答,Naigos 将依据配置进行回应;接着 Nagios 将通过本地的机器进行测试,如果检测返回值不正确,Nagios 将通过一种或多种方式报警;具体原理如下图所示:
官方网站:http://www.nagios.org/
使用地址:http://nagioscore.demos.nagios.com/nagios/
2.2.2 Cacti
1) Cacti介绍
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。
Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。
Cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
MySQL配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
snmp抓到数据不是存储在MySQL中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
2) Cacti架构
Cacti三层架构:数据展现层、数据存储层、数据采集层,其具体如下:
ü 数据采集层:通过SNMP或自定义脚本进行数据采集
ü 数据存储层:通过cacti模板等数据存放至MYSQL中
ü 数据展现层:通过WEB方式呈现出来
3) cacti常见的监测对象
(1)服务器资源:CPU、内存、磁盘、进程、连接数等
(2)服务器类型:WEB、Mail、FTP、数据库、中间件
(3)网络接口:流量、转发速度、丢包率
(4)网络设备性能、配置文件(对比与备份)、路由数
(5)安全设备性能、连接数、攻击数
(6)设备运行状态:风扇、电源、温度
4) Cacti 的特点以及优点
a) 开源
ü *发行
ü 开放源代码
ü 运行高效
b) 跨平台
ü 支持的平台RedHat 、windows 、solaris、CentOS 、SUSE
c) 3、界面友好
ü 图形丰富 各种模板 自定义模板
d) 4、可扩展
ü 支持二十种的插件,丰富的插件资源,大大提高了cacti的功能。
官方网站:http://cacti.net/
2.2.3 Zenoss
1) Zenoss介绍
在各式各样的产品选择和支持选项情况下, Zenoss允许每个组织选择满足他们需要的最佳组合。
Zenoss 以一种独特的软件开发方式, 为全世界提供了最佳的解决方案:
下图是zenoss各版本:
a) Zenoss提供功能丰富的产品,以监测整个IT基础设施:
ü 网络 -路由器,交换机,防火墙,接入点
ü 服务器 -微软的Windows , Linux , Unix系统,惠普, NetApp,戴尔
ü 虚拟化 -完整虚拟机虚拟化基础架构( VI3 )管理, XenSource监测
ü 应用领域 -Process(程序),Port,网络应用服务, Web服务,数据库,中间件,商业企业应用方案
b) 在整个生命周期:
ü 配置管理 -自动发现,inventory, CMDB,变更追踪
ü 可用性管理 -活跃测试向上和向下的堆栈
ü 性能监控 -收集和分析数据向上和向下的堆栈
ü 事件/日志管理 -集中收集和管理警报和违反的规则
ü 自动修复 -应对和解决发生的问题
c) 使用代理收集和基于标准的管理协议
WMI, PerfMon, SNMP, JMX, HTTP, Telnet, SSH, Syslog, ICMP, FTP, SMTP等
2) Zenoss各版本对比
3) Zenoss可监控对象
2.2.4 Zabbix
1) Zabbix介绍
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
2) Zabbix架构
Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下图所示。
3) zabbix的主要特点
ü 安装与配置相对简单
ü 支持多语言(包括中文)
ü 免费开源
ü 自动发现服务器与网络设备
ü 分布式监视以及WEB集中管理功能
ü 可以无agent监视
ü 用户安全认证和柔软的授权方式
ü 通过WEB界面设置或查看监视结果
ü email等通知功能
等等
官方网站:http://www.zabbix.com/
2.2.5 Hyperic HQ
1) Hyperic HQ介绍
Hyperic HQ是一个基于java的监控软件,由一个中心监控服务器和一个或多个远程代理组成,远程代理用来向服务器报告节点信息。Hyperic HQ支持多种平台,包括Linux,Solaris, Windows, HP-UX, AIX, Mac OS X 和FreeBSD。Hypeirc发布了该软件的两个版本:1.一个遵循GNU GPL规范的开源版本2.一个叫做vFbaric Hyperic的企业版本,它包括附加的组件和功能。
面对管理复杂的IT基础设施,Hyperic HQ向今天的IT技术人员提供了无与伦比的可视性软件。Hyperic HQ使用易用的portal,通过单击就能自动发现和开始管理你的基础设施。
2) Hyperic HQ的作用
Hyperic HQ是工业级,功能丰富的产品,提供监测生产环境中软件的各技术栈的可视性,包括开源的,商业的或混合软件。因而,公司现在能够集中管理在下一代数据中心中所运用的快速发展的技术,能够更为充分和有效地避免昂贵的宕机。作为一个可扩展的系统,Hyperic HQ可以管理所有种操作系统,Web Server,应用服务器,数据库服务器等。使用Hyperic HQ Portal,可以快速配置软件并监测,警告,诊断,控制绝大多数应用程序。关键优势包括:
a) Hyperic HQ:通过点击就会自动发现所要管理的Asset Inventory(资产列表)
ü Hyperic HQ:监测九大操作系统上超过65种技术的度量值
ü Hyperic HQ可以追踪性能,配置,安全变化
ü Hyperic HQ最大化可用性:在问题发生之前,警报、控制去纠正问题
ü Hyperic HQ可以扩展,定制,更好管理你独特的环境需要
ü Hyperic HQ自动发现所有软件和硬件的Asset Inventory正确地模拟和显示硬件,软件和服务的关系
ü Hyperic HQ自动侦测硬件和软件的每一个侧面,包括内存,CPU,磁盘,网络设备,版本和配置信息
ü Hyperic HQ对配置或者被控制资源的关键属性的任何变化而产生事件,用来向IT管理员报警
ü Hyperic HQ通过一个单独的,易于操纵的视图检查硬件和软件资源的健康情况
b) Hyperic HQ监测基础设施的每一层
ü Hyperic HQ不通过侵入的方式,从基础设施中生产的硬件、网络和应用等层中搜集实时的和历史上的数据
ü Hyperic HQ定义智能警报帮助在问题造成损失之前,能够预见问题
ü Hyperic HQ通过定制的指示视图比较和关联不同资源的度量值,帮助你理解他们之间的相互作用关系
ü Hyperic HQ用单一的视图将资源和资源组关键的度量值显示出来,可以快速地评估环境的状态
c) Hyperic HQ跟踪所有日志,配置,安全事件数据
ü 报告由所有被管理资源产生日志事件的实时和历史的详细信息
ü 跟踪所有主机或应用的配置,帮助分析影响和控制变化
ü 加强安全策略,侦测和记录物理的或远程的对环境中任何主机的访问
ü 在环境中的任何地方,可以定义警报去跟踪详细的日志消息
ü Hyperic HQ可以将任何日志事件,配置改变或安全事件与计算环境的可用性相关联
d) Hyperic HQ通过报警和纠正的控制行动等方式管理可用性
ü Hyperic HQ可以定义任意简单或精细的条件产生警报
ü Hyperic HQ可以覆盖从操作系统的故障到服务层的响应时间等所有技术范围
ü Hyperic HQ对于发生在你环境中的所有日志,配置和安全事件等定义警报
ü Hyperic HQ根据需要,可以在设备上执行生产级的控制活动
ü 串行或者并行的地控制资源组合
ü 不必编写代码,就可以将定制的控制脚本集成到HQ
e) Hyperic HQ扩展和定制,最优地管理你特有的环境需求
ü 使用拖拽portlets设置你的操作仪表板,并很容易使用配置控制
ü 创建组,帮助管理和测量大环境的健康
ü Hyperic HQ通过定义应用的方式进行管理,可以将特定应用所涉及到的特定硬件,软件和服务等作为一个整体进行管理
ü 扩展 Hyperic HQ强大的管理portal.可以通过易于描述的XML或任何语言与Hyperic PDK相配合,扩展到管理所有的软件和硬件设备
3) Hyperic可以监控管理的对象
4) Hyperic开源版与企业版的对比
试用地址:http://demo.innovatedigital.com
用户名: hqadmin
密码: innovatedigital
2.3 软件评估
2.3.1开源网管软件的市场占有情况
其中Nagios最高,接下来依次是OpenNMS、Zenoss、Zabbix、Mon、Hyperic。
2.3.2License评估
比较项目 |
Nagios |
Cacti |
Zabbix |
Zenoss |
Hyperic HQ |
License |
GPL |
GPL |
GPL |
GPL |
GPL |
使用限制 |
开源版本和Nagios XI企业版本 |
只有开源版本 |
只有开源版本 |
提供开源版和企业版两种版本 |
开源和商业两个版本 |
2.3.3安装配置评估
开源监控产品的安装、配置、维护和使用的难度,严重影响着今后开发和使用,因此,易用性作为对比的一部分,下面是软件安装配置方面的比较:
Nagios |
Cacti |
Zabbix |
Zenoss |
Hyperic HQ |
|
Windows支持 |
N |
Y |
N |
N |
Y |
无安装过程源代码编译 |
N |
N |
N |
Y |
Y |
支持普通用户安装 |
N |
N |
N |
Y |
Y |
无网络安装 |
N |
Y |
N |
Y |
Y |
整体安装包 |
N |
N |
N |
N |
Y |
简单卸载 |
N |
N |
N |
Y |
Y |
各软件选取的比较方面说明如下:
ü Windows支持:是否支持Windows 平台的安装,虽然很多用户的服务器使用了Linux,但是还有相当部分用户沉迷于Windows的可视化界面,对于那些对技术不大精通的用户,往往很看重这一点。
ü 无安装过程源代码编译:使用C/C++开发的软件,往往需要安装时编译,如果这一过程需要由客户手工完成,就可能产生很多意向不到的问题,如果真遇到问题,普通用户就需要花费很多时间研究了。即使 VMWare的 VMPlayer 这样的通用软件,也会在安装的C编译阶段出现问题。因此,无代码编译将大大提高软件的简单性和易用性。
ü 支持普通用户安装:很多软件在安装过程中需要超级用户权限,这会带来几个问题,一个是向系统安装了一些软件,你也不知道到底安装了什么,安装到了哪里。另一个是导致与其他软件的不兼容,这是由于不同的依赖组件,会使得其他软件运行失败。可能有些用户使用单独的虚机安装网管软件,不在意这一点,但是等到升级的时,如何保证运行两个不同版本所依赖的不同版本的软件,也会遇到这样的麻烦。如果可以普通用户安装,对整个系统环境就不会有太多影响。
ü 无Internet连接安装:很多开源软件依赖系统的软件安装功能,如 yum,可以轻松解决所依赖软件的安装。这往往需要在安装时需要保持Internet畅通。这对于大部分客户可能不是问题,但是对于网络安全措施比较严格的环境,将非常别扭,有时寸步难行。
ü 整体安装包:开源软件往往不提供商业化软件的整体安装包和整体安装过程,这给安装带来一定的复杂性,为了看到最后的安装成果,往往需要先安装一些自己可能并不熟悉的软件,如果你对mysql很熟系,但对postgresql就不一定。如果有整体安装包,就会使安装变得非常“傻瓜”。
ü 简单卸载:为什么要卸载?我在评估中,为了减少软件之间的影响,在评估过程中要不断安装不同的软件或不同的版本,如果软件的安装对操作系统环境做了改变,卸载可能就比较慎重了,如果在生产环境下,要更慎重。
2.3.4软件功能评估
Nagios |
Cacti |
Zabbix |
Zenoss |
Hyperic HQ |
|
Y |
Y |
Y |
Y |
Y |
|
趋势预测 |
N |
Y |
N |
Y |
Y |
自动发现 |
Via plugin |
Via plugin |
Y |
Y |
Y |
Agent |
Y |
N |
Y |
N |
Y |
Agentless |
Y |
Y |
Y |
Y |
N |
SNMP |
Y |
Y |
Y |
Y |
Y |
SYSLOG |
Via plugin |
Y |
Y |
Y |
Y |
脚本扩展 |
Y |
Y |
Y |
Y |
Y |
插件 |
Y |
Y |
Y |
Y |
Y |
预警 |
Y |
Y模板 |
Y |
Y |
Y |
WEB应用 |
Y(仅查看) |
Y(Full Control) |
Y(Full Control) |
Y(Full Control) |
Y |
分布式监控 |
Y |
Y |
Y |
Y |
Y |
监控设备列表 |
Via plugin |
Y |
Y |
Y |
Y |
数据存储 |
N(扩展存储) |
Y |
Y |
Y |
Y |
资源管理(CMDB) |
N |
N |
N |
Y |
Y |
报表 |
Y |
Y |
Y |
Y |
Y |
监控对象完整性 |
4(插件) |
3 |
5 |
4 |
5 |
关于比较项目的说明:
ü 性能趋势
ü 趋势预测
提供监控设备性能数据的趋势的预测;
ü 自动发现
软件自动发现它能连接上的主机和网络设备;
ü Agent
在被监控设备上安装Agent,进行监控;
ü Agentless
不需要在被监控设备上的Agent,即可实现监控(SNMP守护进程不属于Agent)
ü SNMP
支持SNMP,可使用SNMP获得监控数据;
ü SYSLOG
支持Syslog接收;
ü 脚本扩展
支持自定义脚本程序对软件功能进行扩展;
ü 插件
支持外挂插件程序对功能进行扩展;
ü 预警
能够定于性能阈值预警或其他预警,并通知管理员;
ü WEB应用
系统运行与WEB应用:
N-软件不是一个WEB应用;
仅查看-只能查看相应的监控数据;
完全控制-所有系统的配置、设备添加、数据查看均使用Web应用;
ü 分布式监控
支持多服务器分布式监控;
ü 监控设备列表
保存监控的设备列表;
ü 数据存储
是否使用关系性数据库进行数据存储;
ü 资源管理(CMDB)
基于ITIL理论的配置管理;
ü 报表
系统支持监控设备性能、预警等信息的报表;
ü 开发语言
系统使用的开发语言;
ü 数据存储方法
监控数据的存储方法,可以支持的数据库;
ü 监控对象完整性
系统对于现有服务器、操作系统、网络设备、系统软件监控的完整性,5为最好、1为最差;
2.3.5开发语言评估
项目 |
Nagios |
Cacti |
Zabbix |
Zenoss |
Hyperic HQ |
开发语言 |
C/ php+cgi(WEB) |
PHP |
C(backend ) PHP(WEB) |
Python |
Java |
数据存储方法 |
Flat file, SQL |
RRDtool, MySQL |
Oracle, MySQL, PostgreSQL, IBM DB2, SQLite |
ZODB, MySQL, RRDtool |
MySQL, Oracle, or PostgreSQL |
2.3.6小结
Nagios |
Cacti |
Zabbix |
Zenoss |
Hyperic HQ |
|
License(free得分2,GPL 得分1,商用得分0) |
1 |
1 |
1 |
1 |
1 |
安装配置简单(简单2分,困难0分) |
0 |
0 |
0 |
2 |
2 |
功能(全面得分5,基本全面2,其他1) |
4 |
2 |
5 |
4 |
5 |
管理界面(FULL CONTRL2,其他1) |
1 |
2 |
2 |
2 |
2 |
软件支持情况(论坛、官方服务、中文情况好为2分,其他为1分) |
2 |
2 |
1 |
2 |
2 |
市场占有率(市场占有率较高1分、较低0分) |
1 |
1 |
1 |
1 |
0 |
合计: |
9 |
8 |
10 |
12 |
12 |
综上所述,对于开源软件的评估基于开源、简单、易用、功能全面、软件活跃度、支持度综合评判,推荐Zenoss和HypericHQ。
3 建议
3.1 软件选择上的建议
上面对对比评估只是针对于目前常见的开源监管网络软件初步比较,并得出一个分数,但是在软件的选择上还需要更多的限制。
开源软件的技术是否有公司技术人员匹配,如公司主要的开发技术是Java那么Hyperic就是非常好的选择;如果使用C和PHP那么Nagios、Cacti、Zabbix的选择就会更好;
对于使用的环境的限制和对被监控设备的限制上,如果被监控设备都是非常重要的设备,不允许在上面安装Agent,那么Hyperic和Nagios就要被排除,Hyperic必须使用Agent,Nagios也需要在被监控的服务器上安装插件才能监控;
另一个方面,基于监控的全面性的考虑,具有Agent的监控软件,可以采集服务器更多的数据,如Oracel数据库的日志信息,这些是基于Agentless的软件软件无法做到的;
如果是选择一个轻量级的,良好架构软件,首选Cacti,它相当轻量级,没有多余的功能,支持脚本和插件扩展,可以快速形成形成自有系统;
开源软件的背景上,如果一个软件有Apache基金会,IBM,Oracle等大组织的采用和支持,相对来说生命力会更强一些,如Hyperic HQ已被Vmware公司收购,其软件的先进性,质量和体系架构更前具优势。但同样存在风险,商业公司是否会基于商业考虑停止对软件的开源;
成熟度,包括安装,配置,诊断,维护等是否与商业软件贴近,如果一个软件需要很多命令行操作,手工修改很多配置文件和脚本,或过多依赖互联网络进行安装,那么对于技术人员较少,对开发技术力量薄弱的企业可能是一场噩梦。Zenoss,Hyperic在这方面做的比较好,基本可做到可一个安装包,一键安装。安装包本身已经自带了大量常用插件,不必再定制和安装。
3.2 后期开发上建议
选择了相应的开源监控软件后,需要根据业务情况开发自有监控产品,根据多年的项目经验,建议使用开源软件作为监控系统的底层,即采集器,这个方面相当通用,基本上不需要对软件做太多改变。
前段的应用上自主开发,因为国外的产品在使用习惯上,跟国人的使用习惯差距太大非常难上手。
另外一些重要的功能,如CMDB的建立,告警抑制、告警升级、告警关联分析、告警通知和事件处理等,可以自主控制,开发适合自身需求的软件系统,提供系统的可用度。
4 作者说明
徐继峰,08年进入广州中软信息技术有限公司,09年开始与公司一起创建IT管控事业部并IT管控事业部副总经理,主要业务方向是IT设备的集中运行监控和IT服务系统,熟悉惠普IT管理软件和开源网管监控系统。
负责的项目有南方电网公司网省地三级IT集中运行监控系统、广东电网IT集中运行监控系统1-2期、贵州电网统一信息库项目、广东电网下属21个地市供电局IT集中运行监控系统、广东电网信息运行调度系统、红海湾电厂IT集中运行监控系统等80多个项目;3年时间合同金额超亿元。