注册 登录
  • 欢迎访问"运维那点事",推荐使用Google浏览器访问,可以扫码关注本站的"微信公众号"。
  • 如果您觉得本站对你有帮助,那么可以扫码捐助以帮助本站更好地发展。

开源监控系统现状分析

Zabbix 彭东稳 12121次浏览 已收录 0个评论

开源监控系统现状分析

在开源监控系统中,整体监控解决方案有MRTGCactiSmokePingGraphite NagiosZabbixZenoss CoreGangliaOpenTSDB等可供选择,以及独立组件数据采集(StatsDCollectD)、数据存储(Influxdb)和绘图展示(Grafanasignal FX)。每种软件都有自己的特点和功能,各自的侧重点和目标不完全相同,在设计理念和实现方法上也大同小异,但都具有共同特征,例如,采集数据、分析展示、告警以及简单的故障自动处理。最终都能达到对IT系统服务可用性的一个完全展示,根据业务组合使用。

Cacti

Cacti(英文含义为仙人掌)是一套基于PHPMySQLSNMP RRDtool开发的网络流量监测图形分析工具,如下图所示。它通过snmp_get 来获取数据,使用RRDtool 绘图,但使用者无须了解RRDtool 复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、主机设备以及任何一张图,还可以与LDAP 结合进行用户认证,同时也能自定义模板,在历史数据的展示监控方面,其功能相当不错。我用的最多的就是用它来监控网络设备,其它功能感觉还是很弱相对其它软件。

开源监控系统现状分析

Cacti通过添加模板,使不同设备的监控添加具有可复用性,并且具备可自定义绘图的功能,具有强大的运算能力(数据的叠加功能)

官方网站:http://cacti.net/

中文站:http://cacti.xxoo.net/

Nagios

Nagios是一个企业级的监控系统,可监控服务的运行状态和网络信息等,并能监视所指定的本地或远程主机参数以及服务,同时提供异常告警通知功能等。Nagios的功能侧重于监控服务的可用性,能及时根据触发条件告警。Nagios可运行在Linux UNIX 平台上,同时提供一个可选的基于浏览器的Web界面,以方便系统管理人员查看网络状态、各种系统问题,以及日志等,如图

开源监控系统现状分析

目前,Nagios 也占领了一定的市场份额,不过Nagios并没有与时俱进,已经不能满足于多变的监控需求,架构的扩展性和使用的便捷性有待增强,其高级功能集成在商业版Nagios XI中。

官方网站:https://www.nagios.org/

Ganglia

Ganglia是一个跨平台的、可扩展的、高性能的分布式监控系统,如集群和网格。它基于分层设计,使用广泛的技术,用RRDtool存储数据,具有可视化界面,适合于对集群系统的自动化监控。其精心设计的数据结构和算法使得监控端到被监控端的连接开销非常低。目前已经有成千上万的集群正在使用这个监控系统,可以轻松地处理2000个节点的集群环境。该软件的部分截图,如图

开源监控系统现状分析

官网网站:http://ganglia.info/

Zabbix

Zabbix是这两年非常火的一个监控系统,很多企业都在使用。它是一个分布式监控系统,支持多种采集方式和采集客户端,有专用的Agent(代理),也可以支持SNMPIPMIJMXTelnetSSH 等多种协议,它将采集到的数据存放到数据库,然后对其进行分析整理,达到条件触发告警。其灵活的扩展性和丰富的功能是其他监控系统所不能比的。相对来说,它的总体功能做得非常优秀,其界面如下图:

开源监控系统现状分析

zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。

从以上各种监控系统的对比来看,Zabbix都是具有优势的,其丰富的功能、模板丰富、可扩展的能力、二次开发的能力和简单易用的特点,读者只要稍加学习,即可构建起自己的监控系统。

官方网站:http://www.zabbix.com

中文站:http://www.zabbix.net.cn/

Open-Falcon

国产开源企业级监控系统,小米公司运维团队开发。Open-Falcon 整体可以分为两部分,即绘图组件、告警组件。其中:安装绘图组件负责数据的采集、收集、存储、归档、采样、查询、展示(Dashboard/Screen)等功能,可以单独工作,作为time-series data的一种存储展示方案。安装告警组件负责告警策略配置(portal)、告警判定(judge)、告警处理(alarm/sender)、用户组管理(uic)等,可以单独工作。

小米开发团队简述:

