跳到主要内容

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中查看性能数据。

常见问题

  1. 编译失败:确保JDK和Maven版本符合要求,并检查网络连接是否正常。
  2. OAP Server启动失败:检查Elasticsearch是否运行,并确认配置文件中的地址和端口正确。
  3. UI无法访问:确认OAP Server已启动,并检查UI配置文件中的listOfServers是否正确。

总结

通过本指南,你学会了如何从源码编译安装SkyWalking,并配置OAP Server、UI和Agent。源码编译安装虽然步骤较多,但提供了更大的灵活性和定制能力。

附加资源

  1. SkyWalking官方文档
  2. SkyWalking GitHub仓库
  3. Elasticsearch安装指南

练习

  1. 尝试从源码编译SkyWalking的最新开发版本。
  2. 修改OAP Server的配置文件,使用H2作为存储后端。
  3. 部署一个Spring Boot应用,并使用SkyWalking Agent监控其性能。