转一篇,这确实也是我这段时间的一些迷惑,监控,APM,可观测性~~~
URL:https://zhuanlan.zhihu.com/p/666000406
在现代的软件开发和运维中,可观测性和监控是两个关键概念。随着系统和应用程序的复杂性不断增加,我们需要一种方式来实时监测和分析系统的运行状态、行为和性能。可观测性和监控提供了这种能力,使我们能够获得对系统内部和外部的可见性,以便及时发现问题并采取适当的措施。然而很多人混淆这两个概念,本文将阐述这两个概念的区别,主要探讨可观测性相关的一些概念、建设要素、以及一些挑战等。
01 概念
可观测性:指根据系统产生的数据评估内部系统状态的能力。可帮助IT运维团队同时观察或深入了解IT基础架构中不同应用程序和资源的健康状况和状态。IT团队通过从每个系统的数据中获取洞察力,可以主动检测异常、分析问题并解决问题。
可观测性工具使用基于数学控制理论的算法来理解公司多层次IT基础架构之间的关系,这些工具使用日志、指标和跟踪(可观测性的三个支柱)来监控系统的健康状况和状态,当工具检测到异常时,它会通知团队并提供他们解决问题所需的数据。
监控:可观测性的基础,没有监控就无法实现可观测性。
监控是指从IT系统中收集和分析数据的过程,使用仪表板来跟踪特定指标,以衡量系统、网络、应用程序等的健康状况。通过提供关于应用程序使用模式的信息、系统以及网络信息等,帮助IT团队检测和解决问题。要使监控发挥作用,必须预先知道要跟踪哪些指标,如果没有预先定义这些跟踪数据,问题就很难被察觉。
02 概念对比
在谈到可观测性时经常也会提到一些概念,主要包括遥测(telemetry),APM。那这些和监控,可观测又是什么关系?
可观测 vs 遥测
遥测(telemetry): 一种在不同系统之间收集数据(包括日志、指标和跟踪)的能力,特别是在动态云环境或云原生应用程序中。虽然遥测工具提供了强大的数据收集和标准化,但它们仍无法提供开发运维团队需要快速调试系统并找到问题根本原因的能力。遥测本质是一种高级的监控工具。
可观测 vs APM
APM(Application Performance Monitoring):一种监控和管理应用程序性能的方法。通常是通过收集和分析应用程序的指标、日志和跟踪数据来实现的。这些数据可以提供关于应用程序性能、资源利用率和错误率等方面的洞察。APM工具可以帮助开发人员和运维团队监控应用程序的健康状况,识别性能瓶颈和故障,并进行故障排除和优化。APM可以被看作是可观测性的一个子集,它专注于应用程序性能的监控和管理。
APM更专注于应用程序性能的监控和管理。它提供了一种高级的方法来跟踪系统健康状况和应用程序事务的端到端监控。可以帮助开发人员和运维团队监控应用程序的性能,识别性能瓶颈和故障,并进行故障排除和优化。
可观测性更加综合和全面,关注整个系统的状态和行为。它涵盖了应用程序、基础设施、网络和其他相关组件的观察和监控。通过收集和分析各种数据源(如日志、指标、事件和分布式跟踪),可观测性提供对系统的全面洞察。这使得开发人员和运维团队能够更好地理解系统的运行情况,快速识别和解决问题,并优化系统的性能和提高系统的可靠性。
可观测 vs 监控
监控:收集和聚合IT环境的各种数据,主要包含诸如网络流量、服务器和终端节点带宽使用情况、日志和事件数据、配置更改、跟踪用户的活动(访问的文件、使用的应用程序以及登录历史记录)等等。
监控类似于遥测和APM,都可以支持可用性监控,并为IT系统的健康度和性能提供独特的洞察力。监控其实是需要有一些知识储备的,即确定采集哪些指标,如何确定这些指标的正常阈值等,这些都是基于一定的经验去实现的。换句话说是对已知的可能会发生的问题的提前应对,当然对于未知事件就会显得力不从心。
相比之下,可观测性提供了对IT环境中发生的事件以及其原因的详细、细粒度的视图。通过利用跟踪、日志和指标,可观测性允许对原始IT数据进行深入、有针对性地探索。它可以实现自定义故障排除,从最终用户体验一直追踪数据路径,直到找到根本原因。
关系总结
APM仅限于应用程序,而可观测性则提供了对整个IT基础架构的健康和性能的指标和洞察力,而不仅仅是应用程序。
可观测性和监控是相辅相成的。然而,在选择适合团队的正确工具时,您可能觉得必须在监控工具和可观测性平台之间做出选择。
可观测性对于开发人员有效地进行根因分析和调试系统至关重要。通过可观测性软件,开发人员可以比仅依赖监控工具(包括遥测和APM工具)更轻松地进行这项工作。
在现代IT环境中,所有这些工具可以共同支持不同的IT团队,并为您的IT基础设施中的各种系统、服务器、环境和应用程序的健康状况、性能和可用性提供重要的洞察力。
03 可观测性必备要素
来自Google Cloud Architecture Center的指南列出了应该在可观测性解决方案设计中构建的能力, 主要包括如下几点:
报告系统的整体健康状况
系统是否正常运行,是否有足够的资源可用等。
报告客户所经历的系统状态
如系统出现故障,客户是否知晓,并且客户的体验是否受到负面影响?
监控关键业务和系统指标
明确记录的服务水平目标(Service Level Object),定义了成功或失败的值
提供工具来帮助理解和调试生产环境中的系统
提供工具来识别未预料到的问题
提供工具和数据,帮助跟踪、理解和诊断生产环境中的基础设施问题,包括服务之间的交互作用
04 可观测实现的挑战
实现可观测不是一件容易的事情,这其中可能有技术的原因,也有一些技术以外的挑战,一般会存在于以下这些方面:
无法找到支持多种用例的工具:通常情况下,多个团队需要从相同的数据中提取有效信息,以帮助他们更好地理解数据,做出更明智的决策,或者采取更有效的行动,这些用例主要包括开发、IT运营、站点可靠性工程和安全等,一般工具很难将所有这些都纳管进来。
团队间协作挑战:建立可观测需要多个团队甚至是多个部门的协作才能完成,因此如何建立团队间的有效协作对于主导建设的团队来说是一个不小的挑战。
路由安全事件问题:在网络安全领域,安全事件可以是指潜在的威胁、攻击行为、异常活动等。路由安全事件涉及将这些安全事件从一个系统或组件传递到适当的处理程序、分析工具或安全团队,以便进行进一步的分析、响应和处理。这个过程通常涉及使用适当的协议、规则和机制来确保安全事件的准确传递和处理。
成本问题:为了控制管理日益增加的机器数据的成本,公司可能限制了摄取或存储的日志数据量。这导致开发人员只能用样本数据而不是所需的完整信息来解决问题,这减慢了故障排除、调试和事故响应的工作,并增加了安全风险。
数据多样性:企业中各种应用、网站、终端设备等数据是多种多样,获取和处理这些数据到标准的格式中难度不小。
路由数据:可观测数据通常需要在不同的工具中进行处理,以满足不同的用例和需求。这些工具可能包括日志管理系统、监控工具、安全分析平台等。通过将数据路由到多个工具,可以实现对数据的多方面分析、监控和处理,以提取有用的信息和支持不同团队的工作。
当然,在可观测性的建设中可能还有更多的挑战,这里只是罗列了一些通常遇到的情况,要建设企业的可观测是一项持续和需要广泛协作的工程。
结语
本文主要对可观测、监控等方面容易混淆的一些概念和关系进行阐述,重点讲述了可观测性建设的要素以及建设客观性性可能面临的一些挑战,希望为准备建设或正在建设可观测平台、监控平台的你有所帮助。
关于可观测性以及监控的话题,后续将持续更新更多这方面的详细文章。
网友评论