springcloud集成链路追踪组件skywalking

        链路追踪主要是查看微服务各服务的健康状态以及请求响应时间,哪个服务停了,或者响应时间慢了,辅助监控作用。

        目前常见的几款开源链路追踪产品:cat(大众点评),zipkin(Twitter),pingpoint(韩国naver),skywalking(吴晟)。

         cat接入需要添加依赖及改动代码,zipkin需要添加依赖,pingpoint和skywalking使用java agent技术,0侵入。无需改动代码。目前用的比较多的应该是zipkin和skywalking,本文讨论如何接入skywalking,看官网Downloads | Apache SkyWalking

         2022.9.2更新了版本9.2.0说明项目一直在维护的。一开始呢,我使用了9.2.0版本,但是发现启动skywalking之后,web页面一片空白,后面我改成使用他们的v8.8.1版本可以了。

         skywalking系统架构(简单说就是agent负责收集数据给oap,oap存储数据到es,h2等存储系统,另外oap还负责分析数据,提供接口给web系统)

整个架构,分成上、下、左、右四部分:

上部分 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 多种存储器。默认采用H2,skywalking自带了H2无需安装,生产大数据量中很多是采用ES,需要另外安装ES。

左部分 SkyWalking UI :负责提供控台,查看链路等等。

1.在服务器新建文件夹/usr/local/skywalking

2.将v8.8.1下载到该文件夹

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

3.下载后解压 tar -zxf apache-skywalking-apm-8.8.1.tar.gz

4.下载代理 wget https://archive.apache.org/dist/skywalking/java-agent/8.8.0/apache-skywalking-java-agent-8.8.0.tgz

5.解压 tar -zxf apache-skywalking-java-agent-8.8.0.tgz

6.微服务启动脚本修改

 #!/bin/bash

# SkyWalking Agent 配置
export SW_AGENT_NAME=MyGateWay  # 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=118.118.183.73:11800 # 配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕。
export JAVA_AGENT=-javaagent:/usr/local/skywalking/skywalking-agent/skywalking-agent.jar # SkyWalking Agent jar 地址。



echo start MyGateWay
MyGateWayJarname='MyGateWay-1.0.0'
pid=`ps aux | grep $MyGateWayJarname | grep -v grep | awk '{print $2}'`
echo $pid
kill -9 $pid
nohup java -jar $JAVA_AGENT -jar $MyGateWayJarname.jar >MyGateWayRun.log &
echo MyGateWay started successfully

7.修改skywalking web监控页面的默认端口 

/usr/local/skywalking/apache-skywalking-apm-bin/webapp/webapp.yml

改成8018

server:
  port: 8018

spring:
  cloud:
    gateway:
      routes:
        - id: oap-route
          uri: lb://oap-service
          predicates:
            - Path=/graphql/**
    discovery:
      client:
        simple:
          instances:
            oap-service:
              - uri: http://127.0.0.1:12800

我这里是在网关mygateway启动时加入了agent,其他的微服务,注册中心,配置中心都可以在启动时设skywalking的agent。这样在访问了微服务后就可以追踪了。比如我将skywalking部署在这个ip的这个端口。那么访问地址就是:

http://118.118.183.73:8018 

拓扑图里面看各个微服务的健康情况,如果出现红色就是有问题的

追踪里面看微服务调用耗时情况,比如我们的一个积分查询微服务调用链耗时情况

 初步搭建,应该很有很多问题,需要继续研究。

参考:

https://blog.csdn.net/u012394095/article/details/79700200

springcloud - 史上最全SpringCloud整合skywalking_个人文章 - SegmentFault 思否

猜你喜欢

转载自blog.csdn.net/figo0423/article/details/127109739