Windows 环境 SkyWalking 完整实操教程
一、SkyWalking 核心架构
SkyWalking有4大组件,零代码侵入监控Java微服务、链路追踪、指标监控、告警:
- Agent探针(Java Agent):依附你的Java进程,字节码增强,自动采集接口、SQL、MQ、RPC调用耗时、异常、TraceID,上报后端;不用改一行业务代码。
- OAP服务端(Collector):接收探针上报数据、聚合分析、计算指标,默认端口:
11800(gRPC)、12800(HTTP)。 - 存储层:默认内置H2内存库(测试临时用,重启数据丢失);生产改用Elasticsearch持久化。
- UI控制台:可视化查看拓扑、调用链、慢接口、SQL耗时、JVM指标、告警,默认端口
8080。
版本重要提醒:9.x+ 开始 APM后端包、Java Agent探针包分开下载,不能共用一个压缩包。
二、Windows 部署SkyWalking后端
包括OAP+UI
1. 下载安装包
官网下载地址:官网
1)后端包:apache-skywalking-apm-x.x.x-bin.zip
2)Java探针包:apache-skywalking-java-agent-x.x.x.tgz
解压路径绝对不能有中文、空格、括号,示例解压到:
D:\soft\skywalking-apm、D:\soft\skywalking-agent
2. Windows一键启动后端
进入OAP包的bin目录,双击 startup.bat
- 会自动同时启动 OAP收集服务 + UI网页服务,弹出两个黑窗口,不要关闭。
- 访问控制台:浏览器打开
http://localhost:8080,默认账号密码admin/admin。
3. 常用端口说明
| 端口 | 作用 |
|---|---|
| 11800 | Agent gRPC上报数据(探针必须连这个端口) |
| 12800 | Agent HTTP上报 |
| 8080 | UI控制台访问端口 |
4. 存储切换
测试H2够用,生产必须ES
打开 config/application.yml,修改storage:
storage:
selector: ${SW_STORAGE:h2}
# selector: ${SW_STORAGE:elasticsearch} # 生产打开ES注释
H2内存库重启OAP数据清空,仅本地学习使用。
三、SpringBoot/Java项目接入Agent探针
前置说明
接入只需要加JVM启动参数,pom无需引入任何依赖、业务代码零修改,自动拦截SpringMVC、MyBatis、Dubbo、Kafka、Redis等主流组件。
方式1:IDEA开发环境配置
- IDEA打开启动配置:
Run/Debug Configurations→ 选中你的SpringBoot启动类 - 找到
VM options,粘贴下面参数(修改探针绝对路径、服务名)
-javaagent:D:/soft/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=order-service
-Dskywalking.collector.backend_service=127.0.0.1:11800
参数解释:
-javaagent:指定探针jar绝对路径(Windows用正斜杠/,避免转义报错)service_name:自定义服务英文名,控制台用来区分微服务backend_service:OAP后端地址+gRPC端口
- 应用保存配置,重启SpringBoot项目,控制台日志输出SkyWalking加载日志即接入成功。
方式2:Jar包命令行启动(Windows cmd)
打包好xxx.jar后,cmd执行完整启动命令:
java -javaagent:D:/soft/skywalking-agent/skywalking-agent.jar ^
-Dskywalking.agent.service_name=goods-service ^
-Dskywalking.collector.backend_service=127.0.0.1:11800 ^
-jar goods-0.0.1-SNAPSHOT.jar
四、Agent常用配置优化(agent/config/agent.config)
# 1、服务名(也可JVM参数覆盖)
agent.service_name=user-service
# 2、OAP后端地址
collector.backend_service=127.0.0.1:11800
# 3、采样率:1=100%全采集(测试),生产0.3=30%采样减少存储压力
agent.sample_n_per_3_secs=1
# 4、忽略静态资源、健康检查接口,不生成链路
trace.ignore_path=/static/**,/actuator/**,/health
五、UI控制台五大核心功能实操
用于日常排查
1. 服务拓扑图
也叫微服务调用全景
左侧菜单 Service → Service Topology
- 自动画出所有微服务、网关、数据库、MQ之间调用关系;
- 圆圈大小代表QPS,红色标异常报错服务,一眼定位哪个服务雪崩。
2. 调用链路追踪
排查慢接口/报错
菜单 Traces
- 筛选服务、时间范围,可按响应耗时、异常状态码过滤;
- 点开一条Trace详情:完整展示一次请求全链路:
Gateway → Controller → Mapper SQL → Redis → MQ
每一段执行耗时、调用参数、异常堆栈全部展示; - 经典排查场景:接口整体慢,点开发现某条SQL执行2s,直接定位慢SQL。
3. 服务指标监控
QPS、响应时间、错误率
菜单 Service → Service Dashboard
- P95/P99响应耗时、TPS吞吐量、错误率、JVM堆内存、GC次数、线程池状态;
- 自动生成曲线图,观察高峰期性能波动。
4. 数据库SQL监控
菜单 Database
自动捕获MyBatis/Jdbc执行的所有SQL,统计每条SQL平均耗时、执行次数、慢SQL排行,无需开启数据库慢日志。
5. 告警配置
支持自定义规则:接口错误率>5%、P99耗时>1s、服务实例下线,触发邮件/钉钉告警。
六、多微服务接入完整演示
网关、订单、库存3个服务分别配置不同service_name:
- gateway-gateway
- order-service
- stock-service
全部启动后调用网关接口,拓扑图自动把3个服务串联成完整调用链路,一条TraceID贯穿全链路。
七、使用避坑
-
启动项目提示找不到skywalking-agent.jar
路径写反斜杠\被转义,统一改用正斜杠/;路径不要嵌套太深、不要中文。 -
服务启动正常,UI控制台看不到服务
- 检查OAP的11800端口是否监听,防火墙放行;
- VM参数里
backend_service地址写错,不是127.0.0.1:11800; - 先调用几次项目接口生成访问数据,不会主动空展示。
-
静态资源/健康检查接口大量无用链路
在agent配置trace.ignore_path忽略对应路径。 -
重启startup.bat历史监控数据消失
默认H2内存存储,生产务必切换Elasticsearch持久化。
更多推荐


所有评论(0)