摘要:“可观察性”在2021年将会成为一个流行语。这可能是因为多年来在软件开发中的监控措施并不标准化。而对于观察和跟踪的考虑较少,很多应用程序以不同的格式和样式生成日志。如果没有统一层来分析越来越多的服务,这会导致混乱的应用程序分析变得一团糟。 |
借助云原生技术,IT人员现在不再试图重蹈过去的覆辙。此外,随着用户期望和数字创新需求的增加,现在更加注重保持整体稳定性、性能和可用性。这导致了可观察性和分析工具的发展。这些开源项目使日志更具可操作性,使用详细的元数据跟踪事件,并从
Kubernetes环境中公开有价值的指标。此类洞察可为业务指标提供信息,帮助查明错误,并促进快速恢复措施。由于这些原因,企业必须对云原生应用程序堆栈进行深入的观察。
因此,以下将探讨与可观察性、遥测和分析相关的6个完善的云计算原生运算基金会(CNCF)项目。其中许多项目有助于收集和管理可观察性数据,例如指标、日志和跟踪。
1.Prometheus
Prometheus是一种流行的监控系统和时间序列数据库。
Prometheus是与可观察性相关的最流行的CNCF项目,可能不需要过多介绍,因为许多开发工程师对它很熟悉。Amadeus、Soundcloud、Ericsson等大公司已经使用Prometheus为其监控和警报系统提供支持。
Prometheus具有内置的服务发现和功能,通过HTTP上的拉取模型收集数据。然后它存储组织为时间序列键值对的指标。这些指标可以根据现有的应用程序进行定制,并设置为触发警报。例如电子商务网站可能需要识别缓慢的加载时间以保持竞争力。Prometheus具有强大的查询能力;PromQL查询语言可用于搜索数据和生成可视化。
Prometheus环境由主要Prometheus服务器、客户端库、推送网关、专用导出器、警报管理器和各种支持工具组成。
2.Jaeger
Jaeger是一种开源、端到端的分布式追踪系统。
随着向分布式系统的发展,许多组件的调试、联网和支持可观察性的过程变得更具挑战性。Jaeger是一个旨在解决这一困境的项目。它旨在“监视和排除复杂分布式系统中的事务”。根据其发布的文档,Jaeger的特点如下:
•分布式场景传播
•分布式事务监控
•根本原因分析
•服务依赖分析
•性能/延迟优化
Jaeger通过实现各种用于检索数据的API来工作。该数据遵循OpenTracing标准,该标准将跟踪组织成跨度;每个跨度都详细说明了操作名称、开始时间戳、结束时间戳和其他元数据等粒度细节。Jaeger后端模块可以导出Prometheus指标,并且使用日志库zap构建日志。
3.Fluentd
Fluentd是一个统一的日志层。
Fluentd是一个日志层,旨在与后端系统解耦。其理念是统一日志层可以消除不兼容的日志格式和不同的例程的混乱。
Fluentd可以跟踪来自许多来源的事件,例如Web应用程序、移动应用程序、NGINX日志等。Fluentd将这些日志集中起来,还可以将它们移植到外部系统和数据库解决方案,如Elasticsearch、MongoDB、Hadoop等。为了实现这一点,Fluentd提供了500多个插件。如果需要发送警报以响应某些日志或为用户事件启用异步、可扩展的日志记录,则使用Fluentd可能会有所帮助。
要开始使用Fluentd进行日志记录,可以在Docker上找到它。在安装后,Fluentd会提供图形用户界面来配置和管理它。
4.Thanos
Thanos具有长期存储功能的高可用性Prometheus设置。
对于那些想要从Prometheus中获得更多收益的人来说,Thanos是一个很好的选择。它被构建为一个可用的度量系统,具有无限的存储容量,可以放置在现有的Prometheus部署之上。使用Thanos获取指标的全局视图可能有助于使用多个Prometheus服务器和集群的组织。Thanos还支持扩展企业自己选择的存储,从理论上讲数据保留是无限的。由于Thanos旨在处理大量数据,因此它结合了下采样以加快查询速度。
5.Cortex
Cortex是一个可扩展、高可用、多租户、长期Prometheus。
Cortex是另一个CNCF项目,旨在与多个Prometheus设置一起使用。使用Cortex,IT团队可以从各种Prometheus服务器收集指标,并对所有数据执行全局聚合查询。可用性是Cortex的一个优势,因为它可以自我复制并在多台机器上运行。与Thanos一样,Cortex提供长期存储功能,并集成了S3、GCS、Swift和MicrosoftAzure。
Cortex主要用作Prometheus的远程写入目的地,具有与Prometheus兼容的查询API。
6.Open Telemetry
Open Telemetry是一个云原生软件的可观察性框架。
OpenTelemetry是一个旨在从各种来源收集遥测数据项目,例如指标、日志和跟踪,以与多种类型的分析工具集成。该包支持与Spring、ASP.NETCore、Express和Quarkus等流行框架的集成,从而可以轻松地向项目添加可观察性机制。值得注意的是,OpenTracing和OpenCensus最近合并形成了Open Telemetry,使其成为开源遥测解决方案的强大动力。
更多用于可观察性、指标和分析的工具
在当今的数字时代,指标是企业的命脉。拥有完整的应用程序性能数据和最终用户操作信息分类对于分析至关重要。但这并不是唯一的最终目标——此类数据的质量过滤和导航对于将陈旧的元数据转化为可操作的见解同样至关重要。
以上介绍了一些与可观察性、监控和分析相关的最常用的CNCF项目。但这些并不是唯一可用的选择——在CNCF托管的项目和周围的生态系统中发生了更多令人兴奋的发展。
CNCF托管以下处于沙箱状态的项目。这些新兴项目涉及更主动的监控,例如通过混沌工程和Kubernetes健康检查,以及更深入的Kubernetes优先可观察性。
•ChaosMesh:Kubernetes的混沌工程平台。
•Chaosblade:易于使用且功能强大的混沌工程实验工具包。
•Fonio:使用基于RedBPF构建的(e)BPF的数据优先监控代理。
•Kuberhealthy:作为Kubernetespod运行综合检查的操作符。
•Litmus:云原生方式的混沌工程。
•OpenMetrics:用于大规模传输云原生指标的事实标准,将Prometheus展示格式演变为标准。
•Pixie:开源Kubernetes可观察性。
•Skooner:简单的Kubernetes实时仪表板和管理。
•Trickster:HTTP反向代理缓存和时间序列仪表板。
编辑:Harris