「译」十大开源应用程序监控工具

in 网络文摘 with 0 comment  访问: 4,461 次

Linux容器基本覆盖接管了企业,并且我们听到了很多关于Docker和Kubernetes的信息,以至于我们忘记了同样重要的监控和日志收集。Docker继续增长,随之而来的是围绕它构建的服务生态系统的增长。现在,尽管部署容器主要涉及在每个容器内部运行单个应用程序或服务,但随着部署变得越来越大,了解环境的状态和健康状况(不仅仅是操作系统或应用程序级别)变得越来越重要,但在容器层面也是如此。

监控和日志收集工具的领域分为(real-time databases)实时数据库,(metric gatherers)指标采集,(visualizers)可视化器,(pollers)轮询器,(loggers)记录器等。在过去的几年里,开源产品和商业监控应用的爆炸式增长,以下是其中最流行的10个。

No.1 Prometheus

15303768851833.jpg
Prometheus是一个领先的开源云监控解决方案,可处理时间序列监控等等。它也是CNCF支持的九个项目之一,也是继Kubernetes之后由CNCF主办的第二个项目。这使其成为监控云应用程序的首选,纯粹是因为包括Google,CoreOS,RedHat,IBM等公司在内的多厂商支持。Prometheus最初由音乐托管网站SoundCloud开发,从此成为Docker生态系统不可或缺的艺术。普罗米修斯还积极被CoreOS团队用来改善Kubernetes的性能。

Prometheus已经开发出了一个高级的系统报警和监控工具包,该工具包能够监控范围广泛的资源,包括容器、Hadoop集群、语言运行时和应用程序栈(如Python或Go)。很多人把它和Graphite做比较(见下文),尽管它增加了很多功能,包括报警。总之,Prometheus是一个开源的监控系统,时间序列数据库,以及一个实现你代码的框架。然而,Prometheus并不生成指标,您必须让指标通过http以一种它能够理解的语言提供给它。

No.2 Graphite

Graphite是一种流行的开源工具,用于构建用于监控和分析的基于Web的仪表板。虽然它已经存在了一段时间,并且最初由Orbitz的Chris Davis在十多年前制造和设计,用于监控和绘制计算机系统的性能,但它仍然用于生产,由许多大公司如GitHub,Salesforce和Reddit。虽然Graphite不会收集指标或与指标收集器捆绑在一起,但要找到一个通用指标收集器来将您的指标提供给Graphite并不难。Graphite由三部分组成:Carbon,它是一个监听时间序列数据的守护进程,一个名为Whisper的简单数据库(类似于RRDtool)以及一个名为Graphite-web的Web应用程序,可根据需要呈现图形。Graphite在企业中仍然非常流行,其中一个原因可能是自动化水平,其中所有新数据点都在数据库中自动创建。

由于在生态系统周围开发生态系统,企业工具的现代格局可能会特别令人困惑。更为复杂的是像Graphite这样的工具,它们基本上是三个独立的工具,它们可以单独使用,也可以与其他工具集成在一起。以下是当今云原生景观的图像,您可以在右侧的框中看到监视和分析。
15303811556045.jpg

No.3 Riemann

您可以使用Graphite webapp绘制图像,但如果您想使用另一个守护进程而不是Carbon,该怎么办?这给我们带来了Riemann。虽然Carbon倾听指标并将它们写入存储数据库,但它在规模上遇到了一些麻烦,很多用户喜欢用Riemann替换它。然而,黎曼不是一个公制收集器,而是一个流处理器。Riemann用于汇总和处理事件流,同时为流程添加一些警报功能。作为一个流处理系统,它可以用来向Prometheus数据库提供事件。它在Clojure开发人员中尤其受欢迎,因为配置文件实际上是一些可执行的Clojure代码,可以高度定制和构建。Riemann通过从指标,日志,事件,主机和服务等事件流收集数据,然后根据需要收集商店,图表或警报。

No.4 Elasticsearch

Elasticsearch是ELK Stack的一部分,该功能还包含Kibana,Beats和Logstash。尽管ELK堆栈被设计为一个集成解决方案,但Elasticsearch通常用作支持工具,并且是堆栈中的一个强大的补充。Elasticsearch是一个搜索引擎,可通过广泛和精心设计的API访问,支持极其快速的搜索以支持您的数据发现应用程序。它几乎与所有内容兼容,并与其他工具一起广泛使用以查询数据库。

No.5 Kibana

Kibana是一个基于Elasticsearch的分析和可视化平台,可让您以可视方式浏览弹性堆栈。由于Kibana只是堆栈的可视化部分,因此它经常会换出Grafana,Graphite或其他可视化工具。

No.6 Logstash

Logstash是Riemann的另一个流处理系统,可以从日志,指标,Web应用程序,数据存储和各种AWS服务中获取流数据。Logstash还有一个输出插件,您可以通过它向Riemann发送特定事件,例如可警报的事件或需要Riemann采取行动的事件。再一次,Riemann是一个非常受欢迎的独立工具,经常与其他工具一起使用。

了解他们如何一起工作就像看一部非常复杂的肥皂剧。很多这些工具看起来像表面上的其他工具一样直接替换,但如果深入挖掘,它们都是交叉兼容的,可以一起使用以实现更具体的目的。

No.7 Grafana

Grafana是Graphite,ElasticSearch,OpenTSDB,Prometheus和InfluxDB的开源,功能丰富的指标仪表板和图形编辑器。Grafana允许用户轻松创建和编辑仪表板。Grafana允许您查询,可视化,提醒和了解您的指标,无论它们存储在何处。它特别适用于实现高质量的交互式可视化和图形。
Grafana.gif

No.8 Kafka

Kafka是另一个有趣的流处理系统,其中一个流是一个无限的,不断更新的数据集。虽然它最初由LinkedIn开发为可扩展的pub-sub消息传递系统,但它已经发展成为实时数据管道,分布式和复制日志分析器以及统一数据集成堆栈。Kafka通常安装在需要在其他地方生成或转发数据的每台主机上,这些主机的集合构成了Kafka集群。

No.9 FluentD

在这里,我们有另一个由CNCF主办的项目。FluentD是一款旨在统一数据收集和消费的开源日志记录解决方案。快速启动菜单声称可立即使用户拥有超过125种系统类型的log-everything架构。该声明显然得到了CNCF的支持,而FluentD的最大用户目前收集了超过50,000台服务器的日志。它的受欢迎程度主要是由于它主要是用C语言编写的,而且它将JSON等日志视为流行的机器可读格式。

No.10 Weave Scope

15303826359383.jpg
Weave Scope涵盖监控,可视化,管理和故障排除。它还自动创建您的应用程序的地图,无需任何编码或设置。这使您可以在容器级别监视和控制堆栈,并实际找出容器正在执行的操作以及原因。通过零配置和所有进程,容器和主机的自动检测,此工具可以检查速度框,并且对于任何开发人员来说都是明确的节省时间。

随着越来越多的工具开发用于更具体的工作流程,没有工具在堆栈中具有永久性位置,并且任何工具都可以在任何给定时间换出更好,更高效或更多定制的东西。但就目前而言,这些开源监控工具在每个DevOps团队的监控工具中都占有重要位置。

英文原文: http://techgenix.com/open-source-application-monitoring-tools/

WeZan