Docker 部署 SkyWalking 的指南

Docker 部署 SkyWalking 的指南

SkyWalking 是一款开源的应用性能监控工具,特别适用于分布式系统。通过 Docker 部署 SkyWalking,可以简化安装和配置过程。本文将详细介绍如何使用 Docker 部署 SkyWalking。

环境准备

在开始之前,请确保你的系统已经安装了 Docker。如果还没有安装,可以参考 Docker 官方文档 进行安装。为了保证部署的顺利进行,还需确认 Docker 和 Docker Compose 的版本符合要求。建议 Docker 版本在 19.03 及以上,Docker Compose 版本在 1.27 及以上。

1. 拉取 SkyWalking 镜像

首先,我们需要从 Docker Hub 拉取 SkyWalking 的镜像。SkyWalking 包含两个主要组件:OAP(后端分析处理)和 UI(前端展示)。

bash 复制代码
docker pull apache/skywalking-oap-server:latest
docker pull apache/skywalking-ui:latest

2. 运行 OAP 容器

接下来,运行 OAP 容器。OAP 负责接收和处理来自各个服务的监控数据。

bash 复制代码
docker run -d --name skywalking-oap \
  -e TZ=Asia/Shanghai \
  -p 12800:12800 \
  -p 11800:11800 \
  --restart always \
  apache/skywalking-oap-server:latest

在这一步,我们启动了 OAP 容器,并将它的 12800 和 11800 端口分别映射到宿主机的同名端口。这些端口分别用于接收监控数据和与 UI 组件通信。

3. 运行 UI 容器

然后,运行 UI 容器。UI 提供了一个可视化界面,方便我们查看和分析监控数据。

bash 复制代码
docker run -d --name skywalking-ui \
  -e TZ=Asia/Shanghai \
  -p 8080:8080 \
  --link skywalking-oap:oap \
  -e SW_OAP_ADDRESS=oap:12800 \
  --restart always \
  apache/skywalking-ui:latest

UI 容器通过 --link 参数连接到 OAP 容器,并通过环境变量 SW_OAP_ADDRESS 指定 OAP 服务的地址。

4. 配置 SkyWalking Agent

为了让你的应用程序能够将监控数据发送到 SkyWalking,需要配置 SkyWalking Agent。以下是一个 Java 应用程序的示例配置:

bash 复制代码
-javaagent:/path/to/skywalking-agent.jar \
-Dskywalking.agent.service_name=your-service-name \
-Dskywalking.collector.backend_service=oap:11800

将上述参数添加到你的应用程序启动命令中即可。-javaagent 参数指定了 SkyWalking Agent 的路径,-Dskywalking.agent.service_name 参数指定了服务名称,-Dskywalking.collector.backend_service 参数指定了 OAP 服务的地址。

5. 访问 SkyWalking UI

完成上述步骤后,你可以通过浏览器访问 SkyWalking UI,查看监控数据。默认情况下,UI 运行在 http://localhost:8080

进阶配置

如果你需要更高级的配置,例如持久化存储、集群部署等,可以参考 SkyWalking 的官方文档。以下是一些常见的进阶配置示例。

1. 配置持久化存储

SkyWalking 支持多种存储后端,如 ElasticSearch、MySQL 等。你可以通过修改 OAP 容器的环境变量来配置存储后端。例如,配置 ElasticSearch 作为存储后端:

bash 复制代码
docker run -d --name skywalking-oap \
  -e TZ=Asia/Shanghai \
  -e SW_STORAGE=elasticsearch \
  -e SW_STORAGE_ES_CLUSTER_NODES=es-host:9200 \
  -p 12800:12800 \
  -p 11800:11800 \
  --restart always \
  apache/skywalking-oap-server:latest

2. 集群部署

对于大规模分布式系统,可以部署多个 OAP 实例,并通过负载均衡器分发请求。使用 Docker Compose 可以简化集群部署的配置。

以下是一个简单的 Docker Compose 配置示例:

yaml 复制代码
version: '3.7'
services:
  oap:
    image: apache/skywalking-oap-server:latest
    ports:
      - "12800:12800"
      - "11800:11800"
    environment:
      TZ: Asia/Shanghai
    deploy:
      replicas: 2
      update_config:
        parallelism: 2
        delay: 10s

  ui:
    image: apache/skywalking-ui:latest
    ports:
      - "8080:8080"
    environment:
      TZ: Asia/Shanghai
      SW_OAP_ADDRESS: oap:12800
    depends_on:
      - oap

使用该配置文件,你可以通过以下命令启动 SkyWalking 集群:

bash 复制代码
docker-compose up -d

网络拉取问题排查,请看 Docker 网络代理配置及防火墙设置指南

总结

通过 Docker 部署 SkyWalking,可以大大简化安装和配置过程。只需几个简单的命令,就可以快速搭建一个强大的应用性能监控系统。对于更复杂的需求,可以根据官方文档进行相应的配置和调整。

进一步阅读:Apache SkyWalking 官方文档

相关推荐
初级炼丹师(爱说实话版)1 小时前
Ubuntu24.04 Docker+vLLM+qianwen2.5-coder-32B部署文档
docker·容器·vllm
ᥬ 小月亮7 小时前
SonarQube使用教程(Docker安装)
运维·docker·容器
在世修行7 小时前
Windows 上 Docker Desktop 部署 MySQL + TDengine 全过程(含 WSL 报错与镜像加速排障实战)
windows·mysql·docker·tdengine
自律最差的编程狗9 小时前
从零搭建:VMware + Ubuntu + Docker + MySQL 完整指南
mysql·ubuntu·docker
天空之外13610 小时前
Docker安装MySQL 8.4 LTS、Docker安装Redis 7.4.x、Docker安装MinIO
java·mysql·docker
空谷有来人10 小时前
springcloud中配置ci/cd集成docker的配置文件
spring cloud·ci/cd·docker
空谷有来人10 小时前
docker安装redis
redis·docker·容器
Ai拆代码的曹操11 小时前
K8s 实战:CrashLoopBackOff 状态下 kubectl logs 拿不到日志的三层排查方案
linux·docker·kubernetes
ZJNF200312 小时前
EC节能风机厂家直销,如何避开选型误区?——从效率实测到服务保障的全面解读
人工智能·容器
爱吃蔬菜091312 小时前
一键部署K8s v1.30.14全离线解决方案
云原生·容器·kubernetes