Skip to content

可观测

1.可观测是什么?

自从越来越多数据上云,数字化业务越来越多。对 IT 系统状态的监测和诊断也提出了新的挑战,需要从 “监控” 走向 “可观测” 。

“监控”是“可观测性”能力的一部分,监控告诉我们系统哪些部分是工作的,而可观测性,则告诉我们那里为什么不工作了。

可观测

可观测和监控是两个相关但是不同的概念,首先从定义上来看:

  • 可观测:强调系统的内部状态,从外部的输出去推断出来。依赖于丰富的 logsmetricstracing ,强调升入理解系统的行为的能力
  • 监控:对系统的状态、性能进行实时跟踪,强调收集实时数据,分析数据,展示问题的出现

2.可观测性的基座

支撑可观测的三大基座是:指标(metrics)、链路(tracing)和日志(logs),来提供对分布式系统的深⼊可⻅性,并允许团队找到⼤量问题的根本原因并提⾼系统性能。

  • 指标(metrics):系统性能相关的可量化数据,如 CPU 使用率、内存占用、网络带宽利用率、数据库查询速率、服务响应时间等。这些实时或周期性收集的数据可用于监控系统性能、资源利用率、容量规划、系统可用性。
  • 链路(tracing:跟踪一个请求在多个服务间的调用路径及其耗时。通过收集每个服务节点上的跨度(Span)信息,形成完整的请求链路视图,便于深入理解跨服务边界的服务交互性能和问题定位。
  • 日志(logs):系统在运行过程中生成的记录信息,包括错误消息、警告、调试信息及用户操作事件等。通过对日志进行收集、存储、搜索和分析,运维人员能够了解系统的执行历史、发现异常情况并诊断问题。

3.业界常见的可观测性产品

在实际应用中,许多工具和平台支持实现可观测性。它们整合了日志、指标和链路跟踪,帮助用户全面了解分布式系统的健康状况和性能。

以下是一些常见的可观测性产品和解决方案:

  1. Prometheus + Grafana

    • Prometheus:一个广泛使用的开源监控系统,专注于收集和存储指标数据。它支持多维度数据模型和强大的查询语言(PromQL),用于监控系统性能和状态。
    • Grafana:数据可视化平台,通常与Prometheus集成,用于创建图表、警报和仪表板来直观地展示系统的性能数据。
  2. Elasticsearch + Kibana + Logstash/Beats (ELK/EFK Stack)

    • Elasticsearch:搜索和分析引擎,广泛用于日志存储和查询。
    • Kibana:可视化工具,与Elasticsearch集成,提供强大的仪表板和数据分析功能。
    • Logstash/Beats:用于收集、解析和传输日志数据的工具,使日志处理更加灵活。
    • Filebeat/Fluentd:作为日志收集代理,常用于将日志数据从服务器传输到Elasticsearch。
  3. Jaeger

    • 开源分布式链路跟踪系统,用于监控和分析跨多个服务的请求延迟和性能问题。它帮助开发者识别系统中的瓶颈,并优化服务间调用的性能。
  4. Zipkin

    • 与Jaeger类似的分布式跟踪系统,帮助分析微服务架构中的请求路径和性能。它能显示每个服务调用的时间花费,帮助识别延迟来源。
  5. Datadog

    • 一体化监控、日志管理和分布式跟踪平台,能够从云基础设施、应用和服务中收集数据,并进行分析和可视化。它支持多种云平台,提供全面的可观测性解决方案。
  6. New Relic

    • 端到端的可观测性平台,支持应用性能监控(APM)、基础设施监控、日志管理和分布式跟踪,能够帮助团队快速识别并修复性能问题。
  7. Splunk

    • 一款用于日志管理和分析的企业级平台,具备强大的数据索引、搜索和可视化功能。它能够处理大量日志数据,并提供智能告警和问题诊断支持。
  8. Flashcat

    • 一款国产轻量级的日志管理系统,专注于简化日志的收集、管理和分析。它可以帮助运维团队快速获取日志信息,进行实时分析和问题排查。

通过这些工具,企业能够实现对复杂分布式系统的全面监控,及时诊断问题,优化系统性能。