3

常用开源监控系统分析推荐(必备知识)|附优质监控书籍资源

 2 years ago
source link: https://my.oschina.net/yunzhihui/blog/5394924
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
摘要:在互联网信息爆炸式快速发展的今天,各类复杂多样的平台系统相继涌出。如何选择最佳的监控产品以更好地维护这些平台和系统是每个 IT 人员都需面临的难题。本文将从开源监控产品的起源和发展,详细解析各个时代热门监控产品的优势和劣势,并结合各个监控产品的使用场景,帮你选择出最适合自己的开源监控产品。因篇幅和时间原因,下面介绍的资料和理解可能和实际情况有所偏差,欢迎大家留言或者加入微信群批评指正。

作者:Ethan Chen 云智慧解决方案架构师,拥有丰富的运维理论及实战经验。致力于将客户需求有效地转化为公司产品场景,让客户更有效率地理解公司产品并为其提供优质的技术支撑。

开源监控软件的前世今生

如下面谷歌趋势图所示(因有些单词有二义性,具体数值可忽略,只看趋势),与其他开源监控产品相比,2004 年的Nagios仍处在较高位置,但由于Nagios没有紧跟容器脚步、且配置复杂等缺点导致热度直线式下降。反观Zabbix,从2004年至今,由于其监控的全面性,使得其热度一直处于平稳上升阶段。此外,基于RRD存储开发的Ganglia与Cacti由于产品自身的一些缺点,热度也在逐渐下降。下文我们将详细介绍各个产品的具体情况。

古代(2000-2010)

Zabbix(2004)

Zabbix于1998年开发,2004年正式Release。较于其他开源监控产品,Zabbix拥有强大的指标数据存储功能、画图功能,并且真正地做到了All in One全面监控,解决了运维人力和时间成本上的问题。
基于以上功能优点,以及大量完善的教程文档,Zabbix在国内迅速传播发展。现如今,Zabbix已经进入了5.X时代,前端界面的优化、ES及TimescaleDB等时序数据库的支持,使得Zabbix又步入了一个的新的时代。
  • 丰富的插件。Zabbix拥有丰富的MiB库资源以及模版等850多个插件;
  • 易用性、依赖少。基于PHP与MySQL搭建,可用性比较强;
  • 可进行一定颗粒度的权限控制;
  • 文档完善。Zabbix本身定位为企业级分布式监控系统,故拥有完善的文档,活跃的官方社区,且本身也更新得比较频繁,开发比较积极;
  • 国内市场有相关的商业支持。
  • MySQL数据量问题。当MySQL数据量比较大时,存储性能容易出现问题;
  • 可视化问题。自身可视化灵活性较差,需用Grafana等进行弥补;
  • 功能使用率低,80%的用户使用的仍为监控、看图、告警等基础功能,大部分高级功能未能被使用。

使用场景分析

  • 监控基础设施。主机、网络设备监控等;
  • 中小规模监控;
  • 对于大型场景的监控来说仍需注意数据问题。

Nagios(2002)

Nagios是一个主要用于监控系统运行状态和网络信息的监控系统。Nagios能监控所指定的本地或远程主机以及服务,同时提供异常通知等功能。
Nagios拥有4000多个插件,且在很早之前就开始拥有自己的官方插件社区。这里面包括很多应用级别的监控插件。此外,Nagios的通知虽然简单但能覆盖所有场景,以及本身拥有强大的监控任务调度的能力。
  • 功能简单易用,主要的功能是主动检测。
  • 功能过于单一,只能通过主动检测告知结果是否匹配,被动检测功能原生功能较弱;
  • 配置复杂,配置修改主机、报警、阈值等时,在原生Nagios中只能通过修改配置文件来实现,操作较为复杂。
  • 小场景简单监控。对于一些网站、端口等可进行简单监控;
  • 大型场景需要各种花式Hack,需要借助很多第三方的插件进行效率的提升和分布式的扩展。

Centreon(2005)

Centreon是一款开源的软件,主要用于对Nagios的一些功能增强。可通过页面管理Nagios,通过第三方插件实现对网络,操作系统,应用程序的监控。
  • 性能数据可追溯
  • 修改配置需要重启或者重载Nagios主进程
  • MySQL依然存在数据问题
  • 文档资料较少

使用场景分析

  • 适用于百台规模的中等监控
  • 仍需要解决原生Nagios的一些弊端

Check_MK

Check_MK是一款通用的Nagios/Icinga增强工具集。其插件有着相当成熟的检测机制和对硬件服务器的检测手段。非常适合对硬件服务器进行“体检”。
  • 性能数据可追溯
  • 增加变更需要重启Nagios主进程。
  • 因后端存储使用RRD,导致分布式扩展较为困难。
  • 文档资料较少。

使用场景分析

  • 适用于百台到千台以内中等规模监控
  • 需要解决Nagios的一些弊端

Cacti(2001)

Cacti是用PHP语言实现的一个监控软件,它的主要功能是用SNMP服务获取数据,然后用RRD储存和更新数据,当用户需要查看数据的时候用RRD生成图表呈现给用户。
  • 网络设备支持好
  • 有权限控制
  • 早期在IDC覆盖广
  • SNMP依赖只适合特性场景

使用场景分析

  • 简单的IDC托管

Ganglia(2001)

Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。主要是用来监控系统性能,如:CPU 、内存、硬盘利用率, I/O负载、网络流量情况等。
  • 数据集中,部署分布式
  • 适合大规模部署
  • 对集群热点观测性支持较好
  • 集群内UDP广播问题多

