在Docker环境下部署SkyWalking时,你可能需要为多个应用容器配置SkyWalking Agent以实现客户端集群的监控。以下是一个简化的步骤:
1. 准备SkyWalking OAP Server
首先确保已有一个运行中的SkyWalking OAP Server(可以是单节点或集群)。例如,通过Docker Compose部署:
version: '3'
services:
oap:
image: apache/skywalking-oap-server:latest
ports:
- "12800:12800" # UI端口
- "11800:11800" # gRPC服务端口
- "12801:12801" # HTTP服务端口
environment:
SW_STORAGE: elasticsearch7 # 或其他存储类型如mysql、h2等
SW_STORAGE_ES_CLUSTER_NODES: your-es-host:9200 # Elasticsearch集群地址
2. 配置SkyWalking Java Agent
对于每个使用Java的应用容器,需要在启动时添加SkyWalking探针(Java Agent)。
- 下载SkyWalking探针至本地:
curl -L https://skywalking.apache.org/downloads/agent/latest/apache-skywalking-apm-{version}-java-agent.tar.gz | tar -xzvf -
- 启动应用容器时,附加
-javaagent
参数:
docker run -d \
-e JAVA_OPTS="-javaagent:/path/to/skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=your-service-name \
-Dskywalking.collector.backend_service=oap:11800" \
-v /path/to/skywalking-agent:/path/in/container/to/skywalking-agent \
your-java-app-image
这里的 /path/to/skywalking-agent
是宿主机上SkyWalking探针的位置,而 /path/in/container/to/skywalking-agent
则是容器内探针挂载路径。oap:11800
是指向OAP Server的gRPC服务端口,your-service-name
是在SkyWalking UI中识别该服务实例的名称。
3. 配置多容器
对于多个Java应用容器,重复上述步骤,在每个容器启动命令行中指定正确的服务名,并连接到同一个OAP Server。
4. 验证
启动所有应用容器后,登录SkyWalking UI,应能看到所有带有SkyWalking探针的容器作为服务实例出现在拓扑图和指标列表中。
请注意,实际操作中请根据您的具体环境调整配置文件和参数设置,以及容器间网络通信策略。同时,务必参考SkyWalking官方文档获取最新版本的具体部署指南。