使用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环境
      文章图片
      image.png
  2. idea配置探针
    使用docker-compose搭建SkyWalking环境
    文章图片
    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环境
    文章图片
    image.png
    使用docker-compose搭建SkyWalking环境
    文章图片
    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环境
      文章图片
      image.png
    • 效果图

      使用docker-compose搭建SkyWalking环境
      文章图片
      image.png
      使用docker-compose搭建SkyWalking环境
      文章图片
      WX20200811-223010@2x.png
五、题外话 相信不只我一人(至少我再群里看到的就不下10个人)因为下面这张图片,去开源群里问如何解决

使用docker-compose搭建SkyWalking环境
文章图片
19.jpg 解决方案就是因为少加了一个参数

使用docker-compose搭建SkyWalking环境
文章图片
20.png 【使用docker-compose搭建SkyWalking环境】归根结底是因为不去读文档,我就是因为老英文文档读不懂,一点点的就开始不读文档了。有问题百度、谷歌搜,搜不到就问人、加群问。直到被skywalking开源大佬吴晟怼了之后,才发现自己丢失了非常重要的读文档能力。非常感谢大佬点醒我!

    推荐阅读