使用docker-compose搭建SkyWalking环境

一、环境说明

  • Linux Centos7
  • ElasticSearch 7.8.0
  • SkyWalking 8.0.1

二、环境搭建

  1. 编写docker-compose.yml文件

    version: '3.3'
    services:
      elasticsearch:
        image: elasticsearch:7.8.0
        container_name: elasticsearch
        restart: always
        ports:
          - 9200:9200
        environment:
          discovery.type: single-node
          TZ: Asia/Shanghai
        #volumes:
        #   - ./elasticsearch/logs:/usr/share/elasticsearch/logs
        #   - ./elasticsearch/data:/usr/share/elasticsearch/data
        #   - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
        ulimits:
          memlock:
            soft: -1
            hard: -1
      oap:
        image: apache/skywalking-oap-server:8.0.1-es7
        container_name: oap
        depends_on:
          - elasticsearch
        links:
          - elasticsearch
        restart: always
        ports:
          - 11800:11800
          - 12800:12800
        environment:
          SW_STORAGE: elasticsearch7  # 指定ES版本
          SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
          TZ: Asia/Shanghai
        # volumes:
        #  - ./config/alarm-settings.yml:/skywalking/config/alarm-settings.yml
      ui:
        image: apache/skywalking-ui:8.0.1
        container_name: ui
        depends_on:
          - oap
        links:
          - oap
        restart: always
        ports:
          - 8080:8080
        environment:
          SW_OAP_ADDRESS: oap:12800
          TZ: Asia/Shanghai
    
  2. 启动docker

    启动容器:docker-compose up -d

    查看容器:docker-compose ps

    删除容器:docker-compose rm

  3. 验证

    浏览器中输入:http://localhost:8080

三、Java应用接入

  1. 探针下载

    • apache-skywalking-apm-es7-8.0.1.tar.gz

    • 其他版本下载

    • 探针目录结构
      主要关注agent下的文件
      -- config 配置文件存放位置
      -- optional-plugins 选装插件,如果使用将jar文件移动到plugins下

      使用docker-compose搭建SkyWalking环境_第1张图片
      image.png
  2. idea配置探针

    使用docker-compose搭建SkyWalking环境_第2张图片
    image.png
    • 设置 VM options:-javaagent:/${Path}/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar
    • 设置环境变量
      • SW_AGENT_NAME:项目名称
      • SW_AGENT_COLLECTOR_BACKEND_SERVICES:ip:port(oap服务地址)
  1. jar配置探针

    • java -jar -javaagent:/${Path}/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar -DSW_AGENT_NAME=项目名称 demo.jar
  2. 验证

    使用docker-compose搭建SkyWalking环境_第3张图片
    image.png

    使用docker-compose搭建SkyWalking环境_第4张图片
    image.png

四、nginx服务接入

  1. 参考skywalking-nginx-lua;
    • Nginx代理为由Nginx LUA模块提供支持的Nginx提供了本机跟踪功能
    • 我是使用openresty集成的,openresty启动时候指定skywalking-nginx-lua/examples/nginx.conf
    • 注意oap端口是rest端口,默认:12800(图片中端口为gRpc端口)


      使用docker-compose搭建SkyWalking环境_第5张图片
      image.png
    • 效果图


      使用docker-compose搭建SkyWalking环境_第6张图片
      image.png

五、题外话

相信不只我一人(至少我再群里看到的就不下10个人)因为下面这张图片,去开源群里问如何解决


使用docker-compose搭建SkyWalking环境_第8张图片
19.jpg

解决方案就是因为少加了一个参数


使用docker-compose搭建SkyWalking环境_第9张图片
20.png

归根结底是因为不去读文档,我就是因为老英文文档读不懂,一点点的就开始不读文档了。有问题百度、谷歌搜,搜不到就问人、加群问。直到被skywalking开源大佬吴晟怼了之后,才发现自己丢失了非常重要的读文档能力。非常感谢大佬点醒我!

你可能感兴趣的:(使用docker-compose搭建SkyWalking环境)