核心组件部署命令

1. OAP Server(观测分析平台)

docker run --name skywalking-oap \
  --restart always \
  -p 11800:11800 \
  -p 12800:12800 \
  -d \
  --privileged=true \
  -e TZ=Asia/Shanghai \
  -e SW_STORAGE=elasticsearch7 \
  -e SW_STORAGE_ES_CLUSTER_NODES=192.168.254.130:9200 \
  -v /etc/localtime:/etc/localtime:ro \
  apache/skywalking-oap-server:8.6.0-es7

2. Web UI(可视化界面)

docker run --name skywalking-ui \
  --restart always \
  -p 8091:8080 \
  -d \
  --privileged=true \
  --link skywalking-oap:skywalking-oap \
  -e TZ=Asia/Shanghai \
  -e SW_OAP_ADDRESS=192.168.254.130:12800 \
  -v /etc/localtime:/etc/localtime:ro \
  apache/skywalking-ui:8.6.0

参数详解

OAP Server关键配置

参数说明必要性
-p 11800:11800gRPC服务端口(Agent上报)必选
-p 12800:12800HTTP服务端口(UI连接)必选
SW_STORAGE存储类型(elasticsearch7)必选
SW_STORAGE_ES_CLUSTER_NODESES集群地址必选

Web UI关键配置

参数说明必要性
-p 8091:8080前端访问端口必选
SW_OAP_ADDRESS连接的OAP服务地址必选

存储配置指南(Elasticsearch)

1. 基础ES配置要求

# elasticsearch.yml 关键配置
cluster.name: skywalking
network.host: 0.0.0.0
discovery.type: single-node

2. 索引管理策略

# OAP容器中添加环境变量
-e SW_STORAGE_ES_INDEX_SHARDS_NUMBER=2 \
-e SW_STORAGE_ES_INDEX_REPLICAS_NUMBER=1 \
-e SW_STORAGE_ES_DAY_STEP=1  # 索引按天分割

访问验证

  1. 控制台访问

    • 地址:http://<服务器IP>:8091
    • 默认无需认证
  2. 服务健康检查

    # 检查OAP状态
    curl http://localhost:12800/version
    
    # 检查ES连接
    docker logs skywalking-oap | grep "Storage ElasticSearch7 client"

生产环境建议

1. 安全加固配置

# OAP服务认证
-e SW_AUTH=yourAuthToken

# UI界面认证
-e SW_UI_ADMIN_PASSWORD=yourPassword

2. 性能优化

# 调整JVM参数
-e JAVA_OPTS="-Xms4g -Xmx4g"

# 限制容器资源
--memory=6g --cpus=2

3. 高可用方案

# 多节点ES集群
-e SW_STORAGE_ES_CLUSTER_NODES=es1:9200,es2:9200,es3:9200

客户端接入示例

Java Agent接入

-javaagent:/path/to/skywalking-agent.jar \
-Dskywalking.agent.service_name=your-service \
-Dskywalking.collector.backend_service=192.168.254.130:11800

Kubernetes Sidecar注入

annotations:
  sidecar.skywalking.apache.org/initcontainer.Image: "apache/skywalking-java-agent:8.6.0-java8"
  sidecar.skywalking.apache.org/args: "-Dskywalking.agent.service_name=myapp"

维护命令

1. 数据清理

# 通过ES API删除旧索引
curl -X DELETE "http://es:9200/skywalking_*202301*"

2. 日志查看

docker logs -f skywalking-oap

3. 版本升级

# 注意保持存储兼容性
docker pull apache/skywalking-oap-server:8.7.0-es7

常见问题解决

Q:UI显示无数据?

# 检查Agent连接状态
netstat -tulnp | grep 11800

# 验证ES数据写入
curl -X GET "http://es:9200/skywalking_*/_count"

Q:OAP内存溢出?

# 调整JVM参数
-e JAVA_OPTS="-Xms8g -Xmx8g -XX:+UseG1GC"

# 减少采样率
-e SW_TRACE_SAMPLE_RATE=5000

Q:ES连接失败?

# 检查网络连通性
docker exec skywalking-oap ping 192.168.254.130

# 验证ES集群状态
curl -X GET "http://192.168.254.130:9200/_cluster/health"

此方案部署:

  • 完整的分布式追踪系统
  • 服务拓扑自动发现
  • JVM/CLR运行时监控
  • 服务网格观测能力

添加新评论