写点什么

14 主流的开源监控系统介绍

  • 2022 年 1 月 14 日
  • 本文字数:1647 字

    阅读完需:约 5 分钟

14 主流的开源监控系统介绍

监控系统通常的基本架构


被监控的系统可以是独立的应用程序或服务的集合,也可以是单独的应用程序。如果系统主动地提供了被监控的数据,那么监控是入侵式的且影响系统设计;如果系统不主动提供被监控的数据,那么监控是非入侵的。外部系统可以通过健康检查、性能或事务监控来监控系统或者应用级别的状态。


通过代理或者非代理收集的数据最后都发送到监控中心数据库中。一般来说这个中心数据库是分布式的,是逻辑上的中心而不是物理上的中心。数据从初始收集到中心数据库的每一步都可以进行过滤和聚合。判断过滤和聚合量的条件包括:生产数据的大小、本地节点的潜在故障和必要通信的传输粒度。因为本地节点可能发生故障且数据变得不可用,所以从本地节点获取数据并监控是重要的。将所有数据直接发送到中心数据库可能会导致网络阻塞,因此,在设计监控架构时,选择从本地节点到中心数据库之间的中间步骤以及在每一步过滤和聚合数据是重要的架构决策。


一旦监控数据被收集起来,就可以做很多事情。可以配置报警来触发警告以通知运维人员或其他系统。使用图形化和仪表盘,可以将系统状态的变化可视化地展现给运维人员。监控系统也允许运维人员得到详细的监控数据和日志,这对错误诊断、根本原因分析和确定解决问题的最佳方案具有重要的作用


监控系统有 4 个发展阶段,也是度量监控系统的方法,以及对监控改进的指南,可用于评估当前监控系统的成熟度级别以及可采用的改进步骤。

第 1 级是组件监控,可以反映每个组件的状态并根据策略进行警报通知。

第 2 级是对各层级进行监控,从各个层级、角度收集运行信息,包括各种指标度量值、输出日志、服务追踪信息等。

第 3 级不仅查看所有的状态、事件和度量,还查看依赖关系并跟踪动态变更情况,数据用可视化工具展现,以实时洞察整个系统的总体运行情况。

第 4 级是智能化,是更远大愿景的一部分,能够在发生故障之前发送警报,通过扩展或重路由服务来实现自我治愈、异常检测等。

监控系统成熟度各级的输入与输出

当从监控成熟度第 1 级晋升到第 2 级,将获得对系统更深入的洞察力,将更好地理解服务的可用性和性能。从第 2 级到第 3 级,将可以在整个 IT 系统中获得全栈的可见性,并精确地理解业务流程、应用程序和基础架构之间的依赖关系。无论是云计算、应用程序、还是基础设施,都可以采用更加主动的监控方法来支持数字企业的需求。最后进入第 4 级时,将获得预测分析能力,这将帮助企业预测可能发生的问题、指出可能的原因,IT 维护更智能、敏捷、高效。


对于监控系统软件,开源的解决方案有流量监控(MRTG、Cacti、Smokeping、Graphite 等)性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB 等),每种软件都有自己的特点和功能,有各自的侧重点和目标,然而,在设计理念和实现方法上都大同小异,具有共同特征。


Zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。能监视各种网络参数,保证服务系统的安全运营,并提供良好的通知机制使系统管理员能够快速定位/解决存在的各种问题。Zabbix 由两部分构成——Zabbixserver 与可选组件 Zabbix agent。Zabbix server 可以单独监视远程服务器的服务状态;同时也可以与 Zabbix agent 配合,可以轮询 Zabbix agent 主动接收监视数据,还可被动接收 Zabbix agent 发送的数据。另外,Zabbix server 支持 SNMP、IPMI、JMX、Telnet、SSH 等多种协议,将采集到的数据存放到数据库,然后对其进行分析整理,若达到条件触发则告警。Zabbix 支持二次开发,其灵活的扩展性和丰富的功能是其他监控系统所不能比拟的,相对来说,它的总体功能做得非常优秀。

OpenTSDB 通过 HBase 存储所有的时序(无须采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有指标,支持永久存储,可以做容量规划,并可很容易地接入现有的报警系统。OpenTSDB 可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的指标,并进行存储、索引以及服务,从而使这些数据更容易被人理解,如 Web 化、图形化等。


发布于: 刚刚阅读数: 6
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
14 主流的开源监控系统介绍