skywalking在docker中应用

3/17/2022 skywalking在docker中应用

# 准备工作

  • 下载源码包,下面会用到agent
https://archive.apache.org/dist/skywalking/6.6.0/apache-skywalking-apm-6.6.0.tar.gz
  • 拉取镜像
docker pull elasticsearch:7.5.1
docker pull apache/skywalking-oap-server:6.6.0-es7
docker pull apache/skywalking-ui:6.6.0

# 安装elasticsearch

# 修改系统参数

vi /etc/sysctl.conf

vm.max_map_count=262144 #调整参数

sysctl -p #刷新参数

# 启动elasticsearch

docker run -d --name=es7 \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" elasticsearch:7.5.1

# 创建持久化目录 并拷贝数据

mkdir -p /data/elasticsearch
docker cp es7:/usr/share/elasticsearch/data /data/elasticsearch/
docker cp es7:/usr/share/elasticsearch/logs /data/elasticsearch/
docker rm -f es7

# docker-compose编排部署es,skywalking

# 创建编排文件

cd /data && touch docker-compose.yml
tar -zxvf apache-skywalking-apm-6.6.0.tar.gz  #解压源码以便后续使用agent

# 编辑编排文件

version: '3'
networks:
  cq-data-security:  ##我这里选择了已有网卡,与我java项目网卡一致可以容器之间相互通信,具体需求看自己
    external: true
services:
  es7:
    image: elasticsearch:7.5.1
    container_name: es7
    expose:
      - 9200
      - 9300
    restart: always
    volumes:
      - /data/elasticsearch/data:/usr/share/elasticsearch/data
      - /data/elasticsearch/logs:/usr/share/elasticsearch/logs
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
      - discovery.type=single-node
    networks:
      cq-data-security:
        ipv4_address: 172.62.0.51

  skywalking-oap-server:
    image: apache/skywalking-oap-server:6.6.0-es7
    container_name: skywalking-oap-server
    expose:
      - 12800
      - 11800
    privileged: true
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - LANG=en_US.UTF-8
      - SW_STORAGE=elasticsearch
      - SW_STORAGE_ES_CLUSTER_NODES=172.62.0.51:9200
    networks:
      cq-data-security:
        ipv4_address: 172.62.0.52

  skywalking-ui:
    image: apache/skywalking-ui:6.6.0
    container_name: skywalking-ui
    ports:
      - 28080:8080
    privileged: true
    restart: always
    environment:
      - SW_OAP_ADDRESS=172.62.0.52:12800
    networks:
      cq-data-security:
        ipv4_address: 172.62.0.53

docker-compose up -d 直接启动即可 访问localhost:28080 ui访问

# agent部署

cd /data 
cp -r apache-skywalking-apm-bin/agent /你的项目目录/dockerfile所在目录
#编辑dockerfile将以下参数加入dockerfile
RUN mkdir /root/agent
COPY ./agent /root/agent

#修改java应用启动参数

java -javaagent:/root/agent/skywalking-agent.jar=agent.service_name=group_module -Dskywalking.collector.backend_service=172.62.0.52:11800 -jar /root/group-module-1.0-SNAPSHOT.jar --server.port=8890

# 至此客户端和服务端部署完成,可以打开ui界面进行访问

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述