【SkyWalking从入门到精通】第09篇:SkyWalking安装全攻略——5分钟跑起来你的第一个APM系统

发布时间:2026/7/7 2:50:41
【SkyWalking从入门到精通】第09篇:SkyWalking安装全攻略——5分钟跑起来你的第一个APM系统 上一篇【第08篇】Service Mesh入门——下一代微服务通信架构你了解多少下一篇【第10篇】SkyWalking工程结构深度解读——源码里藏着什么宝贝摘要理论说了一大堆是时候动手了本篇是一篇实操性极强的安装指南带你从零开始搭起SkyWalking的完整运行环境。你会选择方式A下载发行包5分钟搞定或方式B编译源码更深入。无论哪种方式本篇都给你完整的步骤保证你看完就能跑起来。另外特别提醒默认H2存储的坑是新手最容易踩的——本篇提前帮你避开。一、环境准备在开始之前确认你的机器上有以下环境依赖最低版本说明JDK1.8运行OAP和Agent的基础Maven3.6仅编译源码时需要Git任意仅克隆源码时需要可用内存4GBOAP需要至少1-2GB堆内存二、方式A下载发行包推荐新手这是最快的方式适合快速体验SkyWalking的核心功能。步骤1下载发行包访问 SkyWalking 官方下载页面https://skywalking.apache.org/downloads/选择最新版本的Distribution包不是源码包下载apache-skywalking-apm-x.y.z.tar.gz# 或者直接命令行下载版本号请替换为最新版wgethttps://archive.apache.org/dist/skywalking/9.3.0/apache-skywalking-apm-9.3.0.tar.gz# 解压tar-xzfapache-skywalking-apm-9.3.0.tar.gzcdapache-skywalking-apm-bin步骤2了解目录结构apache-skywalking-apm-bin/ ├── agent/ ← Java Agent挂载到你的应用 │ ├── skywalking-agent.jar │ ├── config/ │ │ └── agent.config ← Agent配置文件 │ ├── plugins/ ← 内置插件Spring/Dubbo/Redis等 │ └── optional-plugins/ ← 可选插件需手动激活 │ ├── bin/ ← 启动脚本 │ ├── startup.sh ← 一键启动OAP UI │ ├── oapService.sh ← 单独启动OAP │ └── webappService.sh ← 单独启动UI │ ├── config/ ← OAP配置文件 │ └── application.yaml ← OAP核心配置重点文件 │ ├── oap-libs/ ← OAP运行时依赖的jar包 │ └── webapp/ ← Web UI相关文件 └── skywalking-webapp.jar步骤3一键启动# Linux/Maccdapache-skywalking-apm-bin/bin ./startup.sh# Windowscdapache-skywalking-apm-bin\bin startup.batstartup.sh会同时启动OAP Server和Web UI两个进程SkyWalking OAP started successfully! SkyWalking Web Application started successfully!步骤4验证运行正常# 检查进程是否启动psaux|grepskywalking# 检查OAP端口gRPC: 11800, HTTP: 12800netstat-tlnp|grep11800netstat-tlnp|grep12800# 检查UI端口默认8080netstat-tlnp|grep8080访问 http://localhost:8080如果看到SkyWalking的UI界面说明启动成功三、方式B编译源码深入学习推荐如果你想深入理解SkyWalking、进行二次开发建议从源码编译开始。步骤1克隆源码gitclone https://github.com/apache/skywalking.gitcdskywalking# 检出稳定版本推荐不用master分支gitcheckout v9.3.0# 初始化子模块重要gitsubmodule update--init注意git submodule update --init这一步很关键SkyWalking有多个子模块如UI、协议库不执行这步会编译失败。步骤2编译项目# 编译整个项目跳过测试节省时间./mvnw clean package-DskipTests# 如果网络较慢可以指定国内Maven镜像./mvnw clean package-DskipTests\-Dmaven.repo.remotehttps://maven.aliyun.com/repository/central编译时间根据机器配置不同通常需要5-15分钟。耐心等待…编译成功后发行包在lsdist/# 包含 apache-skywalking-apm-*.tar.gz步骤3工程模块概览skywalking/ ├── apm-sniffer/ ← Java探针核心 │ ├── apm-agent/ ← Agent启动入口 │ ├── apm-agent-core/ ← Agent核心框架 │ └── apm-sdk-plugin/ ← 所有内置插件 │ ├── oap-server/ ← OAP Server │ ├── server-core/ ← OAP核心框架 │ ├── server-receiver-plugin/ ← 各种Receiver插件 │ ├── server-storage-plugin/ ← 存储实现 │ └── server-starter/ ← OAP启动入口 │ ├── apm-application-toolkit/ ← 手动埋点SDK可选 │ └── apm-webapp/ ← Web UI四、快速验证给Spring Boot应用挂上Agent安装完SkyWalking后把Agent挂到你的应用上验证是否工作。准备一个简单的Spring Boot应用# 如果没有现成的应用下载SkyWalking官方的示例gitclone https://github.com/SkyAPMTest/skywalking-live-democdskywalking-live-demo挂载Agent启动应用java\-javaagent:/path/to/apache-skywalking-apm-bin/agent/skywalking-agent.jar\-Dskywalking.agent.service_namemy-spring-boot-demo\-Dskywalking.collector.backend_servicelocalhost:11800\-jaryour-app.jar关键参数说明-javaagent指定SkyWalking Agent的jar包路径skywalking.agent.service_name在SkyWalking中显示的服务名skywalking.collector.backend_serviceOAP Server的gRPC地址发送几个请求验证追踪# 给你的应用发几个HTTP请求curlhttp://localhost:8080/api/some-endpointcurlhttp://localhost:8080/api/another-endpoint然后打开 http://localhost:8080 查看SkyWalking UI在追踪视图中应该能看到刚才的请求记录。五、⚠️ 重要提醒H2存储的大坑SkyWalking默认使用H2内存数据库作为存储。H2是Java内置的轻量级数据库非常适合快速体验。但是H2存储有一个重大限制⚠️ H2存储的数据不持久化 OAP Server一旦重启所有历史数据Trace、指标、拓扑图全部清空。这对于快速验证功能没有问题但绝对不适合生产环境或者你想保留历史数据的场景。如何确认你当前用的是H2存储查看config/application.yamlstorage:selector:${SW_STORAGE:h2}# 如果这里是h2就是H2存储h2:driver:org.h2.jdbcx.JdbcDataSourceurl:jdbc:h2:mem:skywalking-oap-db# mem表示内存重启即失user:sa快速切换到MySQL存储持久化storage:selector:${SW_STORAGE:mysql}# 改成mysqlmysql:properties:jdbcUrl:jdbc:mysql://localhost:3306/swtest?rewriteBatchedStatementstruedataSource.user:rootdataSource.password:yourpassword然后创建MySQL数据库SkyWalking会自动创建表结构CREATEDATABASEswtestDEFAULTCHARACTERSETutf8mb4;六、常见启动问题与解决问题1OAP启动后很快崩溃查看日志logs/skywalking-oap-service.log常见原因内存不足增加JVM堆内存编辑bin/oapService.sh修改-Xmx参数端口被占用检查11800、12800端口是否已被占用问题2UI访问8080无响应查看日志logs/webapp.log常见原因UI的8080端口被占用OAP未启动UI连接OAP失败修改UI端口编辑webapp/application.ymlserver:port:8081# 改成其他未被占用的端口问题3Agent挂载后SkyWalking UI里看不到数据检查清单skywalking.collector.backend_service地址是否正确OAP的11800端口是否能从Agent所在机器访问Agent日志agent/logs/skywalking-api.log有没有错误信息应用是否确实在处理请求空应用不会产生追踪数据本篇小结SkyWalking的安装非常简单快速体验下载发行包执行startup.sh5分钟内可以看到UI深入学习克隆源码./mvnw clean package -DskipTests编译得到发行包接入应用加上-javaagent参数配置service_name和backend_service即可生产环境必须替换H2存储为ES或MySQL数据才能持久化下一篇我们深入SkyWalking的工程结构搞清楚每个模块的职责为后续的源码学习打好基础。上一篇【第08篇】Service Mesh入门——下一代微服务通信架构你了解多少下一篇【第10篇】SkyWalking工程结构深度解读——源码里藏着什么宝贝