不断提升企业形象及服务质量、节约成本是所有企业的需求。数字化进程的加速,企业基本都会面临线上办公、线上提供产品服务的情况。运维部门为确保企业中所有业务稳定运行,并满足业务不断扩张的发展需求,时刻肩负着极大的挑战。如何节省成本,提升运维工作效率,实现精准监控?
当下,部分企业倾向于用开源软件节约成本,开源产品如何选型?如何达到企业级效果?我们测试了七个开源产品:Zabbix、Nagios、Prometheus、SugarNMS、Ganglia、Open-Falcon和Cacti,这些产品都有稳固的用户基础且均有更新。我们重点测试了操作,管理工具、接口以及每个产品的监控能力,自动发现、应用场景等情况。
我们在Windows上测试了这七款产品,当然并不是这些产品不能在Linux上运行。

Zabbix
商业开源软件。一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。用户群体主要面向泛物联网企业,主要监控集群。
支持告警功能,具备扩展能力,可自定义监控指标,其主要采用mysql/postgresql存储监控数据,监控规模1000+左右。但缺少数据汇总功能,使用上不太方便。而且由于缺少中文资料,服务支持有限,学习成本和定制模板比较大。

Nagios
Nagios是一款开源网络监视工具,适合监视大量服务器计算环境,集成了很多功能。可监控主机状态及网络设备等。系统或服务状态出现异常时发出邮件或短信报警通知运维人员。
Nagios可以自定义shell脚本,通过分布式监控模式;支持以冗余方式进行主机监控,报警设置多样;出错的服务器、应用和设备会自动重启自动日志回滚。
但其配置复杂,初学者费时长。事件控制台功能较弱,插件易用性差;对性能、流量等指标的处理不给力;图形化能力弱;没有历史数据,难以追查故障原因。

Prometheus
Prometheus是由Sound?Cloud开源的监控系统,?是Google?Borg?Mo监控系统的开源版本。主要监控集群,监控规模1000+左右,监控数据存储采用比较流行的时序数据库opentsdb。支持告警功能,分层架构设计,扩展能力强。
go编写,设计思路主要for分布式系统运维服务,多数据展示(grafana),服务自动发现,支持pull和push支持,支持多客户端sdk。
但其国内文档不多。有部分英文文档和官方文档。但是描述不是很全面,虽然git上star很多,但是很多特性使用还需要先阅读代码才能解决。

SugarNMS
SugarNMS是北京智和信通自主研发的综合监控运维管理平台,有C/S和B/S两种客户端界面,支持PC端及移动端。有监控、分析、运维、安管、日志、开发等功能模块,有1000多种网管功能,管控600+设备类型,监控规模10000+,可监控国产化系统,自定义扩展实现了对设备及其资源的全面化管理,可管控所有联网设备。
自动发现识别设备、资源、链路,生成拓扑图,通过GIS地图、所见即所得的2.5机房全景图、机架图以及面板图,展现网络情况,监控故障。支持模板功能,自定义监控指标。

监控数据库存储可采用Mysql、Oracle、各种主流数据库、人大金仓、南大通用等。统计有报表和图形化展示多种形式,能够自定义监控点。秒级稳定监控,持集中式、代理分布式部署、级联网管。
网络故障、数据库停机、网管服务器停机恢复后,网管系统自动恢复正常。深度管控设备,可批量设备的配置文件升级、备份和恢复功能。
SugarNMS多层分布式设计,有网管基础组件,可提供开发集成服务。有框架、API、开发库、插件、源代码、文档等资料。

Ganglia
Ganglia是UCBerkeley发起的一个开源集群监视项目,其核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如cpu、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能。监控规模2000+,支持自定义监控点。
安装配置简单,监控有表格和图像两种,支持电脑及手机版。不用每台机器添加配置,支持分层管理。
监控数据存储在RRD环形数据库,但固定大小,会覆盖旧数据

Open-Falcon
Open-Falcon同样是做监控系统,适用于巨量的万级上报节点数据与统计。监控规模1000+,其监控数据归档用RRD,存储用mysql+redis+opentsdb。
支持资源自动发现,主动push数据,支持告警,多种数据展示(grafana)。支持自定义监控指标及自定义插件,支持模板功能。
这个软件发布时间叫短,部分功能有待完善;dashbord上报时间维度(分钟粒度),不支持其它维度统计。

Cacti
Cacti是一套基于PHP、MySQL、SNMP及RRDTool(画图工具)开发的网络流量监测图形分析工具。适用于收集历史数据和画图。
Cacti基于RRDtool存储监控数据,在查询指定时间段的监控数据时候不用浏览整个数据文件,和mrtg的文本log相比具有更高的效率。监控曲线图片的生成并不像mrtg那样和数据采集同步并定时成生,而是通过RRDtool提供的图片成工具使用PHP脚本来生成动态web图片。监控项目曲线图多样化。RRDtool的图片生成工具提供了多种参数,这样可以动态设置更多样式的曲线图,也可以将若干监控项集中显示在一张图片中。当然,其它如颜色,曲线样式,图片大小格式,说明文字等都可以定制产生。基于web配置与监控,操作简单。Cacti支持超过二十种的插件,丰富的插件资源,大大提高了cacti的功能。
Cacti主要的功能强大在于他的画图功能,所以说它的其他功能都是靠它的插件来完成的,我们必须手动去添加所需插件。例如:当我们需要报警功能时,我们必须安装thold插件。当需要添加多台监控设备时,我们只能一个一个的添加,并一个一个的添加相应的监控项,配置繁琐。

这七款产品都很好。但这些产品都是企业级产品吗?总体来说,我们发现七款产品都适合在中小型企业中使用,其中SugarNMS可以在大型网组中使用,支持10000+设备量监控,高容量或地理分布部署。从整体表现的话SugarNMS可能更胜一筹。SugarNMS好安装、界面简洁、拓扑功能强大,配置灵活,信息易于阅读,支持远程部署及监控。
我们发现每审查一次网络监控工具,都会发现他们的改进,挖掘客户的监测需求是供应商共同的管理重点。这七款产品除Prometheus是一个完全开源的、不依赖与任何商业公司的项目,有多个公司、个人维护支持,其他都有商业付费版,但是还有所不同,例如,Zabbix仅在一个具有可选付费支持计划的开放源代码版本中可用。而SugarNMS则提供了平台级的版本,支持了自定义扩展和开发集成。如果要在大型企业或高度复杂的环境中使用,最好咨询供应商并进行商业评估。