什么是可观测?
可观测(Observability)作为现代运维理念,强调系统在运行时应具备全面的、深入的、可理解的状态获取能力。通过收集和分析系统的各种可观测数据,构建一个全方位、立体化的监控与分析体系,运维团队能够在复杂、动态的 IT 环境中实时了解系统内部的健康状况、性能表现以及故障原因,并基于这些信息做出准确的决策,实现快速问题定位、预防性维护以及持续优化。
可观测的主要数据类型包括:
指标数据(Metrics)
指标通常指系统性能相关的可量化数据,如 CPU 使用率、内存占用、网络带宽利用率、数据库查询速率、服务响应时间等。这些实时或周期性收集的数据可用于监控系统性能、资源利用率、容量规划、系统可用性。
链路数据(Tracing)
链路数据常用于跟踪一个请求在多个服务间的调用路径及其耗时。通过收集每个服务节点上的跨度(Span)信息,形成完整的请求链路视图,便于深入理解跨服务边界的服务交互性能和问题定位。
日志数据(Logging)
日志是系统在运行过程中生成的记录信息,包括错误消息、警告、调试信息及用户操作事件等。通过对日志进行收集、存储、搜索和分析,运维人员能够了解系统的执行历史、发现异常情况并诊断问题。
通过对这些数据的收集、聚合、关联和分析,运维团队能够更深入地理解系统运行状态,快速定位和解决问题,进而提升系统的稳定性和可靠性。在复杂分布式系统中,可观测是保证服务质量和进行有效运维的关键手段之一。
为什么需要可观测?
可观测是现代IT系统的核心需求之一,它对于构建稳定可靠、高效灵活的技术基础架构至关重要。可观测的必要性主要体现在以下几个方面。
故障诊断与问题解决
通过实施可观测,运维团队能够实时收集并分析系统的日志、指标、事件以及分布式追踪数据,从而快速定位到系统中的异常或故障点,并采取相应措施进行修复。这有助于减少服务中断时间,提升系统的可用性和稳定性。
性能监控与优化
可观测使得运维人员能够深入了解系统的实时性能表现,包括延迟、吞吐量、资源利用率等重要指标。这些信息可以帮助识别出性能瓶颈及其原因,进而制定优化策略以提高系统性能和效率。
业务连续性和服务质量
为了确保业务流程顺畅运行,满足服务水平协议(SLA)的要求,需要依赖对系统状态的准确掌握。可观测提供了全面的视角来监测系统健康状况,帮助您及时发现潜在风险,保障业务连续性和用户体验。
自动化运维与自愈能力
结合可观测数据与自动化运维工具,可以实现自动化的故障检测、恢复及弹性伸缩等功能,进一步提升运维响应速度和准确性,降低人为干预带来的延误,甚至错误。
安全性与合规性
可观测也有助于安全审计和合规要求,通过记录和分析系统行为,能更有效地检测和防止安全威胁,同时为法规遵从提供必要的数据支持。
决策支持与前瞻性管理
基于历史和实时的可观测数据,管理者能够做出基于数据驱动的决策,预见未来可能的问题,提前进行资源规划和技术架构调整。
可观测和监控的区别是什么?
可观测和监控在 IT 运维和系统管理中都是非常重要的实践。监控是针对系统健康状况的常规监护,而可观测则是对系统深层次内在逻辑的理解与解读,它通过获取更多元、更丰富的数据来提升系统管理和维护的效率与准确性。您可以从以下维度理解两者之间的关键差异。
数据收集与分析的广度
监控通常关注预先定义的关键性能指标(KPIs),如 CPU 使用率、内存消耗、网络流量等,以及服务的可用性和响应时间。监控工具会定期或连续地收集这些指标,并通过设定阈值触发警报。所以监控主要用于发现问题并触发警报。
可观测则强调对系统的深入理解,需要更全面的数据集来推断系统内部的状态和行为。除了基础的性能指标外,可观测还包括日志记录、分布式追踪、应用程序运行时数据等多维度信息,以便在出现问题时能够分析根本原因。
目标与深度
监控的目标主要是发现异常情况并及时通知运维人员,其重点在于发生了什么和何时发生的。更多依赖于预先设定好的表面现象或外部表现,对于复杂系统可能无法揭示深层次的问题。
可观测的目标更加深远,要求系统能生成足够丰富的数据以便了解其内部工作原理,旨在帮助运维团队了解系统为什么以某种方式运行,从而可以更快地定位问题,预防潜在风险,优化系统性能,并支持持续改进。可观测追求的是回答为什么的问题,而不仅仅是表面现象。
主动性与被动性
监控通常是一个相对被动的过程,依赖预配置的规则和检查点。
可观测更具主动性,因为它鼓励从多种角度探索系统的行为模式,即使没有明显的故障信号也能揭示潜在的问题,特别是在快速迭代和复杂的微服务架构下。
决策支持
监控提供的数据主要用于实时发现和报告异常情况等即时决策,比如是否需要重启服务、调整资源分配等应急措施。
可观测提供更丰富、更具洞察力的数据,进行深入分析和诊断,不仅限于紧急响应,还能够支持长期策略制定和技术架构优化。
技术栈与工具
监控工具通常包括仪表盘、图表、警报系统等,用于实时显示系统状态。
可观测工具则可能包含日志聚合平台、分布式追踪系统、时序数据库、APM(应用性能管理)工具以及利用机器学习进行智能分析的组件。
可观测有哪些实际应用?
可观测在实际应用中的表现形式丰富多样,以下为部分典型应用场景。
故障排查
当系统出现性能瓶颈、错误或故障时,运维人员可以通过分析日志记录、系统指标以及分布式追踪数据,快速定位问题发生的具体服务节点和请求链路。
性能优化
利用可观测技术,企业可以深入了解应用程序和基础设施的性能特征,如识别出资源利用率低效的服务、发现响应时间过长的操作等,从而针对性地进行性能调优。
容量规划与预测
根据历史及实时观测到的资源使用情况(CPU、内存、存储、网络流量等),运维团队可以准确预测未来系统的资源需求,并作出相应的扩容或缩容决策,确保业务稳定性的同时降低成本。
安全与合规审计
安全事件发生时,可观测数据可以帮助追踪攻击路径,揭示潜在的安全漏洞。同时,对于满足合规要求,如跟踪操作行为、记录变更历史等,可观测也能提供必要的审计依据。
DevOps 流程改进
可观测将开发、测试、运维紧密联系起来,通过反馈实时的系统运行状态数据,在 CI、CD 流程中快速迭代和持续优化。即时获知代码部署后的真实效果,迅速做出调整。
微服务架构服务治理
在复杂微服务架构中,可观测是理解和控制整个系统的基石。通过统一收集和分析各个服务之间的调用关系和性能数据,能够实现对大规模分布式系统的有效管理和治理。
用户体验保障
对于依赖云计算平台的企业来说,可观测有助于提高服务质量,保证用户获得流畅且无中断的体验。通过对系统全面的监测,及时发现并解决影响用户体验的问题,从而提升品牌口碑和客户满意度。可观测广泛应用于IT运维、软件工程、安全管理等多个领域,它增强了组织对自身系统和业务流程的认知能力,帮助其做出更明智的决策,以应对快速变化的技术环境和业务需求。
阿里云如何帮助您实现可观测?
向上形成兼容开源标准的统一观测界面
您可以借助可观测监控 Prometheus 版、可观测可视化 Grafana 版、可观测链路 OpenTlemetry 版三个可观测事实标准,与应用实时监控服务 ARMS 的应用层监控(APM)、前端体验监控(RUM)、基于 eBPF 技术的应用监控 eBPF 版、云监控等阿里云自研可观测产品双向连接。针对于基础设施层、应用层、用户体验层提供场景化观测能力之外,将可观测数据与分析能力以开放标准(PromQL)、统一开放界面(Grafana)的形式提供给用户,实现统一大盘监控与统一告警管理。
向下连接阿里云可观测数据存储类产品
统一可观测数据(如日志服务 SLS、Elasticsearch 服务等)存储,以及散落在异构数据存储设施中(如 ClickHouse、Lindorm、RDS)的可观测数据,实现可观测数据源管理与异构数据间无缝探索。
横向连接阿里云所有应用管控产品与中间件产品
阿里云所有应用管控(如容器服务 ACK、企业级分布式应用服务 EDAS、Serverless 应用引擎 SAE、函数计算 FC 等)与中间件产品全面拥抱开源可观测标准,并与可观测套件连接。目前,已有超过 50 款阿里云云服务通过 Prometheus 标准进行观测。
全面拥抱开源
阿里云作为国内可观测领域的引领者,积极拥抱开源生态,提供可观测监控 Prometheus 版、可观测可视化 Grafana 版、可观测链路 OpenTelemetry 版,兼容 OpenTelemetry、Skywalking 等主流开源协议的链路追踪服务,共同形成新一代阿里云可观测解决方案。使用标准化技术向下连接存量、碎片化可观测数据,向上帮助客户形成自己独有、无厂商锁定的可观测解决方案,实现真正的客户成功。
打造可观测数据生态
自 2017 年,阿里云与 Elastic 公司合作打造 Elasticserach 服务后,阿里云先后与 Grafana Labs、博睿数据、谐云、袋鼠云等企业达成战略合作。通过无缝集成阿里云自研可观测体系,把引领业界标准的优秀产品与技术服务带给阿里云的海量客户,以此实现为客户提供更丰富、优质、低门槛的可观测服务与能力。
产品和服务
阿里云产品 | 应用场景 | 描述 |
(ETL/Stream Processing)
(Data Warehouse)
| 为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。 | |
| 作为云原生可观测平台,应用实时监控服务 ARMS 轻松实现全栈性能监控告警与端到端追踪诊断,能够覆盖浏览器、小程序、APP 等客户端环境及分布式、微服务等应用架构,容器、Serverless 等部署环境,实现全栈应用性能与用户体验的洞察与优化。 | |
| 作为云原生指标监控平台, 可观测监控 Prometheus 版完整兼容 Prometheus 生态,满足业务、应用组件、云服务、容器、基础设施等场景的监控告警需求。 | |
.NET、Go、PHP、C++等多语言应用监控 | 可观测链路 OpenTelemetry 版针对 PHP、C++、Go、Node.js 等多语言应用,提供端到端全链路追踪、应用监控与告警、链路拓扑、日志关联分析能力,并基于 OpenTelemetry 开源标准,兼容 Jaeger、Zipkin、SkyWalking 等开源项目数据上报,可以实现快速发现分布式应用架构下的性能瓶颈,缩短错、慢调用根因定位耗时,提高全栈开发与诊断效率。 | |
数据可视化 | 可观测可视化 Grafana 版专为多源异构数据的可视化与分析而设计。支持多源异构数据源的接入和配置,覆盖本地、云上数据源,实现跨系统、跨平台的数据联动和分析。通过丰富的图表类型和自定义选项,满足不同场景下数据可视化需求,并通过设置各种告警规则和通知方式,帮助企业实现数据集中管理、深度分析和实时监控。 | |
| 性能测试 PTS 作为一款集性能压测、监控与分析于一体的一站式服务平台,模拟百万规模并发用户访问,对各类应用程序、网站、API 等进行深度性能评估和优化。它提供一站式操作界面与流程管理,降低性能测试的复杂性和门槛,通过提供智能化分析功能,能够自动识别和诊断性能问题,更轻松全面地评估系统负载承受能力与响应速度。 |
最佳实践
实践场景简述 | 具体描述 | 相关文档 |
日志采集与分析 | 以采集分析 ECS 的 Nginx 访问日志为例,介绍开通日志服务、创建日志项目与 Logstore、Logtail 采集日志、查询与分析日志。 | |
监控Web应用、小程序 | 适用于将网站、Web 应用部署在阿里云上,需监控网络质量、网站、小程序场景。具体包括:
| |
Java 应用监控 |
| |
.NET、Go、PHP、C++等多语言应用监控 | 在缺乏多语言应用性能监控的情况下,开始希望对错、慢、异常等进行分析排查,重现调用参数、发现系统瓶颈。 | |
容器监控、云服务监控 |
| |
性能测试 | 互娱、游戏、社交的用户活动、电商促销、秒杀活动需要实时监测服务运行状况,保障业务稳定性。为了应对未知规模流量,或新系统上线未充分规划、经常宕机,配合性能测试 PTS 压测,想要定位系统瓶颈,为产品优化提供依据。 |