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/
自此,部署完成!