可观测性体系概述

可观测性是一种通过分析系统外部输出结果推断及衡量系统内部状态的能力。Kubernetes可观测性体系包含监控和日志两部分,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断。本文介绍阿里云容器服务ACK可观测性生态分层和各层的可观测能力,以帮助您对容器服务可观测性生态有一个全面的认识。

容器服务可观测生态概述

从可观测性的角度,以ACK为基础的系统架构可以粗略分为4个层次。自下而上分别是:基础设施层、容器性能层、应用性能层、用户业务层。

image.png

以下分别是基础设施层、容器性能层、应用性能层、用户业务层的可观测性介绍。

基础设施层可观测性

指容器服务ACK所依赖的底层资源的可观测场景:定位Pod与节点组成的资源池的调用链路,可视化拓扑关系,以及基础设施监控,例如宿主机节点、网络基础组件的性能监控等。

解决方案

方案介绍

适用场景

参考文档

架构可视化感知方案

Kubernetes集群中的业务是运行在节点组成的资源池上,使得定位Pod的调用链路以及拓扑关系非常复杂。如何以可视化的方式监控Kubernetes中的负载状态,以及更好地可视化集群中流量的吞吐是非常重要的问题。

阿里云Kubernetes监控基于eBPF技术,结合阿里云Prometheus容器监控,最终整合了指标监控、应用链路追踪、日志分析和事件监控等多种功能,提供Kubernetes集群一站式可观测性产品。使ACK集群具备网络监控、架构可视化感知等能力。为IT开发和运维人员提供无代码侵入、整体的可观测性方案。

适用于全部场景。

  • 支持Kubernetes集群中Node、Pod之间的网络流量监控。

  • 支持Pod之间4层以上网络流量的监控,以及多协议(如TCP、HTTP)和DNS解析等网络链路监控。

更多信息,请参见集群拓扑监控

内核层容器监控能力

容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)提供独特的操作系统内核层的容器监控可观测能力SysOM(System Observer Monitoring)。该能力可以帮助您更好地进行容器化部署和迁移,同时也可以提供更好的容器监控和可观测能力。

适用于全部场景。

更多信息,请参见SysOM内核层容器监控

基础设施指标监控方案

资源监控是Kubernetes中最常见的底层资源监控方式,通过资源监控可以快速查看负载的CPU、内存、网络等指标的使用率。在阿里云容器服务中,资源监控已经与云监控互通,新建的集群默认安装并集成云监控(Cloud Monitor)。

适用于全部场景。

更多信息,请参见相关文档中的基础资源监控

容器性能层可观测性

指基于容器服务ACK构建系统的容器抽象层的可观测场景,包括集群的性能、事件等监控,容器的性能,以及容器组件等监控。

集群、容器的性能指标监控

解决方案

方案介绍

适用场景

参考文档

云监控容器服务ACK的监控方案

容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)新建的集群默认安装与集成云监控(Cloud Monitor),提供集群、容器的部分性能指标监控,并集成在容器服务控制台中展示。

适用于部分场景。

定制化提供基础的容器层性能指标和可观测能力。

更多信息,请参见基础资源监控

阿里云托管版Prometheus的监控方案

Prometheus也是社区官方的容器场景云原生指标可观测方案。阿里云Prometheus监控全面对接开源Prometheus生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的Prometheus服务。借助阿里云Prometheus监控,您无需自行搭建Prometheus监控系统,因此无需关心底层数据存储、数据展示、系统运维等问题。推荐使用阿里云托管版Prometheus(ARMS Prometheus)云产品。

适用于所有场景,包括微服务(ServiceMesh)场景、集群自身组件指标,以及定制监控能力等高级可观测能力。

更多信息,请参见阿里云Prometheus监控

开源Prometheus监控方案

阿里云容器服务在应用市场中提供了开源Prometheus监控方案的集成。

适用于所有场景,包括微服务(ServiceMesh)场景、集群自身组件指标以及定制监控能力等高级可观测能力。

更多信息,请参见开源Prometheus监控