使用场景分析

  • 大数据应用
  • 集群较多,关注整体资源使用率

近代(2010-2015)

监控宝( 2010)

监控宝是云智慧推出的新一代用户体验监控工具,从全球节点主动模拟真实用户访问,提供网站性能监控、API监控等服务,持续监测应用程序、网站、网络和数字化服务的可用性和性能,提前诊断,实时告警,帮助客户提升网络应用效能。
  • 全球分布式监测网络。200+ 分布式监测节点覆盖全球112个城市以及主要运营商网络,网络规模持续扩大中。
  • 主动监测。监测节点按照预设规则模拟真实用户发起主动监测,实时掌控网络性能,聚焦用户体验。
  • 立体化覆盖。HTTP/HTTPS/TCP/UDP/TR/DNS/PING等多种协议类型,全面问诊网络、业务健康。
  • 面向业务。通过包含多步请求的事物监控实现业务流程的监测,保障业务的稳定性和可用性。
  • 持续监控。24/7小时全天候监测网站和网络性能,多渠道服务支持,减少可能发生的中断。
  • 快照+MTR。先进的问题诊断与分析机制,问题发生之前和问题恢复之后的数据尽在掌握,快速定位故障。
  • 灵活告警。短信、邮件、微信、语音、API等多种告警方式,确保告警能够被即时送达。
  • 专业的分析报告。提供综合排名、竞品分析、同比/环比、日/周报等多维度的数据报告,满足专业化定制需求。

使用场景分析

  • 网络链路质量监控与评估。通过采集不同地区、不同运营商链路的时延、丢包、网络抖动情况,从时间、地域、运营商等维度综合分析网络链路质量及可用率,快速发现和准确定位网络问题,便于及时进行链路调整,保障全网用户的体验。
  • CDN监控。通过海量的分布式节点模仿真实用户访问,监控CDN性能,评估CDN的加速情况,确保最佳的用户体验,可用于CDN选型评估、CDN加速效果评估、CDN故障排查与定位等使用场景。
  • API接口监测。通过监控API接口的响应时间、可用性和正确性并及时告警来保证API服务的可靠性,可用于API接口性能优化、第三方API接口监控等使用场景。

Graphite(2008)

Graphite是一个开源实时的、显示时间序列度量数据的图形系统,通过其后端接收度量数据,然后以实时方式查询、转换、组合这些度量数据。
  • 指标点分概念引入
  • Grafana支持较早的协议之一
  • 统计函数支持(140+)
  • 指标无Label支持

使用场景分析

  • 在做好数据归并时可用于大规模场景

现代(2015-2021)

Prometheus(2016 )

Prometheus 是由 SoundCloud 开源的监控告警解决方案。存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合。
  • 时序型存储、查询效率高。
  • 支持集群模式,扩展性强。
  • CNCF项目,社区活跃。
  • 一些Exporter采集的指标众多,需进行适当裁剪。
  • 自定义采集脚本需要脚本开发能力(Golang、Python),相比Shell脚本来说学习成本更高一些。

使用场景分析

  • 对于云计算、容器化场景更适合

夜莺(2018)

夜莺是一套分布式高可用的运维监控系统,前身是国内大名鼎鼎的open-falcon。基于一些国内特殊的运维场景和习惯,在运维圈中有着不俗的场景理解和用户体验。
社区活跃,有open-falcon群众基础。
产品设计灵活,人性化。
v4版本自带小型CMDB和自动化。
v5版本全面拥抱开源体系(Prometheus Telegraf)。
v5刚发布,仍然需要一定的时间积累
后端存储的选型多样,需要根据场景进行选择
缺少日志类和Tracing类的监控场景

使用场景分析

所有指标类的监控

未来(2022-)

云原生的出现导致在k8s环境下的可观测性难度极具增加,因此出现了eBPF等新技术,但无奈市场上大部分的客户Linux内核还不足以支持相关的技术。但可以看到的是DataDog skywalking 云杉等目前都在向eBPF进行布局。
除了增强程序自身的可观测性之外,可以预见在不久的将来,随着Linux内核的不断的完善以及客户环境逐渐的成熟。在运维角度可以发力的可观测性的选择一定会越来越多。也希望各位运维的同仁们时刻关注我们的公众号,关注前沿的可观测性的信息。最后给大家介绍一些相关书籍:

优质监控书籍推荐

【Nagios系统监控实践(原书第2版)】https://book.douban.com/subject/25843798/
【Cacti实战】https://book.douban.com/subject/26422185/
【Ganglia系统监控】https://book.douban.com/subject/25706442/
【Graphite监控】https://book.douban.com/subject/35217612/
【监控的艺术:云原生时代的监控框架】https://book.douban.com/subject/35115699/
【监控运维实践:原则与策略】https://book.douban.com/subject/35258085/
【Prometheus云原生监控: 运维与开发实战】https://book.douban.com/subject/35239877/
近日,云智慧开源了 集轻量级、聚合型、智能运维为一体的综合运维管理平台OMP(Operation Management Platform) ,具备 纳管、部署、监控、巡检、自愈、备份、恢复 等功能,可为用户提供便捷的运维能力和业务管理,在提高运维人员等工作效率的同时,极大提升了业务的连续性和安全性。点击下方地址链接,欢迎大家给OMP点赞送star,了解更多相关内容~
微信扫描识别下方二维码,备注 【OMP】加入AIOps社OMP开发者交流群,与更多行业大佬一起交流学习~

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK