SkyWalking + Elasticsearch8 容器化部署
SkyWalking + Elasticsearch8 容器化部署指南:国内镜像加速与生产级调优_skywalking国内镜像-CSDN博客
docker-compose.yml
version: "3.8"
services:
elasticsearch:
image: registry.cn-hangzhou.aliyuncs.com/docker_image-ljx/elasticsearch:8.14.3
container_name: elasticsearch
restart: unless-stopped
environment:
discovery.type: "single-node"
xpack.security.enabled: "true"
xpack.security.http.ssl.enabled: "false"
xpack.security.transport.ssl.enabled: "false"
ELASTIC_PASSWORD: "ChangeMe_Elastic!" # 请改强密码
ES_JAVA_OPTS: "-Xms3g -Xmx3g"
TZ: "Asia/Shanghai"
ulimits:
memlock: { soft: -1, hard: -1 }
nofile: { soft: 65536, hard: 65536 }
volumes:
- /media/disk2/elasticsearch/data:/usr/share/elasticsearch/data
- /media/disk2/elasticsearch/logs:/usr/share/elasticsearch/logs
# 注意:如果没有复制镜像默认配置且修正权限,则挂载 config 目录会报错
- /media/disk2/elasticsearch/config:/usr/share/elasticsearch/config
ports:
- "9200:9200"
healthcheck:
test: ["CMD-SHELL","curl -s -u elastic:ChangeMe_Elastic! http://127.0.0.1:9200 >/dev/null || exit 1"]
interval: 10s
timeout: 5s
retries: 30
oap:
image: registry.cn-hangzhou.aliyuncs.com/docker_image-ljx/skywalking-oap-server:10.2.0
container_name: skywalking-oap
restart: unless-stopped
depends_on:
elasticsearch:
condition: service_healthy
environment:
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
SW_STORAGE_ES_HTTP_PROTOCOL: http
SW_ES_USER: elastic
SW_ES_PASSWORD: "ChangeMe_Elastic!"
JAVA_OPTS: "-Xms2g -Xmx2g"
TZ: "Asia/Shanghai"
# 单机/小中规模索引建议
SW_STORAGE_ES_INDEX_SHARDS_NUMBER: "1"
SW_STORAGE_ES_INDEX_REPLICAS_NUMBER: "0"
SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR: "3"
SW_STORAGE_ES_SUPER_DATASET_INDEX_REPLICAS_NUMBER: "0"
volumes:
- /media/disk2/skywalking/oap-logs:/skywalking/logs
ports:
- "11800:11800"
- "12800:12800"
healthcheck:
test: ["CMD-SHELL", "curl -s http://127.0.0.1:12800/graphql -X POST -H 'Content-Type: application/json' -d '{\"query\":\"{ version }\"}' | grep -q data || exit 1"]
interval: 15s
timeout: 5s
retries: 20
ui:
image: registry.cn-hangzhou.aliyuncs.com/docker_image-ljx/skywalking-ui:10.2.0
container_name: skywalking-ui
restart: unless-stopped
depends_on:
- oap
environment:
SW_OAP_ADDRESS: "http://oap:12800"
TZ: "Asia/Shanghai"
volumes:
- /media/disk2/skywalking/ui-logs:/skywalking/logs
ports:
- "8080:8080"
networks:
default:
name: skywalking-net
可选:不硬编码密码的启动方式(不使用 .env)
将 compose 中的 ELASTIC_PASSWORD: ${ES_PASSWORD}、SW_ES_PASSWORD: ${ES_PASSWORD}
启动时传入:ES_PASSWORD='强密码' docker compose up -d
若密码含 $,需写成 $$ 或用上述传参方式避免转义
4. 启动与验证
cd /media/disk2/skywalking-docker
# 预检查渲染
docker compose config | cat
# 启动
docker compose up -d
docker compose ps
# 验证 ES
curl -s -u elastic:ChangeMe_Elastic! http://127.0.0.1:9200 | jq .
# 验证 OAP
curl -s http://127.0.0.1:12800/graphql -X POST -H 'Content-Type: application/json' -d '{"query":"{ version }"}'
# 访问 UI
# http://<服务器IP>:8080
欢迎来撩 : 汇总all