集群、容器事件监控

解决方案

方案介绍

适用场景

参考文档

事件的监控方案

事件监控是Kubernetes站在事件角度的另一种监控方式,可以弥补资源监控在实时性、准确性和场景上的缺陷。开发者可以通过获取事件,实时诊断集群的异常与问题。推荐使用阿里云日志服务 SLS(Log Service)产品提供的事件中心监控能力。

适用于全部场景。

更多信息,请参见事件监控

应用性能层可观测性

指基于容器服务ACK构建系统的具体应用场景,包括应用指标性能(Metric)、系统调用链(Tracing)、日志监控(Logging)等,例如基于容器服务构建一个Java应用,Java应用的线程数指标等。

解决方案

方案介绍

适用场景

参考文档

无侵入Java应用监控APM监控方案

推荐使用阿里云应用性能监控ARMS(Application Realtime Monitor Service)作为应用性能层监控方案,ARMS是一款阿里云应用性能管理(APM)类监控产品。只要为部署在容器服务Kubernetes版中的Java应用安装ARMS应用监控组件,您无需修改任何代码,就能借助ARMS对Java应用进行全方位监控,以便您更快速地定位出错接口和慢接口、重新调用参数、检测内存泄漏、发现系统瓶颈,从而大幅提升线上问题诊断的效率。

适用于部分场景,包括Java应用的应用监控,方案接入支持无侵入方式,无需进行代码改造。

更多信息,请参见应用监控

侵入式应用监控APM监控方案

链路追踪Tracing Analysis为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。链路追踪支持多种开源社区的SDK,且支持OpenTracing、OpenTelemetry生态标准。

适用于所有场景,包括微服务(ServiceMesh)以及多种开发语言的应用。支持OpenTelemetry生态标准。方案接入需要侵入式代码引入改造。

更多信息,请参见在ASM中实现分布式跟踪

可观测链路 OpenTelemetry 版为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。

基于OpenTracing标准,兼容开源社区,例如Jaeger、Zipkin。支持多语言开发程序接入,包括Java、PHP、Go、Python、Node.js、.NET、C++、Ruby、Swift等。

更多信息,请参见什么是可观测链路 OpenTelemetry 版接入指南

用户业务层可观测性

基于容器服务ACK构建的业务系统的具体业务场景,例如基于容器服务构建一套高可用可扩展的网站,网站的业务运营数据PV、UV等,例如应用的成本审计场景等。

解决方案

方案介绍

适用场景

参考文档

自定义日志监控方案

推荐使用阿里云日志服务SLS(Log Service)作为自定义指标的观测方案。您可以通过自定义应用系统的内容、格式,并通过日志服务收集,并在日志服务中配置业务大盘,观测自己的业务情况,或做系统审计。

适用于全部场景,如流量监控、成本审计统计、业务订单走势统计等。

更多信息,请参见通过日志服务采集Kubernetes容器日志

通过可观测可视化Grafana版自定义业务大盘

阿里云可观测可视化Grafana版是云原生的运维数据可视化平台,面向用户提供免运维和快速启动Grafana运行环境的能力,默认集成如数据库、消息队列、Prometheus监控、日志服务等各类阿里云服务数据源,并提供丰富的数据看板,让运维监控更加精细。

可观测可视化 Grafana 版可以帮助您在高效分析与查看指标、日志和跟踪的同时,无需关注服务器配置、软件更新等繁杂工作,有效降低运维复杂性与工作量,并借助阿里云强大的云原生能力,全面提升Grafana的安全性与可用性。

适用于全部场景。

用户可根据自身业务场景,直接使用Grafana配置业务大盘,如PV、UV等实时业务监控大盘。

更多信息,请参见什么是可观测可视化 Grafana 版

通过ARMS前端监控从网页前端感知业务流量、业务服务的健康状况。

ARMS前端监控专注于对Web场景、Weex场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康状况。

适用JavaScript的前端应用场景。

更多信息,请参见

什么是ARMS前端监控?

相关文档