3

提升应用可观察性的八款热门工具推荐

 1 year ago
source link: https://www.51cto.com/article/749962.html
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

提升应用可观察性的八款热门工具推荐

作者:安全牛 2023-03-23 13:48:00
本文收集整理了8款主流的可观察性工具,并对其应用特性、不足和典型应用场景进行了分析,可为企业组织应用选型提供参考。

可观测性不是一个新鲜的名词,主要是指通过分析数字化应用系统的指标(Metrics)、链路(Traces)、日志(Logs)等数据,构建出完整的态势观测模型,从而实现快速的威胁发现和故障诊断。在许多情况下,可观察性会被错误理解成是“系统监控”的同义词,但随着数字化应用的深入,特别是随着云原生技术的发展,基于容器和微服务化的应用规模更加庞大,复杂的云上环境以及应用系统的分布性、复杂性、动态性,使得故障定界和检测分析非常困难,而可观测性无疑是降低这种难度的有效手段之一。因此,有更多企业发现部署可观察性产品的能力和价值。

目前,研究机构Gartner已将应用可观测性列为“2023年十大战略技术趋势”之一。安全研究人员表示,成功实现可观测性的企业机构,会在数字化业务开展中建立竞争优势,企业需要找到合适的工具并尽快部署使用。本文收集整理了8款主流的可观察性工具,并对其应用特性、不足和典型应用场景进行了分析,可为企业组织应用选型提供参考。

1. Prometheus

图片

Prometheus是一款开源工具,广泛用于云原生环境中的可观察性获取。它可以收集和存储时间序列数据,并提供可视化工具来分析这些数据。

关键特性与不足:

可以从各种来源获取指标,包括应用程序、服务和系统;

可以将收集到的数据存储在时间序列数据库中,并可以高效地查询和聚合数据;

带有一个内置的警报系统,可以根据查询触发警报;

可以自动检测和抓取运行在多个环境中的服务的指标,比如Kubernetes和其他容器编排系统;

能够与Grafana灵活地集成,允许它创建仪表板来显示和分析Prometheus指标。

不能提供内置的根本原因分析;

需要将所有数据存储在内存中,因此可能会占用大量计算资源;

目前还不支持嵌套字段和连接。

主要应用场景:

  • 监控指标收集和存储;
  • 自动化报警;
  • 异常服务行为发现。

​https://prometheus.io/​

2. Grafana

图片

Grafana是一个开源工具,主要用于对数据的可视化和监控。它允许用户轻松地创建和共享交互式仪表板,对来自不同来源的数据进行可视化分析。

关键特性与不足:

  • 可以创建定制化的交互式仪表板,对来自各种数据源的指标和日志进行分析;
  • 允许用户根据其指标的状态设置警报,以发现潜在的问题;
  • 允许用户设置异常检测,并根据其指标中的异常行为自动检测和警报;
  • 允许用户深入到指标中,通过提供带有历史上下文的详细信息来分析根本原因。
  • 不支持长期存储,需要Prometheus或Elasticsearch等额外工具来存储指标和日志;
  • 不提供高级数据建模功能;
  • 不包含内置的数据聚合功能。

主要应用场景:

  • 对各种监控指标的可视化;
  • 自动化报警;
  • 异常服务行为检测。

​https://grafana.com/​

3. ELK堆栈

图片

ELK堆栈是一款流行的开源可观察性解决方案,有助于运营人员更好地管理日志和分析数据。它由三个组件组成:Elasticsearch、Logstash和Kibana。

Elasticsearch是一个分布式搜索和分析引擎,可以处理大量结构化和非结构化数据,使用户能够存储、索引和搜索大量数据;Logstash是一个数据收集和处理管道,允许用户收集、处理和丰富来自许多源(如日志文件)的数据;Kibana是一个数据可视化和探索工具,允许用户基于Elasticsearch中的数据创建交互式仪表板和可视化。

关键特性与不足:

  • 允许用户收集、处理、存储和分析来自多个来源的日志数据和指标,同时提供一个集中控制台来搜索日志;
  • 允许用户搜索和分析相关日志数据,这对于解决和深入了解问题的根本原因至关重要;
  • 可以对来自多个数据源的日志数据和指标进行可视化分析;
  • 允许在日志数据中为异常活动发出警报;
  • 允许用户向下获取更多日志数据,通过提供详细的日志和历史上下文,可以更好地找出问题的根本原因。
  • ELK目前还不支持分布式跟踪,用户需要使用额外的工具,如Jaeger;
  • ELK的日志报告会造成轻微的延迟;
  • 策略配置和维护过程比较复杂,需要特定的知识来管理运营。

主要应用场景:

  • 多来源的日志管理;
  • 数据可视化;
  • 遵从性和安全性监控

Elasticsearch:https://www.elastic.co/elasticsearch/

Logstash:https://www.elastic.co/logstash/

Kibana:https://www.elastic.co/kibana/

4. InfluxDB 和Telegraf组合

图片

