1、概述
skywalking是一款分布式系统的应用程序性能监视工具,提供微服务的分布式追踪,服务网格遥测分析,度量聚合等功能。
2、整体架构
整个架构分为上、下、左、右四个部分:
上部分 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 :负责提供控台,查看链路等等。
2.1环境搭建
本文为方便演示采用docker容器方式部署,数据存储采用es(同为docker容器部署).
2.1.1安装Skywalking OAP
在安装时需要注意版本选择,注意oap的版本需要和我们的es版本一致.此次安装选择es7版本对应OAP版本选择skywalking-oap-server:8.6.0-es7.
docker pull apache/skywalking-oap-server:8.6.0-es7
2.1.2启动Skywalking OAP容器
docker run \
--name skywalking-oap \
--restart always \
-p 11800:11800 \
-p 12800:12800 -d \
--privileged=true \
-e TZ=Asia/Shanghai \
-e SW_STORAGE=elasticsearch7 \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.2.201:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:8.6.0-es7
2.1.3说明
-e SW_STORAGE=elasticsearch7:存储服务采用ElasticSearch7
-e SW_STORAGE_ES_CLUSTER_NODES=172.17.0.0.1:9200:存储服务路径(IP+Port)
2.2安装Skywalking UI
Skywalking UI是对Skywalking收集到的数据进行分析展示的控制台服务,所以需要指定Skywalking OAP服务地址
docker pull apache/skywalking-ui:8.6.0
2.2.1启动Skywalking UI容器
docker run \
--name skywalking-ui \
--restart always \
-p 8091:8080 -d \
--privileged=true \
--link skywalking-oap:skywalking-oap \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=192.168.2.201:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:8.6.0
2.2.2说明
-p 8091:8080:Skywalking UI映射端口为8091
-e SW_OAP_ADDRESS=192.168.1.2:12800:指定Skywalking OAP服务地址
当两个容器都启动完毕之后,访问服务器地址加端口即可进入到skywalking控制台.
要实现对服务的监控需要在skywalking官网下载agent探针并且在服务中进行配置.
3、agent探针下载
在探针下载完成之后,需要在服务的主pom文件中进行配置依赖整合logback
<!-- skywalking 整合 logback -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>9.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>9.0.0</version>
</dependency>
增加logback.xml配置
<!-- skywalking 采集日志 -->
<appender name="sky_log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>[%tid] ${console.log.pattern}</pattern>
</layout>
<charset>utf-8</charset>
</encoder>
</appender>
<root level="info">
<appender-ref ref="sky_log"/>
</root>
3.1探针下载完毕之后,在使用idea启动服务时须在对应springboot服务配置jvm参数
-javaagent:D:\sky\skywalking-agent.jar // agent包绝对路径
-Dskywalking.agent.service_name=study_logback // 所监控的服务名
-Dskywalking.collector.backend_service=127.0.0.1:11800 // OAP服务的地址
3.1.1说明
javaagent:D:\sky\skywalking-agent.jar:指定Skywalking代理(Java探针)的路径,它负责收集应用程序的性能指标和调用链路数据。
Dskywalking.agent.service_name=study_logback:设置当前Java应用在Skywalking中的服务名称为“study_logback”,便于在监控界面中识别和区分不同服务。
Dskywalking.collector.backend_service=127.0.0.1:11800:配置Skywalking后端Collector服务地址和端口,该Java应用通过此地址将收集到的数据上报至Skywalking OAP Server进行分析和存储。这里设置的是本地回环地址(localhost),端口号为11800。
4、启动测试
在启动之后可以看到加载了探针插件.
4.1然后只需要调用接口,在返回sktwalking控制台查看
可以看到接口的调用时间,是否成功
以及各个服务之间的调用关系
至此skywalking的快速入门便结束了,浅显理解欢迎各路大牛进行指正,可以在评论区进行留言,若有疑问也可以联系我们进行咨询。