SpringBoot-Skywalking分布式链路追踪(一)环境准备

“你已经做得很好了,我把这句话存在这里,在需要勇气的时候,请替我悄悄说给你自己听”


一.概览 

skywalking是一个优秀的国产开源框架,2015年由个人吴晟(华为开发者)开源 , 2017年加入Apache孵化器。短短两年就被Apache收入麾下,实力可见一斑。

skywalking支持dubbo,SpringCloud,SpringBoot集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是java探针,支持告警,支持JVM监控,支持全局调用统计等等,功能较完善。

skywalking是通过jar包方式启动,需要下载jar包,这里某使用docker部署;

如需有window版本:自从上了 SkyWalking,睡觉真香!

地址: https://skywalking.apache.org/downloads/

Skywalking架构 

图片

上述架构图中主要分为四个部分,如下:

  • 上面的Agent:负责收集日志数据,并且传递给中间的OAP服务器

  • 中间的OAP:负责接收 Agent 发送的 Tracing 和Metric的数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。

  • 左面的UI:负责提供web控制台,查看链路,查看各种指标,性能等等。

  • 右面Storage:负责数据的存储,支持多种存储类型。

看了架构图之后,思路很清晰了,Agent负责收集日志传输数据,通过GRPC的方式传递给OAP进行分析并且存储到数据库中,最终通过UI界面将分析的统计报表、服务依赖、拓扑关系图展示出来。

二.环境搭建(Docker)

1.Elasticsearch安装

①拉取镜像

docker search elasticsearch

docker pull elasticsearch:7.5.1

②启动容器

docker run -d --name=es7 \
-p 13392:9200 -p 13393:9300  \
-e "discovery.type=single-node" elasticsearch:7.5.1

-- 将数据券复制出来并重新启动
docker cp es7:/usr/share/elasticsearch/data /home/elasticsearch7/
docker cp es7:/usr/share/elasticsearch/logs /home/elasticsearch7/
docker rm -f es7
mkdir -p /home/elasticsearch7/

-- 重新启动
docker run -d --name=es7 --restart=always   \
-p 13392:9200 -p 13393:9300   \
-e "discovery.type=single-node"   \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m"   \
-v /home/elasticsearch7/data:/usr/share/elasticsearch/data    \
-v /home/elasticsearch7/logs:/usr/share/elasticsearch/logs  elasticsearch:7.5.1

③ 访问验证

http://IP:13392

2.安装Skywalking(服务端)

①拉取镜像

docker search skywalking-oap-server 

docker pull apache/skywalking-oap-server:6.6.0-es7

②启动容器

 服务端的两种数据存储方式,一种是默认的H2存储,即数据存储在内存中,一种是使用elasticsearch存储

默认的H2存储启动

 docker run --name skywalking -d \
 -p 13350:1234 -p 13351:11800 -p 13352:12800  \
 --restart always apache/skywalking-oap-server:6.6.0-es7 

 使用elasticsearch存储启动

docker run --name skywalking-oap-server  \
--restart always -d --restart=always   \
-e TZ=Asia/Shanghai  -p 13352:12800  -p 13351:11800  \
--link es7:es7 -e SW_STORAGE=elasticsearch  \
-e SW_STORAGE_ES_CLUSTER_NODES=IP:13392 \
apache/skywalking-oap-server:6.6.0-es7

--也可
-e SW_STORAGE_ES_CLUSTER_NODES=es7:13392 \

 3.安装Skywalking-ui(管理界面)

①拉取镜像

docker search apache/skywalking-ui

docker pull apache/skywalking-ui:6.6.0

②启动容器

docker run -d --name skywalking-ui   \
--restart=always  -e TZ=Asia/Shanghai   \
-p 13358:8080  --link skywalking-oap-server:skywalking-oap-server \
-e SW_OAP_ADDRESS=IP:13352  apache/skywalking-ui:6.6.0   \
--security.user.admin.password=admin

-- 也可
-e SW_OAP_ADDRESS=skywalking-oap-server:13352 

③访问

http://IP:13358/trace

 注意:下载源码包,项目使用会用到agent

https://archive.apache.org/dist/skywalking/6.6.0/apache-skywalking-apm-6.6.0.tar.gz

项目启动时加入VM

-javaagent:下载的文件地址\apache-skywalking-apm-es7-8.7.0\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=skywalking-product-service
-Dskywalking.collector.backend_service=IP:13351 -- 部署的skywalking服务端地址

没关系的,大家都会做错选择,会莫名其妙掉眼泪,走在路上会突然崩溃,但这并不影响我们去看看晚霞,再次爱上这个世界。

Guess you like

Origin blog.csdn.net/qq_35731570/article/details/121536068