概述

阿里云的可观测性体系: 日志管理、监控管理

日志管理

Kubernetes可观测性体系概述

  • 可观测性指如何从外部输出推测及衡量体系内部状态

  • Kubernetes可观测性体系包括:监控和日志,是大型分布式系统的重要基础设施

    • 监控可以帮助开发者插卡系统的运行状态
    • 日志可以协助问题的排查和诊断
    • 在Kubernetes中,监控和日志属于生态的一部分,他并不是核心组件,因此大部分的能力依赖上层的云厂商的适配。
    • Kubernetes定义了介入的接口标准和规范,任何符合接口的组件都可以快速集成。
  • Logging-日志

    • 基于阿里云日志服务SLS提供了完整的日志方案,可以对应用日志进行收集、处理,并提供了操作审计,kubernetes事件中心等能力。
  • Metrics-监控指标

    • 对基础设施服务(比如ECS、存储、网络),云监控提供了全面的监控。
    • 对于业务应用的性能指标,ARMS无需修改业务代码即可对Java和PHP应用提供全方位的性能监控。
  • Tracing-全链路追踪

    • Tracing Analysis为开发者提供了完整的分布式应用调用链路统计、拓扑分析等工具。
    • 能够帮助开发者快速发现和诊断分布式应用中的性能瓶颈,提升微服务应用的性能和稳定性。

Kubernetes日志使用场景

Kubernetes日志使用场景主要分为四个大的场景:

  • 主机内核的日志: 协助开发者进行一些常见的问题与诊断:网络栈异常、驱动异常、文件系统异常、影像节点(内核)稳定的异常。
  • Runtime日志:主要包括Docker日志
  • 核心组件的日志:APIServer日志可以用来审计,Scheduler日志可以诊断调度,etcd日志可以查看存储状态,Ingress日志可以分析接入层流量
  • 部署应用的日志:可以通过应用日志分析插卡业务层的状态,状态异常。

Kubernetes日志的采集

从采集位置上划分,主要分为三种:

  • 宿主机文件
  • 容器内文件
  • 容器标准/错误输出

阿里云ACK日志服务

可创建两种日志:

  • 集群日志服务
  • 应用配置日志服务

监控

监控类型

从监控类型上划分,在Kubernetes中可以分成4个不同的类型:

  • 资源监控:主要监控CPU、内存、网络等常规指标
  • 性能监控:应用的内部监控,通常是通过Hook的机制在虚拟机层、字节码执行层通过隐式调用,或者是在应用层显示注入,获得更深层次的一个监控指标,一般是用来应用的调优和诊断的。
  • 安全监控:安全监控主要是对安全进行的一系列的监控监控,类似像越权管理、安全漏洞扫描等。
  • 事件监控:事件监控紧密贴合Kubernetes的设计理念,补充常规监控方案的欠缺和弊端。

监控工具

  • Cloud Monitor: 基础资源监控
  • SLS: 阿里云日志服务
  • AHAS: 架构感知监控,应用高可用服务AHAS
  • ARMS APM:阿里云应用性能监控ARMS
  • ARMS Prometheus:阿里云托管版Prometheus
  • XTrace:链路追踪Tracing Analysis

基础资源监控Cloud Monitor

  • 云监控

    • 是一项针对阿里云资源和互联网应用进行监控的服务
    • 云监控用于监控各云服务资源的监控指标,探测云服务ECS和运营商站点的可用性,并针对制定监控指标设置报警。
    • 全面了解阿里云上资源的使用情况和业务运行状况,并及时对故障资源进行处理,保证业务正常运行。
  • 查看容器监控数据

  • 管理报警规则

日志服务SLS

  • 主要负责日志的采集、分析

  • 可采集以下日志:

    • APIServer等核心组件的日志
    • Service Mesh/Ingress等接入层的日志
    • 应用的标准日志
  • 提供上层的日志分析能力

  • 默认提供了基于API Server的审计分析能力、接入层的可观测性展现,应用层的日志分析

应用实时监控服务ARMS

  • 是一款阿里云应用性能管理(APM)类监控产品
  • 可以基于前端、应用、业务自定义等维度,迅速便捷地为企业构架秒级响应的业务监控能力
  • ARMS提供一系列的监控定制功能,包括数据接入、数据计算、数据存储、大盘展示与报警、下游API对接等环节
  • 用户需要关心三件事:数据从哪里来、实时计算怎么编排、数据怎么用

架构感知监控AHAS

  • AHAS是架构感知监控,通常在Kubernetes集群中负载的类型大部分为微服务,微服务的调用拓扑也比较复杂,因此当集群的网络链路出问题时,如何快速定位问题、发现问题、诊断问题则成为了最大的难题。
  • AHAS通过网络的流量和走向,将集群的拓扑进行展现,提供更高层次的问题诊断方式。
  • 为Kubernetes应用安装AHAS探针后,AHAS能自动识别系统中的Pod、Deployment、Service和它们与其他组件的依赖关系
  • 通过采集Kubernetes元信息,构建Kubernetes资源的物理拓扑关系,支持自建Kubernetes集群、阿里云容器服务Kubernetes集群

不同层次的监控解决方案

从可观测性的角度,以ACK为基础的系统架构可以粗略分为4个层次,自下而上分别是:

  • 基础设施层
  • 容器性能层
  • 应用性能层
  • 用户业务层

阿里云容器服务ACK监控方案详解

  • 基础设施层可观测性:包括架构可视化感知方案和基础设施指标监控方向

  • 集群、容器的性能指标监控:阿里云托管版Prometheus监控方案、开源Prometheus监控方案、事件的监控方案

  • 应用性能可观测性:无侵入应用监控APM监控方案、侵入应用监控APM监控方案

  • 用户业务可观测性:自定义日志监控方案

小结

  • 阿里云容器服务ACK版可观测性体系包括:

    • Logging-日志

    • Metrics-监控指标

    • Tracing-全链路追踪

  • 阿里云容器服务ACK版集成了日志服务、在创建集群时启用日志服务、快速采集Kubernetes集群的容器日志、包括容器的标准输出以及容器内的文本文件

  • 阿里云容器服务ACK版提供了云原生标准的监控接口

    • 它将监控的数据消费能力进行了标准化解耦

    • 可以实现和不同云厂商提供的监控服务进行标准化接入

    • 目前已经实现多个监控云服务打通接入

  • 阿里云容器服务ACK版监控生态解决方案分为:

    • 基础设施层场景的可观测性

    • 容器性能层场景的可观测性

    • 应用性能层场景的可观测性

    • 用户业务层场景的可观测性

posted on 2023-03-08 11:07  eryoung2  阅读(92)  评论(0编辑  收藏  举报