InfluxDB和Telegraf都是开源版的可观察性工具,它们的时间序列数据存储和监控功能很受企业用户的欢迎。其中,InfluxDB是一个时间序列数据库,它使用类似sql的查询语言存储和查询大量时间序列数据;而Telegraf则是一款性能出色的数据收集代理,它可以支持各种数据源,收集各种指标和事件信息,并将其发送给多个提前设置的接收器,比如InfluxDB等。

关键特性与不足:

  • Telegraf允许用户从许多来源收集指标,并将它们发送到InfluxDB进行存储和分析;
  • InfluxDB可以与第三方可视化工具(如Grafana)集成,以创建灵活的交互式控制面板;
  • InfluxDB的设计允许它处理较长时间段内的数据并提供扩展能力;
  • 这两个工具都缺乏警报功能,需要第三方集成来提供警报;
  • 缺乏深入的原因分析功能,需要第三方集成。

主要应用场景:

  • 指标收集和存储;
  • 长时间的运行监控。

InfluxDB:

​https://www.influxdata.com/​

Telegraf:

​https://www.influxdata.com/time-series-platform/telegraf/​

5. Datadog

图片

Datadog是一款基于云的可观察性监控和分析平台,目前已被广泛用于深入了解分布式系统的运行状况和性能,以便在风险真实发生前排除问题。

关键特性与不足:

  • 可以监控在AWS、Azure、GCP等多种公有云平台上运行的应用程序;
  • 可以对服务依赖关系、位置、服务和容器等信息进行可视化分析;
  • 可以跟踪分析有关应用程序性能的详细信息;
  • 可以通过提供带有历史上下文的详细信息,让用户分析了解问题的根本原因;
  • 可以设置异常检测,自动检测和警告观测到的异常行为。
  • Datadog是一种基于云计算的付费服务,随着部署规模扩大,使用费用会增加;
  • 不提供默认的日志分析支持,用户必须单独购买日志摄取和索引功能;
  • 不允许用户在本地或自己的数据中心存储数据。

主要应用场景:

  • 可观察性数据管道
  • 分布式服务跟踪
  • 集装箱式应用监测

​https://www.datadoghq.com/​

6. New Relic

图片

New Relic也是一款基于云的监控和分析平台,允许用户监控分布式环境中的程序运行状态。它使用“New Relic Edge”服务进行分布式跟踪,可以实现几乎100%的应用程序跟踪监测。

关键特性与不足:

  • 提供全面的APM解决方案来监控和排除应用程序性能故障;
  • 可以在AWS、Azure、GCP等多个公有云平台上监控应用程序运行;
  • 可以提供有关系统和应用程序性能的详细信息,并进行跟踪分析;
  • 可以帮助用户深入到指标和上下文信息中,分析问题的根本原因;
  • 可以收集、处理和分析各种来源的日志数据,并提供全面的日志视图。
  • New Relic是一个闭源平台,它与其他开源工具的集成能力非常有限;
  • 在进行大规模部署时,New Relic的使用成本会比较高。

主要应用场景:

  • 多云环境中的应用监控
  • 深入的跟踪分析

​https://newrelic.com/​

7. AppDynamics

图片

AppDynamics是一款应用广泛的可观察性监控和分析平台,不仅允许用户对各种应用程序的每个组件进行跟踪监测,同时还提供了根本原因分析,以确定可能影响应用程序性能的潜在问题。

关键特性与不足:

  • 可以从许多来源(如主机、容器、云服务和应用程序)收集监控指标并跟踪分析;
  • 可以设置异常检测功能,对发现的异常行为进行及时检测和预警;
  • 用户可以获取较详细的性能信息并跟踪分析;
  • 由供应商维护工具,对开源工具的集成能力不足;
  • 定制选项不够灵活,用户不能自己定制解决方案。

主要应用场景:

  • 应用程序性能监视
  • 多云环境中的应用监控
  • 业务流程管理

​https://www.appdynamics.com/​

8. Helios

图片

Helios是一款为系统开发人员提供可观察性的解决方案,提供了对应用程序流程的可操作性洞察能力。它整合了OpenTelemetry的上下文连接框架,可以提供跨微服务、无服务器应用、数据库和第三方API的可见性。

关键特性与不足:

  • 在完整的上下文中提供分布式跟踪信息;
  • 使用户能够从多个数据源收集和可视化跟踪数据,以深入挖掘和排除潜在问题;
  • 支持Python、JavaScript、Node.js、Java、Ruby等多种语言和框架;
  • 允许团队成员重用请求、查询和有效负载;
  • 可根据跟踪数据自动生成测试;
  • 与现有的生态系统轻松集成,包括日志、测试、错误监控等;
  • 只需点击几下即可再现一个精确的工作流。

主要应用场景:

  • 分布式应用跟踪;
  • 多语言应用程序跟踪集成;
  • 无服务器应用程序监控;
  • 应用测试中的故障排除;
  • API调用自动化。

​https://app.gethelios.dev/​

参考链接:

​https://dzone.com/articles/11-observability-tools-you-should-know-in-2023​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK