云生态下的开源应用程序监控工具

开源
过去几年中,开源产品和商业监控应用程序不断涌现,本文我介绍几个最受欢迎的开源云应用监控工具。

Linux容器已经被业界广泛用于开发甚至生产系统。Docker和Kubernetes已经被开发运营人员广泛了解和熟悉。但是容器云架构下系统监控确实一个常常被忽略的问题。尽管容器部署主要涉及在每个容器内运行单个应用程序或服务,但是随着部署规模的扩大,对环境状态和运行状况的可见性变得越来越重要,而不仅仅是在操作系统或应用程序级别,而且在容器级别也是如此。

云生态监控和日志处理领域分为实时数据库,度量标准收集器,可视化工具,轮询器,记录器等。过去几年中,开源产品和商业监控应用程序不断涌现,本文我介绍几个最受欢迎的开源云应用监控工具。

Prometheus

云生态下的开源应用程序监控工具

Prometheus(普罗米修斯)是领先的开源云监视解决方案,除其他事项外,其数据以时间序列数据库存储,天然适合监控数据库存储。普罗米修斯是CNCF(Cloud Native Computing Foundation,原生云计算基金会)支持的九大项目之一,也是CNCF中,除了也是Kubernetes后第二大托管项目。普罗米修斯获得了包括谷歌,红帽,IBM等公司在内的众多云供应商的支持,是云应用首选监控程序。

普罗米修斯最初源于音乐托管网站SoundCloud,接着成为了Docker生态系统的重要组成部分。CoreOS团队还积极地使用Prometheus来改善Kubernetes的性能。

普罗米修斯已发展成为高级系统监控和告警工具箱,能够监视各种资源,包括容器,Hadoop集群,各语言运行时以及Python、Golang、JVM之类的应用程序堆栈。

云生态下的开源应用程序监控工具

简而言之,普罗米修斯是一个开源监控系统,时间序列数据库以及用于实现代码的框架。但是,普罗米修斯不能生成度量标准,需要要以HTTP可以解析的语言将度量标准提供给它。关于普罗米修斯参看虫虫之前文章,有详细介绍。

Graphite

云生态下的开源应用程序监控工具

Graphite是一种流行的开源工具,用于构建基于Web的仪表板以进行监视和分析。Graphite最初是由Orbitz的Chris Davis于2006年用python创建的一个辅助项目。用于监控和绘制计算机系统的性能,最终形成了一个基本监控系统,并于2008年以Apache 2.0 license的授权开源发布。目前已经获得了GitHub,Salesforce和Reddit等众多大公司提供和支持。

Graphite由三部分组成:

  • Carbon 时间序列数据的守护程序,用于接收数据;
  • Whisper(类似于RRDtool)数据库和存储;
  • Graphite-web的Web应用程序,可按需呈现图形。

云生态下的开源应用程序监控工具

Graphite在企业中仍然很流行,原因是由于其自动化程度很高,其中所有新数据点都能在数据库中自动创建。

云生态下的开源应用程序监控工具

Graphite本质上是三个相互耦合的独立工具,也可以单独使用并与其他工具集成。

Riemann

云生态下的开源应用程序监控工具

上面我们说了Graphite所有组件都耦合可以单独使用。Riemann就是用于替代Graphite中Carbon守护程序的。尽管Carbon会监听指标并将其写入whisper存储数据库,但由于Carbon是基于Python开发的,容易在性能上遇到瓶颈,这时候我们可以用Riemann代替它。Riemann使用 Clojure 语言实现以 "事件流(event streams)方式处理数据和汇总。但是,Riemann不是度量收集器。

Riemann的工作方式是从事件流(例如指标,日志,事件,主机和服务)收集数据,然后根据需要存储,图形或警报。基于事件流的一栈环境下一旦事件流停止流动,就能马上发现系统故障或网络断开。Riemann还能收集和处理各种形式的事件,事先监控。

Riemann具有超快速度和性能。其官方网站宣传的,Riemann可以在商用 x86 硬件条件下,Riemann 每秒就可以处理数百万次事件,延迟时间却只有亚毫秒,5 毫秒可以完成 99 次。

在云环境条件下,Riemann也可以容器化方式运行和组合:

  • Riemann 服务器进程,由 Clojure 语言编写,是主流处理引擎;
  • Riemann-health 程序,实现Riemann 集群的健康/使用指标报告;
  • Riemann-dash 程序,一个小型 Sinatra 应用,为 Riemann 提供网页控制台界面。
  • 作为云部件,Riemann也可将事件供应给Prometheus系统。

