1. 微服务整合SkyWalking
1.1 通过jar包方式整合
- 首先我们将一个简单的springboot服务打成jar包。
将其上传到Linux服务器中。
- 准备一个启动脚本,脚本内容如下:
#!/bin/sh
# SkyWalking Agent配置
export SW_AGENT_NAME=skywalking‐test #Agent名字,一般使用`spring.application.name`
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 #配置 Collector 地址。
export SW_AGENT_SPAN_LIMIT=2000 #配置链路的最大Span数量,默认为 300。
export JAVA_AGENT=‐javaagent:/export/server/apache-skywalking-apm-bin/agent/skywalking‐agent.jar
java $JAVA_AGENT ‐jar skyWalking-test-0.0.1-SNAPSHOT.jar #jar启动
等同于
java ‐javaagent:/export/server/apache-skywalking-apm-bin/agent/skywalking‐agent.jar
‐DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
‐DSW_AGENT_NAME=skywalking‐test ‐jar skyWalking-test-0.0.1-SNAPSHOT.jar
参数名对应agent/config/agent.config配置文件中的属性。属性对应的源码:org.apache.skywalking.apm.agent.core.conf.Config.java
1.2 docker方式安装以及集成ES
因为Skywalking收集到的信息一般存储到ES中,然后在ES中用来查看,所以我这边采用ES方式为大家说一下部署方式。
步骤1
启动elasticsearch
,9300:集群节点之间通信端口,9200:es暴露给外部的端口,”discovery.type=single-node
”:单机模式启动。
#拉取 7.9.3
docker pull elasticsearch:7.9.3
#启动
docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.9.3
步骤2
下载安装 skywalking-oap-server
:skywalking的服务端,收集分析应用调用的链路信息,并提供接口给 安装skywalking-UI。
11800:收集应用调用的端口,12800:提供服务的端口,SW_STORAGE
:选择使用es7作存储,SW_STORAGE_ES_CLUSTER_NODES
:es7的存储节点地址。
#目前 8.3.0
docker pull apache/skywalking-oap-server:8.3.0-es7
#启动
docker run --name skywalking -p 11800:11800 -p 12800:12800 --link es:elasticsearch -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 -d apache/skywalking-oap-server:8.3.0-es7
步骤3
下载安装 skywalking-ui。
#目前 8.3.0
docker pull apache/skywalking-ui:8.3.0
#启动
docker run --name skywalking-ui -p 8080:8080 --link skywalking:skywalking -e SW_OAP_ADDRESS=skywalking:12800 -d apache/skywalking-ui:8.3.0
步骤4
获取skywalking-agent,监控应用,收集应用信息并上传至skywalking-oap-server
下载地址:
https://www.apache.org/dyn/closer.cgi/skywalking/java-agent/8.16.0/apache-skywalking-java-agent-8.16.0.tgz。
如果要在本地集成到IDEA,就下载到本地,如果需要在Linux完成项目集成,就下载到Linux环境下。
整个在LInux环境利用docker部署即完成。
1.2 IDEA中整合Skywalking
步骤1:
将下载好的skywalking-agent进行解压到本地
步骤二:
将信息配置到IDEA中。
具体配置信息如下:
-javaagent:D:\apache-skywalking-java-agent-8.16.0\skywalking-agent\skywalking-agent.jar
-DSW_AGENT_NAME=skyWalking-test;-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.164.128:11800
- javaagent:就是我们刚才下载agent的路径
- DSW_AGENT_NAME: 服务名
- DSW_AGENT_COLLECTOR_BACKEND_SERVICES:数据上报地址
启动项目以后,如下:
1.3 Skywalking跨多个微服务跟踪
Skywalking跨多个微服务跟踪,只需要每个微服务启动时添加javaagent参数即可。
2. Skywalking持久化跟踪数据
默认使用的H2数据库存储 config/application.yml
,我们的目标是基于mysql实现跟踪数据的持久化。
2.1 修改配置文件
修改config目录下的application.yml,使用mysql作为持久化存储的仓库
将下面的改成mysql
修改数据库链接
2.1 添加数据库连接驱动包
需要添加mysql数据驱动包,因为在lib目录下是没有mysql数据驱动包的,所以修改完配置启动是会报错,启动失败的。
上传完毕以后重新启动。
2.3 查看数据库表
启动完毕后,查看swtest数据库,可以看到生成了很多表。
说明启动成功了,打开配置对应的地址http://192.168.164.128:8080/,可以看到skywalking的web界面。这时候重启skywalking,跟踪数据就不会丢失。
下一篇会为大家介绍SkyWalking在代码中的具体使用,希望大家多多关注!!!