正文
五. 使用Docker安装部署SkyWalking
5.1 查看官网版本
官网:http://skywalking.apache.org/
下载:http://skywalking.apache.org/downloads/
Github:https://github.com/apache/skywalking/
文档: https://skywalking.apache.org/docs/main/v8.4.0/readme/
中文文档: https://skyapm.github.io/document-cn-translation-of-skywalking/
从官网可以看出 最新版本已经9.0版本了,但是我们使用es作为存储最好是使用明确存储了方式的版本 8.7.0
5.1 拉取镜像
5.1.1 尝鲜版
docker pull elasticsearch:7.12.0 默认es存储数据镜像 docker pull apache/skywalking-oap-server:8.7.0-es7 webUI界面镜像 docker pull apache/skywalking-ui:8.7.0 制作微服项目镜像 docker pull openjdk:8-alpine3.9
5.1.2 稳定版
docker pull elasticsearch:7.9.0 默认es存储数据镜像 docker pull apache/skywalking-oap-server:8.1.0-es7 webUI界面镜像 docker pull apache/skywalking-ui:8.1.0 制作微服项目镜像 docker pull openjdk:8-alpine3.9
5.1.3 备份镜像
最新版: docker save apache/skywalking-oap-server:8.7.0-es7 apache/skywalking-ui:8.7.0 elasticsearch:7.12.0 -o skywalking8.7.0.tar 稳定版: docker save apache/skywalking-oap-server:8.1.0-es7 apache/skywalking-ui:8.1.0 elasticsearch:7.9.1 -o skywalking8.1.0.tar
5.2 docker-compose 启动SkyWalking
5.2.1 docker-compose的安装
下载v2.2.2版本的docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose --version
添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
测试安装是否成功
5.2.2 编写SkyWalking的docker-compose文件
这里使用最新版本的Skywalking镜像
version: '3' services: es7: image: elasticsearch:7.12.1 container_name: es7 environment: - "cluster.name=elasticsearch" #设置集群名称为elasticsearch - "discovery.type=single-node" #以单一节点模式启动 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小 volumes: - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载 - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载 ports: - 9200:9200 - 9300:9300 oap: image: apache/skywalking-oap-server:8.7.0-es7 container_name: oap depends_on: - es7 links: - es7 ports: - "11800:11800" - "12800:12800" healthcheck: test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ] interval: 30s timeout: 10s retries: 3 start_period: 10s environment: SW_STORAGE: elasticsearch7 SW_STORAGE_ES_CLUSTER_NODES: es7:9200 SW_HEALTH_CHECKER: default TZ: Asia/Shanghai SW_TELEMETRY: prometheus JAVA_OPTS: "-Xms2048m -Xmx2048m" ui: image: apache/skywalking-ui:8.7.0 container_name: ui depends_on: - oap links: - oap ports: - "8088:8080" #为了防止8080端口冲突 这里用8088端口映射 environment: SW_OAP_ADDRESS: http://oap:12800 TZ: Asia/Shanghai
启动服务
docker-compose up -d
查看启动
docker-compose ps
5.2.3 测试SkyWalking的UI界面
在浏览器输入 服务器地址:8088
例如:http://192.168.198.120:8088
六 总结
skywalking就介绍到这里,本章节仅仅只是入门,简单使用skywalking,实际上里面还有很多功能没有介绍,有兴趣的同学可以按照上面的教程安装部署,然后自己探索一下。在现在微服务架构比较流行的环境下,如果没有一个调用链追踪框架,会导致很难排查线上服务调用的问题。skywalking是目前发展势头最快的技术框架的技术框架,因为对代码是无侵入性的,所以目前很多公司都采用skywalking。
以上是根据《官方文档》、观看《图灵架构师课堂》时做的笔记、自己私下练习并成功应用到公司测试环境中。