构建开源可观察性工具链

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

开源软件 (OSS) 对现代应用程序交付产生了深远的影响。它改变了我们对协作的看法,降低了维护 IT 堆栈的成本,并刺激了当今使用的一些最流行的软件应用程序和平台的创建。

可观察性领域也不例外。事实上,有人可能会争辩说,开源可观察性工具在监视和调试分布式系统的世界中更具变革性。通过让每个人都可以使用强大的工具——并允许任何人为他们的核心构造做出贡献——开源可观察性工具允许各种规模的组织从检测容易出错的模式和提供框架内部状态的洞察力的强大功能中受益。

拥抱开源可观察性框架

图 1:分布式系统中的可观察性框架

可观察性框架通常分为:

  • 集中式框架——这些通常是为消耗大量资源并需要同时监控大量分布式系统的大型企业而设计的。由于此类框架受到大量硬件和软件的支持,因此它们的设置和维护成本很高。
  • 分散式框架——这些框架更适用于不需要立即使用太多设备或培训并且需要较低的软件许可证前期投资的用例。由于去中心化框架有助于协作并允许企业自定义源代码以满足特定需求,因此这些被认为是从头构建整个技术堆栈时的流行选择之一。
  • 使用开源可观察性工具的好处

    可观察性本身是围绕开源概念构建的,该概念依赖于关键指标的去中心化访问以实现协作行动和性能提升。与集中式专有软件解决方案相比,为可观察性构建开源框架所依赖的依赖性更少。

    许多组织使用 OSS 是因为它免费且易于使用,但不仅如此。与专有解决方案相比,开源工具还具有多项优势,可以监控您的应用程序的执行情况。除了监控应用程序运行状况之外,开源可观察性工具还使开发人员能够改造系统以实现易用性、可用性和安全性。使用 OSS 工具实现可观察性提供了许多其他好处,包括:

  • 易于扩展,可与大多数现代堆栈无缝集成
  • 与供应商无关,这有助于观察多云或混合云设置
  • 轻松定制以支持各种用例
  • 通过分解自定义异常来增强可见性和警
  • 通过使用预构建的插件和代码模块加速开发工作流程
  • 通过节省许可成本降低运营投资
  • 增强功能和支持的 区贡献
  • 构建开源可观察性框架的策略

    为了充分利用开源可观察性框架,接受开放和协作的原则非常重要。对于全面的可观察性,在使用开源工具构建可观察性框架时考虑关键因素也很重要。

    构建开源可观察性框架的一些推荐策略包括主动异常检测、基于时间的事件关联、安全左移以及采用正确的工具。

    主动异常检测

    优化设计的可观察性框架有助于预测潜在异常的发生,而不会措手不及。重要的是能够确定根本原因并在问题影响集群性能或可用性之前解决问题。

    分布式系统的可观察性策略应该建立在四个黄金信 之上:延迟、饱和、错误和流量。这些信 是集群状态服务核心方面的关键表示,它们共同提供了其功能和性能问题的上下文摘要。

    尽管这些信 产生的高级信息本身可能不够精细,但当与事件日志、指标或跟踪等关键支柱的其他数据结合使用时,更容易查明问题的根源(见图2).

    图 2:可观察性的主要支柱

    基于时间的事件关联

    事件日志提供了丰富的洞察力来识别分布式系统中的异常。使用有助于捕获事件的开源工具,例如成功执行应用程序进程或发生重大系统故障的时间。对此类事件的上下文分析有助于开发人员快速识别有故障的组件或需要注意的端点之间的交互。

    日志还应该结合所有集群事件的时间戳和顺序记录。这很重要,因为时间序列数据有助于通过查明某事发生的时间以及事件发生之前的特定事件来关联事件。

    安全左移

    开源工具通常被认为容易受到常见攻击模式的攻击。作为推荐的策略,应审查开源工具是否存在固有缺陷和可能引入现有堆栈的潜在配置冲突。这些工具还应该支持构建一个可观察性框架,该框架补充了安全左移方法,从而消除了对生产环境中的安全漏洞进行被动调试的需要。

    除了识别问题的根本原因之外,工具链还应通过持续收集和聚合性能指标来丰富端点级别的事件数据。这些数据提供了可操作的见解,使分布式系统能够自我修复,从而消除了检测和缓解安全和性能缺陷的手动开销。

    采用正确的工具

    观察分布式系统广泛依赖于日志和指标存储、查询引擎和可视化平台。有不同的可观察性平台专注于单独衡量这些指标。尽管他们独立工作,但其中一些人可以很好地协同工作,创建适合组织业务目标的综合可观察性设置。

    除了对可观察性组件的考虑外,还要考虑通过考虑可伸缩性来观察系统意味着什么。例如,与监控单体、单集群工作负载相比,观察多云、地理分布的设置将需要利基平台。

    管理性能和站点可靠性的可观察性

    通过提供对软件流程和资源的深入洞察,可观察性使站点可靠性工程师 (SRE) 能够确保应用程序的最佳性能和健康状况。然而,观察分布式系统的状态和行为的挑战通常比想象的要复杂。虽然检查关键指标很重要,但采用支持可观察性的正确实践和有效工具来共同识别系统内发生的事情(包括其状态、行为以及与其他组件的交互)也同样重要。

    在分布式系统中实现有效可观察性的 一些推荐最佳实践包括:

  • 在定义性能指标时强制使用服务级别协议 (SLA)
  • 使用部署标记进行分布式跟踪
  • 仅为重要事件设置警
  • 集中和聚合可观察性数据以进行上下文分析
  • 实施动态采样以优化资源使用和高效模式采样
  • 用于分布式系统可观察性的流行开源工具

    有多种开源可观察性工具可以深入了解系统性能、识别和诊断问题,并帮助您规划容量升级。虽然每种工具都有自己的优点和缺点,但有一些工具比其他工具更突出。将它们一起使用来解决不同的复杂性也是一种常用的方法。下表概述了一些流行的开源可观察性工具、它们的核心特性、优点和缺点,以帮助理解它们之间的区别。

    概括

    可观察性是一项多方面的工作,涉及分布式、跨职能的团队,在他们可以信任通过关键指标提供的信息之前承担不同的责任。尽管存在挑战,但可观察性对于理解分布式系统的行为至关重要。借助正确的开源工具和实践,组织可以构建开源可观察性框架,确保系统具有容错性、安全性和合规性。开源工具有助于设计一个综合平台,该平台灵活且可根据组织的业务目标进行定制,同时受益于 区的集体知识。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年10月17日
    下一篇 2022年10月17日

    相关推荐