skywalking APM 监控
目录
skywalking
基于 OpenTracing 规范,专门为微服务架构以及云原生服务。
APM 监控
一个基于微服务架构的电商系统
APM
(Application Performance Management) 即应用性能管理,属于 IT 运维管理(ITOM)范畴.
分为一下三个方面:
- Logging
服务在处理某个请求时打印的错误日志,可以将这些日志信息记录到Elasticsearch
或是其他存储中。通过 Kibana 或是其他工具来分析这些日志了解服务的行为和状态,大多数情况下。日志记录的数据很分散,并且相互独立。例如错误日志,请求处理过程中关键步骤的日志等等。 - Metrics
Metric
是可以聚合的,例如为电商系统中每个 HTTP 接口添加一个计数器,计算每个接口的 QPS,可以通过简单的加和计算得到系统的总负载情况。 - Tracing
在微服务架构系统中一请求会经过很多服务处理,调用链路会非常长,要确定中间哪个服务出现异常是非常麻烦的事情,通过分布式链路追踪,运维人员就可以构建一个请求的视图。视图上战术了一个请求从进入系统开始到返回响应的整个流程。
系统交互图
系统加载图
>
目前流行的APM监控
- Zipkin
- 对 web.xml 进行修改,代码侵入
- twitter 开源
- Cat
- 支持 Java、C/C++、Node.Js、Python、go
- 代码侵入,埋点
- 美团开源
- Pinpoint
- 基于字节码注入技术,代码无侵入
- 韩国公司开发,社区交流滞后
- 只支持 hbase
- 颗粒度更细
- Skywalking
观测性分析平台- 基于字节码注入技术,代码无侵入
- 服务、服务实例、端点指标分析
- 服务拓扑图分析
- 服务、服务实例和端点(Endpont)SLA 分析
- 支持 es,h2,mysql,TiDb,sharding-sphere
skywalking 整体框架
- 上部分
Agent
:负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。 - 下部分
SkyWalking OAP
:负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。 - 右部分
Storage
:Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。 - 左部分
SkyWalking UI
:负责提供控台,查看链路等等。
skywalking 配置
使用 docker-compose 安装
使用 mysql 作为存储
下载 mysql-connector-java-8.0.30.jar
|
|
创建带 mysql 驱动的基础镜像
|
|
上传 dockerhub 或者自己的镜像仓库,这里我是上传到自己的仓库
- 创建镜像
docker build -t skywalking-mysql-server:v1.0 .
- 打 tag,选择上传位置
docker tag skywalking-mysql-server:v1.0 <仓库地址>/blog/skywalking-mysql-server:v1.0
- 上传镜像
docker push <仓库地址>/blog/skywalking-mysql-server:v1.0
|
|
skywalking 客户端部署
下载客户端
点击下载
安装到要监控的主机
|
|
配置变量
|
|
启动java程序
|
|