1.skywalking介绍
SkyWalking 是观察性分析平台和应用性能管理系统。 提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案.
2.skywalking 原理图
3.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 :负责提供控台,查看链路等等。
4 .skywalking demo 架构图
5. skywalking部署
第一步,搭建一个 Elasticsearch 服务。
第二步,下载 SkyWalking 软件包。
第三步,搭建一个 SkyWalking OAP 服务。
第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。
第五步,搭建一个 SkyWalking UI 服务。
PS:注意ES版本和Skywalking版本兼容 这是我踩的坑 前期搭demo oap 服务起不来
所以我采用的是Elasticsearch 版本-6.X skywalking 版本6.6.0 兼容 7.X和6.X 亲测有效
skywalking 版本6.6.0 ES 6.7 可以从官方下载这两个版本
6.部署ES
6.1.下载ES安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz
6.2.vi config/elasticsearch.yml 编辑配置 (其他配置可以不用变化)
cluster.name: elasticsearch //
network.host: 0.0.0.0
http.port: 9200
6.3 # 解压 $ tar -zxvf elasticsearch-6.7.2.tar.gz $ cd elasticsearch-6.7.2 # 启动。
通过 -d 参数,表示后台运行。 $ bin/elasticsearch -d
6.4 默认访问端口是9200 出现下图 界面则表示启动成功
7 skywalking 安装配置
7.1.下载skywalking $ wget http://mirror.bit.edu.cn/apache/skywalking/6.6.0/apache-skywalking-apm-es7-6.6.0.tar.gz
7.2. 解压 $ tar -zxvf apache-skywalking-apm-es7-6.6.0.tar.gz $ cd apache-skywalking-apm-bin-es7
7.3.vi config/application.yml 配置ES集群节点
PS 如果ES 版本是7.X 配置则是elasticsearch7
7.4 启动服务oap webapp
http://127.0.0.1:8080/ 进入UI页面
8. skywalking 嵌入agent
-javaagent:/Users/qiangqiang/maven/workex/skywaking-demo/skywalking-agent/agent/skywalking-agent.jar
//探针 加载jar
-Dskywalking.agent.service_name=provider-service
//服务名
-Dskywalking.collector.backend_service=127.0.0.1:11800
//collector 默认是 grpc 通信 默认端口是12800
9. zipkin,SkyWalking 对比
类别 | Zipkin | SkyWalking |
部署 | 简单 | 麻烦一些 |
实现方式 | 拦截请求,发送(HTTP,mq)数据至zipkin服务 | java探针,字节码增强 |
代码侵入性 | 有 | 无 |
接入方式 | 基于linkerd或者sleuth方式,引入配置即可 | javaagent字节码 |
OpenTracing | 是 | 是 |
agent到collector的协议 | http,MQ | http,gRPC |
颗粒度 | 接口级 | 方法级 |
UI健壮度 | ** | **** |
数据存储 | ES,mysql,Cassandra,内存 | ES,H2 mysql |
参考:http://skywalking.apache.org/ skywalking官网 demo
Ps : springcloud + skywalking demo
代码地址 https://download.csdn.net/download/qq_34661615/12753839