Riemann在Clojure开发人员中特别受欢迎,因为配置文件实际上是一些可执行的Clojure代码,可以高度定制和构建。

Grafana

云生态下的开源应用程序监控工具

Grafana是用Golang 开发的开源的度量分析与可视化套件,主要用于大规模指标数据的可视化展现方式,是网络架构和应用分析中最流行的时序数据展示工具。可以支持对Zabbix,Graphite,ElasticSearch,OpenTSDB,Prometheus和InfluxDB数据汇总、指标仪表板和图形编辑器。

云生态下的开源应用程序监控工具

Grafana可以让用户轻松创建和编辑仪表板。Grafana非常适合分布式数据存储环境下的数据汇总、查询和可视化,也能对接指标阈值设置和告警。特别适用于实现高质量的交互式可视化和图形。

Weave Scope

Weave Scope是容器生态中,可以自动进行容器APP映射,直观地理解、监视和控制基于容器化微服务的应用程序。Weave Scope涵盖监视,可视化,管理和故障排除。我们可以用Weave Scope可以在容器级别上监视和控制堆栈,并确切地了解容器在做什么以及原因,零配置并自动检测所有进程,容器和主机,该工具可以检查速度框,对于任何开发人员来说都是节省时间的工具。

Weave Scope可以监控kubernetes集群中的一系列资源的状态、资源使用情况、应用拓扑、scale、还可以直接通过浏览器进入容器内部调试等。

云生态下的开源应用程序监控工具

随着越来越多的工具针对更特定的工作流程进行开发,没有一种工具在堆栈中占据永久的位置,并且可以随时替换其中的任何一种以获得更好,更高效或更具自定义性的东西。但是就目前而言,这些开源监视工具在每个DevOps团队的监视工具中占据着至关重要的位置。

ELK Stack

Elasticsearch是ELK栈的一部分,全栈套件还有有Kibana,Beats和Logstash。尽管ELK栈被设计为集成解决方案,其中Elasticsearch通常用作支持工具。Elasticsearch是基于Luncene的java全文搜索引擎,也是最常用最强大的分布式可收缩日志存储和检索集群。Elasticsearch提供了RESTful广泛而且精巧的API供访问,该API可以支持近实时性的搜索用以支持数据发现。它几乎与所有内容兼容,并与其他工具一起广泛用于查询数据库。

云生态下的开源应用程序监控工具

Kibana是一个基于Elasticsearch的分析和可视化平台,可直观地浏览Elasticsearch集群中的数据。由于Kibana只是ELK栈中的可视化部分,因此也可以被替换为Grafana,Graphite或其他可视化工具。

云生态下的开源应用程序监控工具

Logstash是类似于Riemann的另一种流处理系统,可以从日志,指标,Web应用程序,数据存储和各种AWS服务中提取流数据。Logstash还具有一个输出插件,可以通过该插件将特定事件发送到Riemann,例如可警报的事件或需要Riemann采取措施的事件。

云生态下的开源应用程序监控工具

ELK栈已经被广泛地应用于运维实时日志处理架构中,通常用于日志系统的存储、处理和分析汇总。但是由于其实时性质,在云生态中,可以用于云集群的监控和故障排查分析。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2009-08-27 11:40:43

ibmdw云计算

2019-09-02 15:55:20

云计算监控安全

2012-07-18 11:29:32

ibmdw

2010-06-28 09:10:14

开源

2012-02-08 15:06:31

ibmdw

2018-10-18 17:37:55

2018-09-30 15:58:34

2015-01-06 09:59:59

云应用程序Java开发SQL

2020-12-11 19:06:03

Kubernetes工具应用程序

2018-11-23 08:54:27

服务器程序监控

2013-11-19 15:35:01

2018-11-06 09:53:27

2017-12-10 14:13:14

云服务云原生应用程序

2010-11-18 09:32:19

微软开源Web应用程序

2021-07-09 05:24:24

云监控工具开源云平台

2009-11-18 09:25:02

linux应用程序

2021-10-11 09:00:00

云原生Kubernetes安全

2011-12-06 10:10:59

云计算移动应用

2020-12-28 14:40:47

云计算云应用SaaS

2015-02-11 09:15:46

云部署嵌套虚拟化PaaS
点赞
收藏

51CTO技术栈公众号