监控系统业界有很多杰出的开源监控系统。我们在早期,一直在用zabbix,不过随着业务的快速发展,以及互联网公司特有的一些需求,现有的开源的监控系统在性能、扩展性、和用户的使用效率方面,已经无法支撑了。因此,我们在过去的一年里,从互联网公司的一些需求出发,从各位SRESADEVS的使用经验和反馈出发,结合业界的一些大的互联网公司做监控,用监控的一些思考出发,设计开发了小米的监控系统:Open-Falcon

值得关注的特性

l  强大灵活的数据采集:通过配套的Falcon-agent,可以自动采集400多项单机指标,也可以通过用户自定义的插件来扩大采集项的范围。用户也可以通过其他方式获取到相关的指标,比如通过SNMP方式获取网络设备的相关运行指标,然后主动推送给监控系统。

l  良好的水平扩展能力:监控系统要能通过水平扩展来支撑业务的快速发展。

l  高效率的告警策略管理:高效的用户配置界面、支持策略模板、模板继承和覆盖、多种告警方式、支持回调动作。

l  人性化的告警设置:支持最大告警次数、告警级别设置、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期,支持告警合并。

l  高效的历史数据查询:采用RRDtool的数据归档策略,秒级返回上百个指标一年的历史数据。

l  人性化的Dashboard:多维度的数据展示,用户自定义Dashboard等功能。

l  高可用:整个系统无核心单点,易运维,易部署。

开源监控系统现状分析

官方网站:http://open-falcon.org/

Graphite

Graphite是一个用于采集网站实时信息并进行统计的开源项目,可用于采集多种网站服务运行状态信息。Graphite服务平均每分钟有4800次更新操作。实践已经证实要监测网站发发生什么是非常有用的,它的简单文本协议和绘图功能可以方便地即插即用的方式用于任何需要监控的系统上。

Graphitepython便携,采用django框架,sqlite数据库存储,自有简单文本协议通讯,绘图功能强大。侧重解决两个问题:实时可视化和实践序列数据的存储。其实严格来说,Graphite只是一个根据数据绘图的工具,数据收集通常由第三方工具或插件完成,它自带了carbonwhisper,还可根据其协议选用别的数据源提供其绘图,官方描述,预计用Ceres替代Whisper。现在豆瓣、GoogleGithub以及本人公司B站都在使用。

开源监控系统现状分析

官方网站:http://graphite.readthedocs.org/en/latest/

其他组件

InfluxDB

InfluxDB是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展,向这个时间序列数据库插入数据,每条数据都会自动附加上两个字段,一个时间,一个序列号(用来作为主键的)。

特点:无结构,可以是任意数量的列;scalable;提供一系列统计函数,方便统计;内置http支持,使用http读写;支持类似SQL语言的PQL;自带管理工具。管理界面如下所示:

开源监控系统现状分析

官方网站:https://customers.influxdb.com/

collectd

collectd其实也是一个守护(daemon)进程,用来收集系统性能数据和提供各种存储方式来存储不同值的机制。具体可以参考Collectd的官方网站。

collectd不仅仅是收集性能数据,还根据这些数据周期性统计系统的相关信息,以这些统计信息为依准,检查当前服务器性能和预测系统未来,但它本身不能生成图形——虽然它能写 RRD文件,但是不能从这些文件生成图形,所以一般需要结合一个数据绘图工具Graphite。像VPSee就是选用collectd来收集机器的各个性能参数。

相对于其他收集系统性能指标的项目,collectd有一定的优点,比如嵌入式系统,C语言开发(高效)、无需系统cron支持(独立)、简单易用等,此外他还包含超过70多种插件以及文档支持。

官方网站:https://collectd.org/

StatsD

简单来讲,StatsD就是一个简单的网络守护进程,基于Node.js平台,通过UDP或者TCP方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,如Graphite

StatsD最初是由EtsyErik Kastner写的提供Graphite/Carbon指标的前端代理,初衷是为了汇总和分析应用指标。它基于两大功能:计数和计时。最开始使用Node,后来也实现了其他语言。通过Statsd,能通过特定语言的客户端检测应用程序的指标。基于个性化需求,可以通过Statsd收集任何想要的数据。Statsd通过发送UDP数据包来调用每个Statsd服务器。

Grafana

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite,InfluxDB和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。Graphite作为一个可视化的控件,不仅包含可视化还自带存储的部分。但是单论可视化,Grafana是做得最好的一家,其展现形式丰富,可配置项目巨细靡遗。但还有一款Signal FX后来居上,也参与到Dashboard的竞争中,其官网https://signalfx.com/。

开源监控系统现状分析

官网地址:http://grafana.org/


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (5)or分享 (0)
关于作者:

您必须 登录 才能发表评论!