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后端包括OAPUI1. 下载安装包官网下载地址官网1后端包apache-skywalking-apm-x.x.x-bin.zip2Java探针包apache-skywalking-java-agent-x.x.x.tgz解压路径绝对不能有中文、空格、括号示例解压到D:\soft\skywalking-apm、D:\soft\skywalking-agent2. Windows一键启动后端进入OAP包的bin目录双击startup.bat会自动同时启动OAP收集服务 UI网页服务弹出两个黑窗口不要关闭。访问控制台浏览器打开http://localhost:8080默认账号密码admin/admin。3. 常用端口说明端口作用11800Agent gRPC上报数据探针必须连这个端口12800Agent HTTP上报8080UI控制台访问端口4. 存储切换测试H2够用生产必须ES打开config/application.yml修改storagestorage:selector:${SW_STORAGE:h2}# selector: ${SW_STORAGE:elasticsearch} # 生产打开ES注释H2内存库重启OAP数据清空仅本地学习使用。三、SpringBoot/Java项目接入Agent探针前置说明接入只需要加JVM启动参数pom无需引入任何依赖、业务代码零修改自动拦截SpringMVC、MyBatis、Dubbo、Kafka、Redis等主流组件。方式1IDEA开发环境配置IDEA打开启动配置Run/Debug Configurations→ 选中你的SpringBoot启动类找到VM options粘贴下面参数修改探针绝对路径、服务名-javaagent:D:/soft/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_nameorder-service -Dskywalking.collector.backend_service127.0.0.1:11800参数解释-javaagent指定探针jar绝对路径Windows用正斜杠/避免转义报错service_name自定义服务英文名控制台用来区分微服务backend_serviceOAP后端地址gRPC端口应用保存配置重启SpringBoot项目控制台日志输出SkyWalking加载日志即接入成功。方式2Jar包命令行启动Windows cmd打包好xxx.jar后cmd执行完整启动命令java -javaagent:D:/soft/skywalking-agent/skywalking-agent.jar ^ -Dskywalking.agent.service_namegoods-service ^ -Dskywalking.collector.backend_service127.0.0.1:11800 ^ -jar goods-0.0.1-SNAPSHOT.jar四、Agent常用配置优化agent/config/agent.config# 1、服务名也可JVM参数覆盖 agent.service_nameuser-service # 2、OAP后端地址 collector.backend_service127.0.0.1:11800 # 3、采样率1100%全采集测试生产0.330%采样减少存储压力 agent.sample_n_per_3_secs1 # 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 DashboardP95/P99响应耗时、TPS吞吐量、错误率、JVM堆内存、GC次数、线程池状态自动生成曲线图观察高峰期性能波动。4. 数据库SQL监控菜单Database自动捕获MyBatis/Jdbc执行的所有SQL统计每条SQL平均耗时、执行次数、慢SQL排行无需开启数据库慢日志。5. 告警配置支持自定义规则接口错误率5%、P99耗时1s、服务实例下线触发邮件/钉钉告警。六、多微服务接入完整演示网关、订单、库存3个服务分别配置不同service_namegateway-gatewayorder-servicestock-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持久化。