Docker安装skywalking

409 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1、安装说明

参考的skywalking官方的docker-compose.yaml文件,做了部分改动

参考地址:github.com/apache/skyw…

修改项:

  1. 容器时区都改成了北京时间
  1. depends_on存在问题,已经做了处理使用 docker-compose up -d 服务名 的方式等待上一个启动成功了再进行启动
  1. 镜像版本进行升级

2、准备工作

  1. 安装的机器内存需要大于等于3G
  1. 机器需要安装docker,已安装的请跳过

    # 安装docker
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sudo yum install docker-ce -y
    docker -v
    # 启动docker
    systemctl start docker
    # 配置阿里云镜像拉取地址,registry-mirrors是博主自己申请的docker阿里云地址,可以放心用
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://u4dk6b2s.mirror.aliyuncs.com"]
    }
    EOF
    # 重启docker,使配置生效
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  2. 需要安装docker-compose

    # 下载并安装docker-compose
    curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
    # 查看docker-compose的版本
    docker-compose -v
    
  3. 设置最大可申请的内存

    sudo sysctl -w vm.max_map_count=262144
    

3、操作

1、创建docker-compose.yml文件,文件内容如下

version: '3.8'
services:
  es:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2
    container_name: es
    ports:
      - "9200:9200"
    healthcheck:
      test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "TZ=Asia/Shanghai"
    ulimits:
      memlock:
        soft: -1
        hard: -1

  oap:
    image: apache/skywalking-oap-server:8.9.1
    container_name: oap
    depends_on: 
      - es
    links:
      - es
    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: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: es:9200
      SW_HEALTH_CHECKER: default
      TZ: Asia/Shanghai
      SW_TELEMETRY: prometheus
      JAVA_OPTS: "-Xms2048m -Xmx2048m"

  ui:
    image: apache/skywalking-ui:8.9.1
    container_name: ui
    depends_on: 
      - oap
    links:
      - oap
    ports:
      - "8080:8080"
    environment:
      SW_OAP_ADDRESS: http://oap:12800
      TZ: Asia/Shanghai

2、依次启动es、oap和ui

# 安装elasticsearch
docker-compose up -d es
# 查看elasticsearch的日志,确定elasticsearch启动成功
docker-compose logs -f --tail=2000 es
# 安装oap组件
docker-compose up -d oap
# 查看oap的日志,确定oap启动成功
docker-compose logs -f --tail=2000 oap
# 安装skywalking的web界面
docker-compose up -d ui
# 查看ui的日志,确定ui启动成功
docker-compose logs -f --tail=2000 ui

确保ui启动成功后,可以在浏览器上输入IP:8080 进行访问

\