SkyWalking链路追踪部署

为什么要部署 SkyWalking 链路追踪

微服务架构中,一个请求可能经过十几个服务。
当出现响应慢或报错时,很难定位是哪个环节出了问题。SkyWalking 是一款开源的 APM 系统,可以自动采集调用链、性能指标和日志,让你通过一张拓扑图看清全貌。
本文以 Docker 方式部署,手把手带你跑通 SkyWalking链路追踪部署。

安装前需要准备什么

  • 一台 Linux 服务器(CentOS 7+ 或 Ubuntu 18.04+),配置至少 4GB 内存和 2 核 CPU。
  • DockerDocker Compose 已安装。没装的话,按以下命令一键安装:
# 安装 Docker
curl -fsSL https://get.docker.com | bash
sudo systemctl start docker
sudo systemctl enable docker

# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
  • 端口 8080(SkyWalking UI)和 11800(gRPC 数据端口)在防火墙中放行。

用 Docker Compose 快速部署 SkyWalking

SkyWalking 官方提供了 docker-compose.yml,可以一键启动 OAP 后端和 UI。
操作步骤如下:

  1. 创建一个工作目录并进入:
mkdir ~/skywalking && cd ~/skywalking
  1. 下载官方 docker-compose 文件(这里使用 9.1.0 版本,你也可以替换成最新版):
wget https://raw.githubusercontent.com/apache/skywalking-docker/master/docker-compose.yml
  1. 打开 docker-compose.yml,确认 Elasticsearch 版本和路径。如果服务器内存紧张,可以修改 Elasticsearch 的 ES_JAVA_OPTS 降低堆内存:
environment:
  - discovery.type=single-node
  - ES_JAVA_OPTS=-Xms512m -Xmx512m
  1. 启动所有服务:
docker-compose up -d

首次启动会拉取镜像,约 2-3 分钟。
拉取完成后,通过 docker ps 检查容器状态,应该看到 skywalking-oapskywalking-ui 两个容器正常运行。

  1. 访问 http://你的服务器IP:8080,如果你看到 SkyWalking 的登录页,说明部署成功。默认无密码,直接进入。

避坑指南:高频问题与解决方法

问题 1:Elasticsearch 容器启动失败,提示 max virtual memory areas vm.max_map_count [65530] is too low

解决方法:在宿主机执行 sudo sysctl -w vm.max_map_count=262144,然后重启容器。
这个错误很常见,务必记得调大。

问题 2:SkyWalking UI 能打开,但服务列表为空

原因通常是没有应用接入 Agent。
链路追踪需要你在 Java 应用启动时添加 Agent 参数,例如:

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar \
     -Dskywalking.agent.service_name=my-app \
     -Dskywalking.collector.backend_service=你的服务器IP:11800 \
     -jar your-app.jar

问题 3:端口 8080 被占用

修改 docker-compose.yml 中 UI 服务的端口映射,
"8080:
8080"
改为 "你自己选的新端口:
8080"

然后 docker-compose up -d 重建。

验证链路追踪是否生效

  1. 打开 SkyWalking UI(http://服务器IP:8080),点击左侧“拓扑图”菜单。
  2. 如果你已经启动了一个带 Agent 的应用,并访问了它的接口,拓扑图中会出现该服务的节点。
  3. 点击“追踪”菜单,可以看到具体的请求调用链,包括每个 Span 的耗时和状态。

快速自检命令:在服务器执行 curl http://你的应用地址 产生新请求,然后刷新 UI 的追踪页面,应该能立即看到新记录。
如果你没有应用,可以先用官方示例:

docker run -d --name skywalking-demo \
  -p 8081:8080 \
  -e SW_AGENT_COLLECTOR_BACKEND_SERVICES=你的服务器IP:11800 \
  apache/skywalking-java-demo:latest

然后访问 http://服务器IP:8081 生成请求,回到 SkyWalking UI 查看。

总结

本文用最简单的方式完成了 SkyWalking链路追踪部署。
从环境检查、Docker 启动到 Agent 接入,每一步都写了命令和验证方法。
如果你在生产环境使用,建议将 Elasticsearch 换成集群模式并调整持久化配置;
但新手阶段,单节点足够学习链路追踪的全流程。
遇到问题先回看避坑部分,大概率能直接解决。

分享到:
上一篇
Nacos服务注册发现配置实战:新手入门完整指南
下一篇
ArgoCD容器持续交付配置:零基础GitOps实战指南
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意