开发者学堂课程【Elasticsearch 实战进阶营:实操讲解:微服务全链路调用监控(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/899/detail/14318
实操讲解:微服务全链路调用监控(一)
目录
一、微服务全链路概念
二、微服务全链路背景
三、微服务全链路性能优化
四、微服务全链路优势和覆盖范围
五、APM 架构体系介绍
六、Serve 实战配置和启动
七、Agent 实战配置和启动
一、微服务全链路监控概要介绍
1. 概念
在微服务架构下,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、分布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络,这样一个场景下,对于用户的每一次请求调用,后端执行了多少组件间的调用无法知晓,由于分布式的调用,增加了程序调用异常的错误率,在这样的应用场景下,新的架构技术带来了新的问题。
APM 主要通过从客户端和服务端进行数据采集。其中客户端数据采集方式主要分为主动式探测(俗称“拨测”)和被动式监测。相比主动式的模拟监测,真实用户体验监测可以提供全样本监测数据,避免样本偏差。服务端的数据采集都是被动方式,主要两大技术路径分别是 NPM (网络性能管理)和探针部署。NPM 属于非侵入式的技术,不会对应用性能造成影响,然而不能提供代码及的问题定位;探针部署则反之。
2. 背景
随着软件开发技术架构的不断演进,采用诸如 TSF 微服务框架开发微服务已经成为一种趋势,然而随着客户业务流量的不断提升,微服务也会遇到性能上的瓶颈,对于系统如果做到高效、稳定保障系统平稳支撑业务增长,是我们需要面对的技术难题。
3.性能优化
(1)降低业务成本。
(2)提升系统的稳定性。
(3)提升用户的体验。
4.优势
(1)背后是 elasticsearch 集群,可承载 PB 级数据,并且大部分的企业都会部署 es 集群,技术和资源共享
(2)elasticsearch 作为最常用的开源日志分析工具,APM 可与日志分析相结合
(3)目前是免费的。属于 elastic basic license 中的基本功能
支持多种语言,监控客户端包括
java/go/python/ruby/nodejs/rail 等
(4)社区还算活跃,版本升级比较快
5.覆盖范围
(1)终端用户体验
(2)应用架构映射
(3)应用事务的分析
(4)深度应用诊断
(5)数据分析
二、APM:微服务全链路实时监控
1.Elastic APM 架构体系
APM agent 是一系列开源库,使用与服务器端相同的语言编写,目前支持 node、python、ruby、js,java 和 golang。可以像安装任何其他库一样将它们安装到服务器端中。apm agent 会检测代码并在运行时收集性能数据和错误。此数据可 缓冲一小段时间并发送到 APM 服务器。基于 Java 采集数据,把数据经过组装合并,传到 APM Server 中
APM Server 是一个用 Go 编写的开源应用程序,通常在专用服务器上运行。
它默认侦听端口8200,并通过 JSON HTTP API 从代理接收数据。然后,它根据该数据创建文档并将其存储在 Elasticsearch 中。
Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎。它允许你快速,近实时地存储,搜索和分析大量数据。Elasticsearch 用于存储APM性能指标并利用其聚合。
Kibana 是一个开源分析和可视化平台,旨在与 Elasticsearch 协同工作。
可使用 Kibana 搜索,查看 Elasticsearch 中存储的数据并与之进行交互。
还可以使用 Kibana 中的专用 APM UI 或可以通过 APM Kibana UI 直接加载的预构建的开源 Kibana dashboard 来可视化 APM 数据。(basic license 就授权了 APM 功能)
三、Serve 实战
APM 分为两部分,Agent 和 Server
1.下载及配置
(1) 官方下载并且解压 apm serve
#下载
curlhttps://artifacts.elastic.co/downloads/apm-server/apm-server-7.12.0-darwin-x86_64.tar.gz
#解压
tar xzvf apm-server-7.12.0-darwin-x86_64.tar.gz
#进入
cd apm-server-7.12.0-darwin-x86_64/
(2) Apm-server host:”ip+端口”
(3) 搜索 output.elasticsearch
vim apm-server.yml
output.elasticsearch: hosts: [""]
(4) 配置好用户名和密码
username: "elastic" password: "xxx"
(5) 配置 montioring 监控
#默认式 flase
Montioring.enable:true
2.启动
(1)CMD 进入 bos 窗口 Windows+r 输入 cmd
(2)进入 apm 安装目录下,执行 Apm-server.exe
(3)管理后台监控页面