可观察性与监控的区别 | 5 个提升可观察性的开源利器

2022-08-31 09:46:54 浏览数 (1)

本文将讨论可观察性和监控之间的区别,如何观察不同的系统,以及罗列一些能够提高可观察性的开源工具。

*本文来源于TARS Ambassador Isabella Ferreira文章:《The Future of Cloud-Native Observability and 5 Open Source Tools to Help You With Cloud-Native Observability》

由于云应用程序的复杂性和处理数据量的增加,监控和管理应用程序的传统方式变得不再高效。为了解决这个问题,可观察性(Observability)被引入到IT行业。可观察性是指根据系统展示的外部数据了解系统内部发生的事情的能力[1]。通过可观察性,软件开发工程师可以通过监控云中的服务器、容器和数据来发现出现问题的根本原因,并能及时分析和修复问题。

总的来说,可观察性是一种深入了解云环境性能的新方法。可观察性可以由不同的表层数据来推动,例如来自应用程序运行环境的软件和基础架构的日志、追踪和指标,以及来自 CI/CD 管道和帮助台等互补系统的数据[1]。当此类数据相互关联时,可观察性可以帮助发现商业洞察并满足业务目标。此外,当可观察性与 DevOps 文化相结合时,当今云应用程序中最棘手的问题也可以被解决。

根据前文的描述,可观察性与监控似乎是无区别。事实上,监控是推动可观察性的一个过程,但可观察性远不止于此。监控仅使用表面数据来传达问题表面上发生了什么。监控并不能帮助您了解系统的内部状态,但可观察性可以。

对于解决简单的问题,表面数据可能就足够了。例如,如果某个应用程序由于托管它的服务器完全失败而停止响应,那么只需要基本的表面数据即可找出问题所在 [1]。但是,假设有一个没有响应的应用程序并且托管该应用程序的服务器确实发生了故障,但编排器自动将该应用程序移动到集群中的另一台服务器。在这种情况下,发生故障的服务器不再是问题的根本原因。相反,这是应用程序本身的编码问题,它也许存在内存泄漏,最终会导致任何托管它的服务器出现故障。在这种情况下,软件工程师需要关联来自各种来源的数据来找出问题所在,例如应用程序日志、操作系统日志、CI/CD 管道数据等,然后找出哪个 CI/CD 部署引入了泄漏并追溯至导致问题的代码变动。

不同的系统需要不同的可观察性策略。本文将集中探索以下三种不同类型的系统 [1]:

  • 分布式系统可观察性:在分布式系统中,应用程序运行在容器化微服务,例如TARS,或跨服务器集群的无服务器功能中。在这种情况下,可观察性需要对多种类型的数据进行分析和关联,并解释不同服务器/环境之间的复杂关系。
  • 云可观察性:如果应用程序使用多个云,则需要收集和分析来自所有云提供商的数据,将它们转换为相同的数据格式,并观察环境。但是,无服务器功能会限制程序员监控主机服务器的能力,并且可能没有提供完整的操作系统日志。
  • 编排器可观察性:如果是使用 Kubernetes 之类的编排器,则需要跟踪编排器以及服务器、容器和应用程序的状态。尽管这样更复杂,但更多的数据源能够帮助对事件进行上下文化并发现系统每一层中的规律。

可以帮助促进可观察性的工具包括:

  1. Prometheushttps://prometheus.io/):通过 HTTP 上的拉模型收集数据,具有内置的服务发现和功能;
  2. Jaegerhttps://www.jaegertracing.io/):对复杂分布式系统中的事务进行监控和故障排除。
  3. Fluentdhttps://www.fluentd.org/):追踪来自多个来源的事件并将这些日志集中在一个公共数据库中。
  4. OpenTelemetryhttps://opentelemetry.io/):从各种来源收集遥测数据,例如指标、日志和跟踪,以与多种类型的分析工具集成。
  5. Grafanahttps://grafana.com/):帮助可视化各种来源的数据。

不同的框架可以帮助集成上述工具。例如, TARS 微服务框架不仅可以帮助开发人员构建他们的微服务,还可以为微服务集成可观察性工具,大大提升应用程序的可观察性。其他框架,例如Istio服务网格。也能够集成不同的可观察性工具。

参考文献

[1] https://www.observeinc.com/resources/what-is-observability/

[2] https://newrelic.com/blog/best-practices/what-is-cloud-native-observability#:~:text=Observability is defined as your,data processes, and hardware processes


TARS基金会是Linux基金会下的非营利性、微服务基金会,致力于建设一个强大而灵活的微服务生态系统。无论你在哪个行业,无论你使用什么技术栈,这里能助你快速实现你的创意。

0 人点赞