docker-compose部署SkyWalking

1.基本環境

操作系統

# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)


# uname -srm
Linux 3.10.0-693.el7.x86_64 x86_64

依賴環境

# docker -v
Docker version 20.10.10, build b485636

# docker-compose -v
docker-compose version 1.29.2, build 5becea4c

2.系統參數調整

sysctl.conf 參數調整

#vi /etc/sysctl.conf
##開啓內核轉發
net.ipv4.ip_forward = 1
##ES參數
vm.max_map_count=262144

# sysctl -p

system.conf 參數調整

# vi /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

# systemctl daemon-reexec

limits.conf 參數調整

# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
* hard memlock unlimited
* soft memlock unlimited

3.文件準備

說明:操作目錄位置 /data/sdv1/SkyWalking 全局變量文件準備

# cd /data/sdv1/SkyWalking
# cat .env
ES_VERSION=7.4.2
OAP_IMAGE=172.27.18.160/library/apache/skywalking-oap-server:8.7.0-es7
UI_IMAGE=172.27.18.160/library/apache/skywalking-ui:8.7.0

docker-compose.yml 文件準備

# cd /data/sdv1/SkyWalking
# cat docker-compose.yml
version: '3.8'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:${ES_VERSION}
    container_name: elasticsearch
    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"
    ulimits:
      memlock:
        soft: -1
        hard: -1

  oap:
    image: ${OAP_IMAGE}
    container_name: oap
    depends_on:
      elasticsearch:
        condition: service_healthy
    links:
      - elasticsearch
    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: elasticsearch7	##這裏必須加上版本號,如果寫成 elasticsearch 則會報錯
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      SW_HEALTH_CHECKER: default
      SW_TELEMETRY: prometheus
      JAVA_OPTS: "-Xms2048m -Xmx2048m"

  ui:
    image: ${UI_IMAGE}
    container_name: ui
    depends_on:
      oap:
        condition: service_healthy
    links:
      - oap
    ports:
      - "8080:8080"
    environment:
      SW_OAP_ADDRESS: http://oap:12800

驗證變量是否獲取成功

# docker-compose config

鏡像 pull

# docker-compose pull

4.服務啓動及驗證

啓動服務

# docker-compose up -d

訪問驗證(elasticsearch

# curl http://$IP:9200/
{
  "name" : "dbd3b90cf20b",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "z0ACHXOvRl-wXwMcfm_6bw",
  "version" : {
    "number" : "7.4.2",
    "build_flavor" : "oss",
    "build_type" : "docker",
    "build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
    "build_date" : "2019-10-28T20:40:44.881551Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

訪問驗證(SkyWalking

瀏覽器訪問 http://$IP:8080/

自此,部署完成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章