现在项目一般都是多实例,分布式部署,一个请求也许会需要多个项目模块响应,链路比较长。前端页面请求出现问题了,定位需要多个项目挨个查看日志,在生产环境日志量比较大,刷新的也比较快,会给问题定位带来很大的难度,所以链路跟踪是非常必要的。在工作中使用过zipkin和skywalking,也使用过arths,在最近项目选型链路跟踪软件果断选择了skywalking了,好处不多说,直接上从0开始部署方法。

一、ES安装

1、去ES官网下载(Download Elasticsearch | Elastic),选择linux版本,我选择的是7.14.0版本,没有使用最新的8,尽量不要用es6

2、上传elasticsearch-7.14.0-linux-x86_64.tar.gz到指定文件夹,执行tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz解压缩

3、修改config/elasticsearch.yml,如下

 

4、创建用户组和用户,执行以下命令

groupadd elsearch

sudo useradd elsearch -g elsearch

passwd elsearch

5、赋权限,执行chown -R elsearch:elsearch elasticsearch-7.14.0

6、vi /etc/sysctl.conf,添加vm.max_map_count=262144,然后执行 sysctl -p生效配置 

6、设置es密码

7、启动es (./elsearch -d 后台启动)

8、验证启动是否启动成功,浏览器输入:http://127.0.0.1:9200

 二、skywalking apm服务端搭建

1、去skywalking官网下载(Downloads | Apache SkyWalking),我选择的是8.7.0版本

2、上传apache-skywalking-apm-es7-8.7.0.tar.gz到指定文件夹,执行tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz

 3、修改config/application.yml配置

 4、修改webapp/webapp.yml

5、启动bin/startup.sh

6、在浏览器访问:http://192.168.103.202:18088

三、skywalking agent部署

 1、去skywalking官网下载(Downloads | Apache SkyWalking

2、上传到指定目录,使用tar命令解压缩

3、修改agent/config/agent.config文件

四、项目中配置使用

需要项目所在服务器部署agent端,启动项目时指定使用agent即可

 nohup java -javaagent:/usr/local/env/public/skywalking-agent/agent/skywalking-agent.jar=agent.service_name=project-name(sky显示的项目名) -XX:+UseG1GC -server -jar project-name.1.0.0.jar(项目jar包)  > project-name.out 2>&1 &

总结:skywalking是本人工作这么多年,见过的最好用的链路跟踪监控软件,也比较推荐使用。skywalking对项目没有任何侵入性,性能瓶颈可视化,非常nice。但是使用了链路跟踪也会有一定的性能损耗,特别开启sql参数打印跟踪的情况下。有时候项目需要在前端页面response显示traceId,方便拿着traceId到apm端查看请求日志,这样定位问题会更加方便,可以解决90%的页面请求问题,有时间介绍下。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