目录
前言
一、SkyWalking是什么?
二、使用步骤
1. docker安装部署skywalking
2.下载skywalking-agent.jar
3.修改项目启动类,加入skywalking-agent.jar
4.测试接口,查看结果
总结
由于当前自身项目使用了spring Cloud,服务与服务间调用的链路变长,排查难度增加等问题,需要引入一个链路追踪系统,加快排查问题,发现问题根源,因此尝试部署SkyWalking,进而解决当前问题
官方说明翻译得到:用于分布式系统的应用程序性能监视工具,特别是为微服务、云本机和基于容器(Docker、Kubernetes、Mesos)架构而设计的。
确认存储方式:存储有两种选择,一是基于es,二是基于h2(默认),以下安装我们选用基于h2。注意:若第一种部署环境需提前确认存在es
1.1 安装必要软件 监控服务skywalking-oap-server与可视化界面skywalking-ui
创建docker-conpose.yaml文件,内容如下
version: '3' #自定义版本号
services:
skywalking-oap:
image: apache/skywalking-oap-server:8.4.0-es6 #此处使用8.4.0版本,原先使用8.7.0版本启动有bug,因此选用8.4.0
container_name: skywalking-oap #容器名
restart: always
ports:
- 11800:11800 #上报端口
- 12800:12800 #ui读取端口
environment:
JAVA_OPTS: "-Xms512m -Xmx512m" #限制运行大小
volumes:
- /etc/localtime:/etc/localtime #配置时区与宿主机一致
skywalking-ui:
image: apache/skywalking-ui:8.4.0 #版本号与oap一致
container_name: skywalking-ui #容器名
depends_on:
- skywalking-oap
links:
- skywalking-oap #与容器oap建立连接
restart: always
ports:
- 3380:8080 #3380ui界面
environment:
SW_OAP_ADDRESS: skywalking-oap:12800 #设置读取oap的端口
volumes:
- /etc/localtime:/etc/localtime #配置时区与宿主机一致
以ES为存储,内容为下
version: '3'
services:
elasticsearch:
image: elasticsearch:6.8.2
container_name: elasticsearch
restart: always
ports:
- 9200:9200
- 9300:9300
environment:
discovery.type: single-node
TZ: Asia/Shanghai
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- /etc/localtime:/etc/localtime
skywalking-oap:
image: apache/skywalking-oap-server:8.4.0-es6
container_name: skywalking-oap
depends_on:
- "elasticsearch"
links:
- elasticsearch
restart: always
ports:
- 11800:11800
- 12800:12800
environment:
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
SW_HEALTH_CHECKER: default
SW_TELEMETRY: prometheus
JAVA_OPTS: "-Xms512m -Xmx512m"
healthcheck:
test: ["CMD", "./bin/swctl", "ch"]
interval: 30s
timeout: 10s
retries: 3
#start_period: 40s
volumes:
- /etc/localtime:/etc/localtime
skywalking-ui:
image: apache/skywalking-ui:8.4.0
container_name: skywalking-ui
depends_on:
- skywalking-oap
links:
- skywalking-oap
restart: always
ports:
- 3380:8080
environment:
SW_OAP_ADDRESS: skywalking-oap:12800
volumes:
- /etc/localtime:/etc/localtime
1.2 到当前文件所在目录,执行运行docker-compose命令
docker-compose up -d
耐心等待下载拉取,执行完毕............
找到对应版本进行下载,下载地址:Downloads | Apache SkyWalking
本次下载的是8.4.0版本,下载完毕后解压文件,我们得到以下目录
3.1 idea项目本地启动加入agent,需在vm options配置三处配置
-javaagent:xxx\apache-skywalking-apm-es7-8.4.0\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-Dskywalking.agent.service_name="demo"
-Dskywalking.collector.backend_service="127.0.0.1"
启动项目,如开头出现以下内容,则说明连接成功,即可调用接口进行测试
3.2 docker项目部署,按自己项目部署习惯,我们在项目的pom.xml中加入以下代码
注意:若使用dockerFile进行部署,则在运行jar包时,加入以下内容,注意逗号与空格的转换
"-javaagent:/skywalking/agent/skywalking-agent.jar","-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800","-DSW_AGENT_NAME=vms"
修改对应项目部署脚本sh,添加映射关系,内容如下
-v /mydata/apache-skywalking-apm-es7-8.4.0/apache-skywalking-apm-bin-es7:/skywalking
执行部署项目,查看启动日志,若如下显示,则表示成功
注意:若出现如下异常,则表示项目没有找到对应skywalking-agent的配置信息,说明没有找到config文件夹下的配置文件,请检查路径是否正确
以上就是SkyWalking的部署及简单使用,也是本人第一次写文章,仅作为个人知识累积,以便回顾。上述如有不正确之处,感谢提醒。