【IT168技术】在运维工具大宝典系列第一篇文章《运维工具大宝典之运维需求篇》中,云智慧对上云企业的运维需求进行的汇总,其中第6条“对开源的强烈需求”主要是来自运维人员,特别是技术大牛,他们喜欢一切尽在掌握的感脚,而这就需要开源运维工具。
目前流行的开源运维工具如Zabbix、Nagios等大部分来自国外,虽然这些开源产品功能非常强大,但对技术要求很高,而且缺少足够的中文文档和本土服务支持,一般运维人员要想用好难度很大。
于是就有国内IT厂商小米、TalkingData对其自主开发的运维系统进行了开源,同时作为商用监控服务商代表的云智慧,也对其监控宝产品进行逐步开源,让运维、开发人员在获得便捷部署和易用性的同时,可根据自己的业务需求进行灵活的二次开发。
下面就是云智慧关于开源监控产品的详细评测:
Zabbix
推荐星级:★★★★★
Zabbix是一个基于WEB界面的提供分布式系统监控以及网络监控功能的企业级开源运维平台,也是目前国内互联网用户中使用最广的监控软件,云智慧遇到的85%以上用户在使用Zabbix做监控解决方案。
入门容易、上手简单、功能强大并且开源免费是云智慧对Zabbix的最直观评价。Zabbix易于管理和配置,能生成比较漂亮的数据图,其自动发现功能大大减轻日常管理的工作量,丰富的数据采集方式和API接口可以让用户灵活进行数据采集,而分布式系统架构可以支持监控更多的设备。理论上,通过Zabbix提供的插件式架构,可以满足企业的任何需求。
用户群:85%以上的泛互联网企业。
优点:
1. 支持多平台的企业级分布式开源监控软件;
2. 安装部署简单、管理方便;
3. 功能强大,监控灵活,可实现复杂多条件告警;
4. 多种数据采集插件,灵活集成;
5. 自带画图功能,得到的数据可以绘成图形;
6. 同时支持调用脚本,很方便;
7. 提供多种API接口,定制化最高的监控软件;
8. 出现问题时可自动远程执行命令(需对agent设置执行权限);
缺点:
1. 项目批量修改不方便;
2. 社区虽然成熟,但是中文资料相对较少,服务支持有限;
3. 入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发,难度较大;
4. 系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;并且自定义的项目报警需要自己设置,过程比较繁琐;
5. 缺少数据汇总功能,如无法查看一组服务器平均值,需进行二次开发;
6. 数据报表需要特殊二次开发定义;
Nagios
推荐星级:★★★★☆
Nagios原名NetSaint,是一款开源的企业级监控系统,于1999年推出,由Ethan Galstad开发并维护至今。Nagios能够实现对系统CPU、磁盘、网络等方面参数的基本系统监控,而且还能监控包括SMTP,POP3,HTTP,NNTP等各种基本的服务类型。另外通过安装插件和编写监控脚本,用户可以实现应用监控,并针对大量的监控主机和多个对象部署层次化监控架构。
Nagios最大的特点是其开发者将Nagios设计成监控的管理中心,尽管其功能是监控服务和主机的,但是他自身并不包括这部分功能代码,所有的监控、告警功能都是由相关插件完成的。
用户群:全球超过100万用户。许多跨国企业和组织都在使用(西门子、飞利浦、雅虎、索尼、AOL等),尤为适合复杂IT环境的企业。
优点:
1. 自动化运维,出错的服务器、应用和设备会自动重启;
2. 配置灵活,监控项目很多,可以自定义shell脚本,通过分布式监控模式,非常适合大型网络;
3. 自动日志滚动;
4. 支持以冗余方式进行主机监控;
5. 在服务事件和主机事件之间良好的相关性;
6. 命令重新加载配置文件无需打扰Nagios的运行;
7. 报警设置多样性;
缺点:
1. 很弱的事件控制台;
2. 对性能、流量等指标的处理不给力;
3. 看不到历史数据,只能看到报警事件,很难追查故障原因;
4. 配置复杂,初学者投入的时间、精力比较大;
5. 插件的易用性不好;
Ganglia
推荐星级:★★★★☆
Ganglia是加州大学伯克利分校发起的一个开源集群监控项目,设计之初是用于监控数以千计的网络节点。Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统。它已被广泛移植到各种操作系统和处理器架构上,目前世界各地成千上万的集群中应用。
用户群:适用于服务器集群用户。
优点:
1. 适合监控系统性能,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用;
2. 支持浏览器方式访问,但不能监控节点硬件技术指标;
3. 适合大型集群环境;
4. 部署方便,不用逐台机器添加配置;
5. 一台服务器能够通过不同的分层管理上万台机器;
6. 可以自定义监控项,监控展示有表格和图像两种,支持手机版。
缺点:
1. 没有内置的消息通知系统;
2. 没有报警机制,出现问题不能够及时报警;