记自己Docker部署分布式追踪框架SkyWalking

目录

前言

一、SkyWalking是什么?

二、使用步骤

1. docker安装部署skywalking

2.下载skywalking-agent.jar

3.修改项目启动类,加入skywalking-agent.jar

4.测试接口,查看结果

总结




前言

        由于当前自身项目使用了spring Cloud,服务与服务间调用的链路变长,排查难度增加等问题,需要引入一个链路追踪系统,加快排查问题,发现问题根源,因此尝试部署SkyWalking,进而解决当前问题


一、SkyWalking是什么?

        官方说明翻译得到:用于分布式系统的应用程序性能监视工具,特别是为微服务、云本机和基于容器(Docker、Kubernetes、Mesos)架构而设计的。



二、使用步骤



1. docker安装部署skywalking

        确认存储方式:存储有两种选择,一是基于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

        耐心等待下载拉取,执行完毕............

        记自己Docker部署分布式追踪框架SkyWalking_第1张图片



2.下载skywalking-agent.jar

        找到对应版本进行下载,下载地址:Downloads | Apache SkyWalking

记自己Docker部署分布式追踪框架SkyWalking_第2张图片

        本次下载的是8.4.0版本,下载完毕后解压文件,我们得到以下目录

记自己Docker部署分布式追踪框架SkyWalking_第3张图片

3.修改项目启动类,加入skywalking-agent.jar

        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"

记自己Docker部署分布式追踪框架SkyWalking_第4张图片

        启动项目,如开头出现以下内容,则说明连接成功,即可调用接口进行测试

记自己Docker部署分布式追踪框架SkyWalking_第5张图片

        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"

记自己Docker部署分布式追踪框架SkyWalking_第6张图片

        修改对应项目部署脚本sh,添加映射关系,内容如下

-v /mydata/apache-skywalking-apm-es7-8.4.0/apache-skywalking-apm-bin-es7:/skywalking

记自己Docker部署分布式追踪框架SkyWalking_第7张图片

        执行部署项目,查看启动日志,若如下显示,则表示成功

记自己Docker部署分布式追踪框架SkyWalking_第8张图片

        注意:若出现如下异常,则表示项目没有找到对应skywalking-agent的配置信息,说明没有找到config文件夹下的配置文件,请检查路径是否正确

记自己Docker部署分布式追踪框架SkyWalking_第9张图片

4.测试接口,查看结果

记自己Docker部署分布式追踪框架SkyWalking_第10张图片

记自己Docker部署分布式追踪框架SkyWalking_第11张图片

记自己Docker部署分布式追踪框架SkyWalking_第12张图片





总结

        以上就是SkyWalking的部署及简单使用,也是本人第一次写文章,仅作为个人知识累积,以便回顾。上述如有不正确之处,感谢提醒。

你可能感兴趣的:(docker工具,java,docker)