网站首页 > 精选教程 正文
概述
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 :负责提供控台,查看链路等等。
环境搭建
本文为方便演示采用docker容器方式部署,数据存储采用es(同为docker容器部署).
安装Skywalking OAP
在安装时需要注意版本选择,注意oap的版本需要和我们的es版本一致.此次安装选择es7版本对应OAP版本选择skywalking-oap-server:8.6.0-es7.
docker pull apache/skywalking-oap-server:8.6.0-es7
启动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
说明
-e SW_STORAGE=elasticsearch7:存储服务采用ElasticSearch7
-e SW_STORAGE_ES_CLUSTER_NODES=172.17.0.0.1:9200:存储服务路径(IP+Port)
安装Skywalking UI
Skywalking UI是对Skywalking收集到的数据进行分析展示的控制台服务,所以需要指定Skywalking OAP服务地址
docker pull apache/skywalking-ui:8.6.0
启动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
说明
-p 8091:8080:Skywalking UI映射端口为8091
-e SW_OAP_ADDRESS=192.168.1.2:12800:指定Skywalking OAP服务地址
当两个容器都启动完毕之后,访问服务器地址加端口即可进入到skywalking控制台.
要实现对服务的监控需要在skywalking官网下载agent探针并且在服务中进行配置.
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>
探针下载完毕之后,在使用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服务的地址
说明
-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。
启动测试
在启动之后可以看到加载了探针插件.
然后只需要调用接口,在返回sktwalking控制台查看
可以看到接口的调用时间,是否成功
以及各个服务之间的调用关系.
至此skywalking的快速入门便结束了,浅显理解欢迎各路大牛进行指正,可以在评论区进行留言,若有疑问也可以联系我们进行咨询.
- 上一篇: 几款流行监控系统简介
- 下一篇: All in one:如何搭建端到端可观测体系
猜你喜欢
- 2024-12-02 jacoco 生成单测覆盖率报告
- 2024-12-02 BOS分布式链路追踪产品揭秘
- 2024-12-02 「一发入魂」基于Skywalking实现服务链路追踪|监控|告警
- 2024-12-02 如何在字节码层面实现方法拦截:探索 Java Agent 与 ASM 的魅力
- 2024-12-02 非Spring管理Bean如何添加AOP呢?
- 2024-12-02 Flink实时计算在贝壳的实践及应用
- 2024-12-02 K8S官方java客户端之四:内部应用
- 2024-12-02 All in one:如何搭建端到端可观测体系
- 2024-12-02 几款流行监控系统简介
- 2024-12-02 OpenTelemetry系列 四| 如何使用JavaAgent来实现无侵入的调用链
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)