springboot集成skywalking实现微服务链路追踪

安装skywalking-es7的版本

由于公司业务开发涉及的微服务链路比较长,微服务之间调用在排错及定位上比较麻烦。因此想引入apm开源框架skywalking实现微服务之间接口全链路调用以及接口耗时的统计。

1、试错之路-安装skywalking-es7-6.6.0

楼主在刚开始采用skywalking-es7-6.6.0+es7.15.2集成,最后发现在进入skywalking的主页是,调了一个graphql的接口,一直包500,进入skywalking的wabapp.log查看日志时,发现是Skywalking-Collector追踪信息收集器的服务没起来,一直报错cannot connect to 127.0.0.1:12800。

2、最终选择skywalking-es7-8.7.0

因此就采用了apache-skywalking-apm-es7-8.7.0版本,最终完成了apm的集成工作,skywalking的下载地址
下载skywalking的步骤

3、skywalking-es7-8.7.0安装步骤

3.1、解压安装包

安装包下载完成后,解压安装包,安装文件夹如下:
skywalking工程目录

3.2、更改application.yml配置

主要是将storage.selector:改为elasticsearch7。注意不要使用elasticsearch,否则再启动服务后会报elasticsearch的jar包冲突的错。
具体错误提示码为:java.lang.NoSuchMethodError: org.elasticsearch.client.RestHighLevelClient.ping when use elasticsearch7。
选择数据为elasticsearch7
将elasticsearch的nameSpace改为es7的cluster_name的名字,将clusterNodes改为安装es7的服务地址和端口
elasticsearch7的配置
es7启动后,输入localhost:9200出来一下json串信息说明es安装成功
es7启动成功的页面

3.3、启动skywalking主程序

在bin目录下执行sh start.sh命令就会启动skywalking主程序,输入localhost:8080,启动后的主页如下:
skywalking主页面

安装elasticsearch7

1、解压文件并创建es用户

elasticsearch下载地址,下载完成后解压文件夹,在bin目录下./elasticsearch -d后台启动es。不能采用root账号启动,需要创建es用户。

#创建es用户组
groupadd es
#创建es用户并指定密码
useradd es -g es -p es
#将elasticsearch7所在的目录授权给es用户
chown -R es:es /home/es/elasticsearch-7.15.2
#切换es用户
su es

2、设置max_map_count大小

启动es后会发现提示vm.max_map_count太小了,需要重新设定大小

vim /etc/sysctl.conf 
#指定内存大小
vm.max_map_count = 262144
#查看设置状态
sysctl -p

3、设置es用户能打开的文件数和创建进程数

需要给es用户设置 一个进程最多能打开的的文件数和最多能创建的进程数

vim /etc/security/limits.conf
#设置es用户能打开的文件数和创建的进程数
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096

4、更改elasticsearch配置

在bin目录下的elasticsearch.yml文件中,指定logs和datas生成目录、host主机和集群初始加载主节点信息

cluster.name: my-application 
node.name: node-1
path.data: /home/es/elasticsearch-7.15.2/data
path.logs: /home/es/elasticsearch-7.15.2/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_node: ["node-1"]

5、启动成功后返回页面

启动成功后,输入localhost:9200,返回页面为
es7启动成功页面

指定agent探针启动微服务

1、配置SkyWalking Agent

配置agent的参数,具体参照官网agent参数配置

-javaagent:/path/to/skywalking-agent.jar=[option1]=[value1],[option2]=[value2]
#设置探针code和日志级别
-javaagent:/home/skywalking/skywalking-agent.jar=agent.application_code=31200,logging.level=debug
# 配置Agent名字,一般可以在启动微服务时指定探针的名称
export SW_AGENT_NAME=demo-application
# 配置Collector地址
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800
# 配置链路的最大Span数量,默认数为300
export SW_AGENT_SPAN_LIMIT=2000
# 配置SkyWalking Agent的jar包路径
export JAVA_AGENT=-javaagent:/home/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar

2、Java -jar启动

以启动demo-service为例来说明具体参数名称
agent.service_name=demo-service为微服务启动后的探针名

nohup java -javaagent:/home/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar=agent.service_name=demo-service -Xmx512m -Xms512m -jar projectapp.jar >demoservice.log 2>&1 &

3、设置排除的url路径

将agent中的 /agent/optional-plugins/apm-trace-ignore-plugin-8.74.0.jar插件cpoy到 plugins目录中,对应的shell命令为:

cp optional-plugins/apm-trace-ignore-plugin-8.74.0.jar plugins

然后在启动服务时需要指定trace.ignore_path=/exclude ,具体示例如下

nohup java -javaagent:/home/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar=agent.service_name=demo-service,collector.backend_service=192.168.0.2:11800,trace.ignore_path=/exclude -Xmx512m -Xms512m -jar projectapp.jar >demoservice.log 2>&1 &

4、多台服务器注册到同一个collector

如果业务涉及的微服务较多,服务需要部署在多个服务器,则需要将skywalking包的agent包拷贝到其他服务器,然后在启动服务时需要指定collector.backend_service的服务器ip和端口。

nohup java -javaagent:/home/skywalking/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar=agent.service_name=demo-service,collector.backend_service=192.168.0.2:11800 -Xmx512m -Xms512m -jar projectapp.jar >demoservice.log 2>&1 &
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值