SkyWalking 源码编译安装
介绍
SkyWalking是一个开源的APM(应用性能监控)系统,用于分布式系统的监控、跟踪和诊断。通过从源码编译安装SkyWalking,你可以获得最新的功能,并根据需要自定义构建选项。本指南将带你完成从源码编译安装SkyWalking的全过程。
环境准备
在开始之前,确保你的系统满足以下要求:
- JDK 8或更高版本(推荐JDK 11)
- Maven 3.6或更高版本
- Git
- 至少4GB内存(推荐8GB)
提示
如果你使用的是Linux或macOS,可以通过以下命令检查Java和Maven版本:
bash
java -version
mvn -version
获取源码
首先,克隆SkyWalking的官方仓库:
bash
git clone https://github.com/apache/skywalking.git
cd skywalking
如果你想编译特定版本,可以切换到对应的标签(tag)。例如,编译v9.4.0:
bash
git checkout v9.4.0
编译SkyWalking
SkyWalking使用Maven进行构建。执行以下命令开始编译:
bash
mvn clean package -DskipTests
备注
-DskipTests
参数用于跳过测试,加快编译速度。如果你需要运行测试,可以省略此参数。
编译完成后,你可以在以下目录找到打包好的文件:
- Agent:
apm-sniffer/apm-agent/target/skywalking-agent.jar
- OAP Server:
oap-server/server-starter/target/skywalking-server-starter-{version}.tar.gz
- UI:
ui/target/skywalking-ui-{version}.tar.gz
安装与配置
1. 安装OAP Server
解压OAP Server的压缩包:
bash
tar -zxvf oap-server/server-starter/target/skywalking-server-starter-{version}.tar.gz -C /opt/
进入解压后的目录,修改配置文件config/application.yml
以适配你的环境。例如,修改存储后端为Elasticsearch:
yaml
storage:
selector: elasticsearch
elasticsearch:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
启动OAP Server:
bash
bin/startup.sh
2. 安装UI
解压UI的压缩包:
bash
tar -zxvf ui/target/skywalking-ui-{version}.tar.gz -C /opt/
修改配置文件webapp/webapp.yml
,配置OAP Server的地址:
yaml
server:
port: 8080
collector:
path: /graphql
ribbon:
listOfServers: localhost:12800
启动UI:
bash
bin/startup.sh
访问http://localhost:8080
即可看到SkyWalking的Web界面。
3. 配置Agent
将skywalking-agent.jar
复制到你的应用服务器上,并在启动应用时添加以下JVM参数:
bash
-javaagent:/path/to/skywalking-agent.jar
-Dskywalking.agent.service_name=your-service-name
-Dskywalking.collector.backend_service=localhost:11800
实际案例
假设你有一个Spring Boot应用,以下是启动命令的示例:
bash
java -javaagent:/opt/skywalking-agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=spring-boot-demo \
-Dskywalking.collector.backend_service=localhost:11800 \
-jar spring-boot-demo.jar
启动后,你的应用将被SkyWalking监控,并可以在UI中查看性能数据。
常见问题
- 编译失败:确保JDK和Maven版本符合要求,并检查网络连接是否正常。
- OAP Server启动失败:检查Elasticsearch是否运行,并确认配置文件中的地址和端口正确。
- UI无法访问:确认OAP Server已启动,并检查UI配置文件中的
listOfServers
是否正确。
总结
通过本指南,你学会了如何从源码编译安装SkyWalking,并配置OAP Server、UI和Agent。源码编译安装虽然步骤较多,但提供了更大的灵活性和定制能力。
附加资源
练习
- 尝试从源码编译SkyWalking的最新开发版本。
- 修改OAP Server的配置文件,使用H2作为存储后端。
- 部署一个Spring Boot应用,并使用SkyWalking Agent监控其性能。