《2022云原生可观测性技术研究与应用.docx》由会员分享,可在线阅读,更多相关《2022云原生可观测性技术研究与应用.docx(60页珍藏版)》请在优知文库上搜索。
1、云原生可观测性技术研究与应用目录序言51.可观性概述81.1 TX原生可观测性发展81.2 可观测性定义92 .云原生可观测性成熟度102.1 监控112.2 基础可观测性112.3 因果可观测性142.4 主动可观测性183 .云原生观测体系能力构建213.1 云原生可观测性信号213.2 玄原生可观测能力构建283.3 核心能力-基于eBPF构建云原生数据采集技术334 .云原生可观测性应用场景404.1 故障分析404.2 事件预测404.3 日志审计414.4 监控474.5 微服务追踪504.6 安全检测分析535 .优秀云原生可观测项目介绍565.1 Prometheus项目565
2、.2 OpenTeIemetry项目595.3 SkyalkngIpl1163附件.引用文献67L可观测性概述1.1 云原生可观测性发展CNCF云原生定义对云生技术描述为:在现代动态环境(如公有云、私有云和混合云)中构建和运行可扩展的应用程序的能力。容器、服务网格、微服务、不可变基础设施和声明性APl均是基于云原生技术的特征。采用云原生技术使松散耦合的系统具有弹性、可管理和可观察性。结合强大的自动化功能,能够以最少的工作量频繁且可预测地进行高影响力的更改。Pivotal公司MattStine在2013年首次提出云原生概念。2017年MattStine将原生特征归纳为六大点,分别是: 模块化Mo
3、dularity 可观测性Observability 可部署性Deployability 可测试性Testability 可处理性Disposability 可替换性Replaceability作为六大特征之一的可观测性是保证云原生应用稳定性的基础。在云原生时代,应用规模不断扩大,复杂度愈来愈高,而其中潜藏的问题和风险也随之增多。这对支撑平台及业务自身的稳定性提出更高要求。能够支撑业务的快速迭代、故障快速响应能力、适应复杂的微服务拓扑、保证高效运维。在数字化大趋势下,云计算成为企业数字化转型的关键。以云上开发为核心的云原生技术得到了广泛的使用。云原生在企业上云和基础实施架构上的大量应用,也对企
4、业的运维监控安全提出了新的挑战。分布式、解耦合的新型系统架构,服务调用链长、系统行为复杂、软件系统稳定性保障困难,解决以上问题需要采用新的方式对系统进行观测。1.2 可观测性定义在控制理论中,“可观测性是从系统外部输出的数据衡量系统内部状态的程度”。可观测性是人类对机器可以观察、理解和处理所述系统状态的功能。可观测性是在没有考虑目标的情况下决定系统在实现时应该具有哪些输出。在IT领域,可观测性是在日志与监控指标组成的传统监控基础上,依据由日志、指标、链路追踪三种核心数据来洞悉系统运行状态。通过统一的链路追踪洞察系统服务调用链,并与日志、指标数据联动分析,可实现对云原生系统的高效故障定位与故障解
5、决,保障云原生系统稳定性。可观测性具有三个方面的特征,首先是度量能力,可观测性的度量能力能够帮助使用者在系统处于非常极端复杂的场景时,也能理解和解释系统当前的状态。其次是探索分析,可观测性不应该预定调试/排查模式和路径,而应该能够自由地对所有采集到的各类状态数据在各种维度和组合之间进行关联分析,不断探索分析出新的关联性。最后是按需改变,可观测性最好是在不改变原有代码的情况下,按需进行埋点。2.云原生可观测性成熟度研究可观测性成熟度模型的目标是提供一种可衡量、可复制的理论基础用以评估、改进可观测性体系能力。遵循PDCA模型通过对可观测性能力持续改进,提高对云原生系统的感知能力,缩短运维过程中寻找
6、根因、排除故障的时间。衡量和评估云原生系统可观测性的成熟度模型,可定义为如下四个级别:1.evel1监控(MOnitOring)1.evel2基础可观测性(BasicObservabiIity)1.evel3因果可观测性(CausalObservability)1.evel4主动可观测性(ProactiveObservability)可观测性成熟度模型的每个级别,建立在前一级别已实现的基础上。2.1 监控2.1.1 目标:确定系统组件是否按预期正常工作可观测性成熟度模型中,监控是第一个阶段。此阶段对资产、进程、资源使用等数据持续采样、度量和记录,获取实时或定期的信息和数据。跟踪单个系统组件的特
7、定参数,度量系统组件状态。系统组件运行状态如超出预设范围,触发警报、状态更改、通知。监控级的目标之一是设置实时警报,在系统出现问题或达到预定阈值时能够及时报警。2.1.2 能力在LeVell阶段,被监控的系统各组件之间无相关性,此级别主要目标是了解系统组件是否正常工作。监控级会开始对基本的性能数据进行采集,以确保系统在负载情况下不会受到显著影响。监控级的主要目标是建立起最基本的监控能力,以确保系统的基本稳定性和可用性。关键功能:系统输入:事件和组件级指标系统输出:报警、日志价值:获得基本信息,系统组件的健康状态出现问题时的警报和通知2.2 基础可观测性2.2.1 目标:确定系统故障可观测性通常
8、指基于对复杂系统外部输出的了解,能够了解其内部状态或状况的程度。系统越可观测,定位问题根本原因的过程就越快速越准确,而无需进行额外的测试或编码。为保证复杂动态的系统可靠运行,需要知道系统组件是否正常运行,还需要了解它为什么不运行。当出现问题时,希望遵循“5WIH”的原则了解问题详情:whowhen、wherewhat、why、how。1.evell监控措施基于预置规则实现告警、通知。预置规则依赖于一个关键性的假设,即能够在问题发生之前预测将会遇到的问题类型。这种方法不能覆盖足够多的场景,无法回答5W1H的问题。云原生环境是动态的、复杂的、多变的,无法事先预知可能会出现什么样的问题。因此云原生应
9、用下的可观测性方案,应可以根据更完整、更深入的可观测性数据,实时感知事件,并提供定位可能无法预料的问题根因的能力。可观测性成熟度LeVeI2相较于Level1的数据具有更大的广度和深度。可观测性系统主要关注三种关键类型的数据来提供系统洞察力:指标、日志和跟踪。可观测性的这三大支柱是从微服务、应用程序、数据库、云原生基础设施中收集的,旨在提供对系统行为的更为完整的视图。每种数据提供不同类型的信息: 指标:了解服务性能和状态的数值测量-四个黄金信号:延迟、流量、错误率和饱和度。 日志:了解系统在给定时间点的行为-统中发生的相关事件(例如事务、警告、错误)的时间戳记记录 追踪:解决性能问题-显示数据
10、如何从端到端流经应用程序的详细快照(例如,用户请求)可观测性强调数据的统一性,通过构建统一的平台来实现指标、日志和跟踪数据的汇聚与处理,突破单点工具的能力限制。建设统一数据平台可将各种可观测性工具整合在一个集中的界面,提高管理和维护系统的效率。通过手工关联数据来推断事件的可疑原因,需要跨系统手动查询。在Level2中,尚未涉及自动化方法来统一和关联来自各种工具汇聚的孤立数据,准确定位问题的根本原需要大量的人力投入。能力1.eVeI2阶段,理解可观测性数据之间的关系,将上下文数据结合。关键功能:系统输入:LeVel1+链路、指标、日志系统输出:LeVel1+图标、日志可视化综合仪表盘价值:通过从
11、更多来源收集数据,更深入、广泛、全面地了解整个系统健康状况,更好地支持问题诊断除已知故障类型外,还能够发现未知故障模式从各种类型的数据中获得有益的洞察力-例如,跟踪有助于识别性能瓶颈,指标可提供出色的KPI,日志可用于查找软件缺陷。2.3 因果可观测性2.3.1 目标:确定问题根本原因影响面及规避方法可观测性的核心价值在于提高排查问题的效率。可观测性工具通过分析数据,定位问题,进一步确认问题的根本性原因(RootCause)。可观测性体系用于因果判断,可以更深入全面地理解系统的运行和行为,得出系统中事件之间的因果关系。通过对因果关系分析理解,找出引发问题的根本性原因。具备因果分析能力的可观测性
12、体系可定义为“因果可观测性(CaUSalObservability)”。具备因果分析能力的可观测性体系,通过收集、分析和解析足够多维度的数据,达到理解系统内事件、状态变化之间的关系,从而更深入地洞察系统运行状态。因果可观测性强调在数据分析中寻找因果关系,并将这些关系转化为对系统事件之间关系的可视化呈现。因果可观测性与基础观测性有所不同,Level2强调数据,LeVeB强调关系。1.eVeI2基础可观测性关注收集、分析数据以理解系统的状态和行为,LeveB因果可观测性强调数据与数据、实体与实体、事件与事件或更多维度数据之间的联系。构建因果可观测性,涉及数据收集、关系收集、数据处理、关系处理、因果
13、推断等步骤,以揭示事件发生的因果过程。面对复杂性、不确定性和变化性的云原生应用场景,对事件因果的理解有助于更好地预测、解释、优化和管理系统。调查故障根因时,需收集事件发生的时间、空间、参数变化等数据,从而了解导致问题出现、传播,以及随着时间的推移而变化的事件状态。解决这些问题,需要引入新的能力:网络数据、拓扑数据、时间、空间地图、自动化关联技术。这些能力可以更全面地理解系统运行状态,定位问题的根本原因。为了建立因果可观测性,需要补充两种类型的数据要素:拓扑、时间。拓扑系统中各实体对象相互之间的连接关系(例如根据链路相关数据绘制的服务拓扑)时间持续抓取观测数据的时间维度表1两种类型数据要素拓扑是
14、因果可观测性的第一个必要维度。拓扑是IT环境中所有组件的映射,它跨越所有层,从网络到应用程序再到存储,显示一切是如何相关的。拓扑结合了组件之间的逻辑依赖性、物理接近性和其他关系,以提供人类可读的可视化和可操作的关系数据。拓扑信息(Topology)指的是系统中各主机、进程、容器、API、SerViCe之间的关系和连接方式。拓扑的价值在于提供系统的高级视图,帮助运维者理解不同实体之间的依赖关系、通信路径和层次结构。通过拓扑信息,能够更全面清晰地了解系统结构。拓扑信息在可观测性数据中扮演着一种定位和上下文的角色,辅助理解数据所涉及的组件、服务、资源以及它们之间的关系。拓扑信息是一个系统的结构图,展
15、示了系统内部各个元素之间的连接和依赖关系。这种结构图可以是物理上的(如网络拓扑、主机之间的连接),也可以是逻辑上的(如服务之间的依赖关系、数据流动路径)。将信息点连接至系统元素,使得每个维度的数据不是孤立的点。时间是因果可观测性的第二个必要维度。在充满微服务、云资源和容器不断变化的动态环境中,拓扑信息的变化是非常迅速的。系统状态可能在问题多次出现的过程中发生变化。为了确立因果可观测性,需要引入一个至关重要的维度:时间。为了深入了解现代IT环境的动态行为并获取实现因果可观测性所需的上下文。随着时间的推移,捕获拓扑信息的变化,并将其与可观测性数据进行关联,以跟踪整个堆栈的变化。当出现问题时,可以回溯到问题开始的确切时间点,并查看是什么变化导致了这个问题。通过这种时间维度的关联,能够更准确地定位问题的根本原因,实现对问题的全面分析和解决。空间地图是拓扑的升维,提供IT环境中所有元素的关系映射,空间地图是一张三维的元素连接拓扑,涵盖水平的实体关系拓扑,垂直的依赖关系拓扑。空间地图结合了组件之