分布式监控SkyWalking链路追踪
Apache SkyWalking 是一款开源的分布式系统应用性能监控(APM)与可观测性分析平台,专为微服务、云原生和容器化架构设计,核心功能包括分布式追踪、指标监控、服务拓扑分析、日志关联等,采用无侵入式探针(Java Agent),通过字节码增强实现全链路数据采集,无需修改业务代码。核心功能1.分布式追踪:记录跨服务调用链路,展示各节点耗时、状态,支持链路筛选、定位慢查询与错误节点。2.指标
前言
Apache SkyWalking 是一款开源的分布式系统应用性能监控(APM)与可观测性分析平台,专为微服务、云原生和容器化架构设计,核心功能包括分布式追踪、指标监控、服务拓扑分析、日志关联等,采用无侵入式探针(Java Agent),通过字节码增强实现全链路数据采集,无需修改业务代码。
核心功能
- 1.分布式追踪:记录跨服务调用链路,展示各节点耗时、状态,支持链路筛选、定位慢查询与错误节点。
- 2.指标监控:采集服务 / 实例的 CPU、内存、响应时间、QPS、错误率等,支持自定义指标与告警。
- 3.服务拓扑:自动生成服务依赖图,直观呈现调用关系,识别关键依赖与瓶颈。
- 4.日志关联:通过 TraceID 关联日志,实现 “链路 - 日志 - 指标” 一体化分析,快速定位异常根因。
- 5.服务网格适配:深度集成 Istio、Envoy,支持数据面 / 控制面遥测分析,适配云原生场景。
- 6.告警机制:支持阈值告警、异常事件告警,集成邮件、钉钉等通知渠道。
SkyWalking 从8.x 版本(约 2020 年中) 开始,APM 安装包与 Agent 探针包正式分离,需单独下载这两个核心安装包:Apache SkyWalking APM(OAP Server + UI)和对应语言的 Agent(如 Java Agent)。
一、SkyWalking下载
https://skywalking.apache.org/downloads/?spm=5176.28103460.0.0.96a07551ICWNd1
选择合适的APM 安装包,和 Agent 探针包下载。
这里我选择了
二、SkyWalking使用
1.启动SkyWalking OAP Server(后端)


点击bin目录下的startup.bat
会弹出两个窗口和版本不兼容警告。目前不影响继续使用
默认端口号是8080可以在webapp的yml下设置
这里我设置为8081
打开浏览器输入http://localhost:8081即可访问
如果看到 SkyWalking UI 页面,说明 OAP 启动成功!
2.使用 Java Agent 监控你的 Java 应用
探针不能直接启动,需要配置
这里有个快捷键alt+v

在 VM options 中填写
-javaagent:D:你的agent路径\skywalking-agent.jar
-Dskywalking.agent.service_name=manage-gatway(你的服务名称)
-Dskywalking.collector.backend_service=localhost:11800
给每个服务添加好以后就可以启动了
启动时会看到很多日志
启动以后先访问项目
再次查看http://localhost:8081
项目的发起的请求链路会记录在这里
总结
本次实操围绕 Apache SkyWalking 的基础部署与 Java 应用监控展开,核心完成了8.X 及以上版本的双包分离式部署、OAP Server 后端启动、UI 端口自定义配置以及 Java Agent 探针与微服务的集成,实现了对 Java 应用的无侵入式全链路监控,以下是核心总结与关键补充:
一、核心实操成果
完成 SkyWalking 核心组件分离下载:单独获取APM 安装包(OAP Server+UI) 和Java Agent 探针包,符合 8.X 及以上版本的使用规范;
成功启动 OAP Server 后端:通过startup.bat启动服务,解决 UI 端口冲突问题(默认 8080 修改为 8081),正常访问 SkyWalking 可视化界面;
实现 Java Agent 探针集成:通过 IDEA 的 VM options 配置探针路径、自定义服务名、指定后端采集地址,完成对 Java 微服务(如 manage-gatway)的监控埋点;
验证监控效果:启动业务服务并发起请求后,在 SkyWalking UI 中成功采集到请求链路、服务调用数据,达成基础监控目标。
二、关键知识点补充
双包分离核心逻辑:8.X 及以上版本将 APM(后端 + UI)与 Agent 探针分离,目的是解耦组件、支持多语言探针独立迭代、减小安装包体积,不同组件可按需下载配置;
核心端口说明:
UI 默认端口:8080(可在webapp/application.yml中修改);
Agent 与 OAP 通信端口:11800(核心端口,配置时不可写错);
OAP 的 REST API 端口:12800(默认,无需手动配置);
探针配置核心参数:
-javaagent:【本地Agent包的skywalking-agent.jar绝对路径】
-Dskywalking.agent.service_name=【自定义服务名,需唯一,便于UI识别】
-Dskywalking.collector.backend_service=【OAP部署地址:11800,本地为localhost:11800】
每个微服务需单独配置,服务名不可重复,否则会导致链路数据混乱;
启动警告说明:启动 OAP 时出现的版本不兼容警告(如sun.reflect.Reflection.getCallerClass is not supported),是因 JDK 版本与 Agent 版本适配问题导致,不影响基础功能使用,生产环境可通过升级 Agent 版本(8.10.0+)彻底解决,避免性能损耗。
三、使用注意事项
路径规范:配置-javaagent时需使用绝对路径,且路径中尽量无中文、空格,否则会导致探针加载失败;
多服务监控:微服务架构中,每个服务都要单独配置 VM options,且service_name需与微服务名一致,才能在 SkyWalking 中生成完整的服务拓扑与调用链路;
启动顺序:需先启动 SkyWalking OAP Server,再启动配置了探针的业务服务,否则业务服务的监控数据无法上报;
数据采集触发:配置完成后需手动发起业务请求(如访问接口、页面),SkyWalking 才会采集链路数据,无请求时 UI 中无相关数据展示;
Windows 环境适配:本次使用startup.bat为 Windows 专属启动脚本,Linux/Mac 环境需使用startup.sh,核心配置逻辑一致。
四、后续扩展方向
告警配置:在 SkyWalking UI 中配置阈值告警(如 QPS 过高、接口响应时间过长、服务错误率超标),并绑定邮件、钉钉等通知渠道,实现异常及时预警;
日志关联:修改项目日志配置,将 TraceID 嵌入日志中,实现 “链路 - 日志 - 指标” 一体化分析,快速定位接口异常根因;
多环境部署:测试 / 生产环境中,将 SkyWalking OAP 部署在独立服务器,Agent 配置中填写 OAP 的服务器 IP(而非localhost),实现多机器服务的统一监控;
性能优化:生产环境升级 Agent 版本至 8.10.0+,解决 JDK 兼容警告带来的性能损耗;根据业务规模配置存储(如 Elasticsearch),替代默认存储,提升数据存储与查询性能;
全链路监控:为微服务架构中的所有组件(如网关、业务服务、数据库、中间件)配置对应探针,实现从请求入口到数据存储的全链路追踪。
五、核心结论
SkyWalking 作为无侵入式的 APM 工具,通过Agent 探针 + OAP 后端 + UI 可视化的架构,能快速实现对 Java 微服务的链路追踪、指标监控与拓扑分析,本次 8.X 版本的基础部署实操,核心掌握双包下载、OAP 启动、Agent 配置三个关键步骤即可实现基础监控需求。
更多推荐


所有评论(0)