BpFile(id=357, bpId=223, name=容器场景下云原生可观测性, author=null, keyword=容器,可观测性,ARMS,Prometheus, description=针对部署在阿里云容器服务Kubernetes的微服务应用,一键式接入覆盖用户体验层、应用层、基础组件层的云原生可观测方案,构建全面的可观测技术体系,帮助客户更好的梳理系统架构,更深入的掌握系统运行状态。在故障以及系统瓶颈场景下,有效提升客户排查问题的效率。, position=null, ossUrl=bp-B3KPRQT3N9092K5U.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=1, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
针对部署在阿里云容器服务Kubernetes的微服务应用,一键式接入覆盖用户体验层、应用层、基础组件层的云原生可观测方案,构建全面的可观测技术体系,帮助客户更好的梳理系统架构,更深入的掌握系统运行状态。在故障以及系统瓶颈场景下,有效提升客户排查问题的效率。
, templateId=XGZ8ZW0D4FMDLVMG, freetry=, visitTime=null, visitCount=null, video_url=, buttonName=null, buttonUrl=null, targetId=XGZ8ZW0D4FMDLVMG, partner=, partnerUrl=, partnerLogo=, cooperation=, cooperationList=null)
1
容器场景下云原生可观测性 最佳实践
业务架构 场景描述
针对部署在阿里云容器服务 Kubernetes的微
服务应用,一键式接入覆盖用户体验层、应
用层、基础组件层的云原生可观测方案,构
建全面的可观测技术体系,帮助客户更好的
梳理系统架构,更深入的掌握系统运行状
态。在故障以及系统瓶颈场景下,对于客户
排查问题效率的提升。
方案优势
1. 集链路明细、性能统计、拓扑发现于一
体,端到端诊断分析;
2. 基于开源和业界标准,支持各类开发语
言,应用广泛;
3. 自定义大盘,快速分析和定位错误,实
时报警;
4. 阿里云专业技术输出,成本低于自建,
产品列表
与阿里云 ECS、容器服务等无缝集成。
容器服务 Kubernetes版(ACK)
云数据库服务 RDS
解决问题
微服务引擎 MSE
链路梳理难
应用高可用服务 AHAS
故障定位难
应用实时监控服务 ARMS
容量预估难
接入监控难
最佳实践频道 阿里云最佳实践技术分享群
2文档模板(手册名称)/Error! Use the Home tab to apply
云服务器 ECS(产品名称) 标题 to the text that you want to appear here.
阿里云
容器场景下云原生可观测性
最佳实践
文档版本:20210804(发布日期)
文档版本:20210804 1
3容器场景下云原生可观测性最佳实践 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 容器场景下云原生可观测性
文档编号 223
文档版本 V1.1
版本日期 2021-06-16
文档状态 外部发布
制作人 川知
审阅人 -
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2021-08-04 川知、山猎 - 创建
文档版本:20210804 I
4容器场景下云原生可观测性最佳实践 前言
前言
概述
针对部署在阿里云容器服务 Kubernetes的微服务应用,一键式接入覆盖用户体验层、
应用层、基础组件层的云原生可观测方案,构建全面的可观测技术体系,帮助客户更
好的梳理系统架构,更深入的掌握系统运行状态。在故障以及系统瓶颈场景下,有效
提升客户排查问题的效率。
应用范围
业务上云,对系统进行评估,包括容量、性能瓶颈等能力。
需要快速诊断分布式微服务应用架构性能瓶颈,提升开发诊断效率的用户。
对于复杂的微服务系统,快速高效的多个服务实例之间的调用链, 也包含对外部
系统比如数据库、消息队列等的访问。
名词解释
ACK:容器服务 ACK(Alibaba Cloud Container Service for Kubernetes)提供
高可性能可伸缩的容器应用管理服务,支持企业级 Kubernetes容器化应用的生
命周期管理。容器服务 ACK简化集群的搭建和扩容等运维工作,整合阿里云虚
拟化、存储、网络和安全能力,打造云端最佳的 Kubernetes容器化应用运行环
境。详见:https://www.aliyun.com/product/kubernetes
ARMS:应用实时监控服务 (Application Real-Time Monitoring Service)是一款应
用性能管理产品,包含前端监控,应用监控和 Prometheus监控三大子产品,涵
盖了浏览器、小程序、APP、分布式应用和容器环境等性能管理,能帮助你实现
全栈式的性能监控和端到端的全链路追踪诊断,让应用运维更加轻松高效。详见:
https://www.aliyun.com/product/arms
MSE:微服务引擎(Micro Service Engine)是一个面向业界主流开源微服务生态的
一站式微服务平台, 帮助微服务用户更稳定、更便捷、更低成本的使用开源微服
务技术构建微服务体系。提供注册中心、配置中心全托管(兼容
Nacos/ZooKeeper/Eureka)、网关(兼容 Zuul/Kong/Spring Cloud Gateway)和无
侵入的开源增强服务治理能力。 详见:
https://www.aliyun.com/product/aliware/mse
文档版本:20210804 III
5容器场景下云原生可观测性最佳实践 目录
目录
文档版本信息 ........................................................................................................................................................ I
法律声明 ............................................................................................................................................................... II
前言 ..................................................................................................................................................................... III
目录 ..................................................................................................................................................................... IV
最佳实践概述 ....................................................................................................................................................... V
前置条件 ............................................................................................................................................................... 1
1. 基础环境搭建 ............................................................................................................................................... 2
1.1. 通过 CADT创建资源 ...................................................................................................................... 2
1.2. 创建数据库 .................................................................................................................................... 4
1.3. ACK接入 ARMS .............................................................................................................................. 6
1.4. 获取 NACOS访问地址 ................................................................................................................... 8
1.5. 配置 redis数据库 .......................................................................................................................... 9
2. 应用部署 ..................................................................................................................................................... 12
2.1. 应用架构 ...................................................................................................................................... 12
2.2. 接入前端监控 .............................................................................................................................. 12
2.3. 应用部署 ...................................................................................................................................... 15
3. 前端监控 ..................................................................................................................................................... 19
3.1. 前端指标监控 .............................................................................................................................. 19
3.2. 前端业务告警 .............................................................................................................................. 22
4. Prometheus监控 ......................................................................................................................................... 26
4.1. 安装 Prometheus .......................................................................................................................... 26
4.2. 接入 rds mysql数据库监控 .......................................................................................................... 27
4.3. 接入 redis数据库监控 ................................................................................................................. 29
5. 应用监控 ..................................................................................................................................................... 31
5.1. 梳理接口调用链路....................................................................................................................... 31
5.1.1. 应用依赖分析....................................................................................................................... 31
5.1.2. Frontend服务接口调用分析 ................................................................................................ 32
5.1.3. Sql调用分析......................................................................................................................... 33
5.2. 模拟慢调用 .................................................................................................................................. 35
5.3. 调用链路查询 .............................................................................................................................. 37
文档版本:20210804 IV
6容器场景下云原生可观测性最佳实践 最佳实践概述
最佳实践概述
概述
针对部署在阿里云容器服务 Kubernetes的微服务应用,一键式接入覆盖用户体验层、
应用层、基础组件层的云原生可观测方案,构建全面的可观测技术体系,帮助客户更
好的梳理系统架构,更深入的掌握系统运行状态。在故障以及系统瓶颈场景下,极大
的提升客户排查问题的效率。
场景描述
电商、直播、在线教育、产品等行业,特别是使用 Java系微服务体系,或者基于阿
里云容器服务 Kubernetes搭建应用的客户,对系统架构的梳理,掌握系统运行状态,
以及系统瓶颈、故障定位的效率有着较强的需求。
遇到的痛点:
链路梳理难:微服务化后,应用规模大增,复杂的系统存在数十个应用, 调用跨
越了多个应用实例进程, 也包含对外部系统比如数据库、消息队列的访问,没法
高效地串联起来还原调用链
故障定位难:在分布式系统中,不管是终端、网络、应用、数据库,还是 ECS等
基础资源,任何一个环节出现故障或瓶颈点都有可能导致系统整体的事故或卡顿。
在寻找故障源的工作上,往需要投入巨大的时间和精力,效率极低,而且被动的
排查方式只能作为事后的补救措施,不能够第一时间防止事故的发生。
容量预估难:对于系统中每一个组件,容量不足会导致性能问题甚至系统崩溃,
容量过剩又会造成严重的浪费。容量的评估没有固定的公式,需要在实践中不断
调整才能达到最佳配比
接入监控难:监控需求覆盖客户端、应用、基础组件、中间件等多个层面,很难
找到一套整体的方案能让所有组件快速接入,并构建一体监控大盘。在最重要的
应用层,代码侵入式的手工链路埋点方案接入难度极高,很难在多个团队统一推
广
方案架构和优势
方案架构
文档版本:20210804 V
7容器场景下云原生可观测性最佳实践 最佳实践概述
方案优势
ᅳ 集链路明细、性能统计、拓扑发现于一体,端到端诊断分析;
ᅳ 基于开源和业界标准,支持各类开发语言,应用广泛;
ᅳ 自定义大盘,快速分析和定位错误,实时报警;
ᅳ 阿里云专业技术输出,成本低于自建,与阿里云 ECS、容器服务等无缝集成。
文档版本:20210804 VI
8容器场景下云原生可观测性最佳实践 前置条件
前置条件
为了顺利完成本实践,您需要提前完成以下准备工作:
注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证
页面(account.console.aliyun.com/v2/#/authc/home)查看是否已经完成实名认
证。
阿里云账户余额大于 100元。您可以登录阿里云控制台,并前往账户总览页面
(expense.console.aliyun.com/#/account/home)查看账户余额。
本实践所有重要示例代码和命令行可以从如下 git地址获取:
https://code.aliyun.com/best-practice/cloud-native
文档版本:20210804 1