详细介绍:标准 Windows 编译 SkyWalking version=10.4

标准 Windows 编译步骤

1. 克隆 SkyWalking

git clone https://github.com/apache/skywalking.git
cd skywalking
git submodule update --init --recursive

2. 编译(带 UI)

mvn clean package -DskipTests

然后就会在

D:\IdeaProjects\skywalking-full\dist中生成一个

apache-skywalking-apm-bin.tar.gz的文件

解压缩后目录结构如下:

├─bin
├─config
│  ├─cilium-rules
│  ├─envoy-metrics-rules
│  ├─lal
│  ├─log-mal-rules
│  ├─meter-analyzer-config
│  ├─oal
│  ├─openapi-definitions
│  │  └─serviceA
│  ├─otel-rules
│  │  ├─activemq
│  │  ├─aws-dynamodb
│  │  ├─aws-eks
│  │  ├─aws-gateway
│  │  ├─aws-s3
│  │  ├─banyandb
│  │  ├─bookkeeper
│  │  ├─clickhouse
│  │  ├─elasticsearch
│  │  ├─flink
│  │  ├─k8s
│  │  ├─kafka
│  │  ├─kong
│  │  ├─mongodb
│  │  ├─mysql
│  │  ├─nginx
│  │  ├─postgresql
│  │  ├─pulsar
│  │  ├─rabbitmq
│  │  ├─redis
│  │  └─rocketmq
│  ├─telegraf-rules
│  ├─ui-initialized-templates
│  │  ├─activemq
│  │  ├─apisix
│  │  ├─aws_dynamodb
│  │  ├─aws_eks
│  │  ├─aws_gateway
│  │  ├─aws_s3
│  │  ├─banyandb
│  │  ├─bookkeeper
│  │  ├─browser
│  │  ├─cilium_service
│  │  ├─clickhouse
│  │  ├─custom
│  │  ├─elasticsearch
│  │  ├─flink
│  │  ├─general
│  │  ├─k8s
│  │  ├─k8s_service
│  │  ├─kafka
│  │  ├─kong
│  │  ├─mesh
│  │  ├─mesh_cp
│  │  ├─mesh_dp
│  │  ├─mongodb
│  │  ├─mysql
│  │  ├─nginx
│  │  ├─os_linux
│  │  ├─os_windows
│  │  ├─postgresql
│  │  ├─pulsar
│  │  ├─rabbitmq
│  │  ├─redis
│  │  ├─rocketmq
│  │  ├─so11y_go_agent
│  │  ├─so11y_java_agent
│  │  ├─so11y_oap
│  │  ├─so11y_satellite
│  │  ├─virtual_cache
│  │  ├─virtual_database
│  │  └─virtual_mq
│  └─zabbix-rules
├─config-examples
├─licenses
│  └─ui-licenses
├─logs
├─oap-libs
├─tools
│  ├─data-generator
│  │  ├─bin
│  │  └─config
│  └─profile-exporter
└─webapp

然后去bin中运行oapService.bat结果就不行了,因为没有配置数据库

试了推荐的h2,不好用,因为已经移除了,另外sqlite的也被移除了,如果想用最好降低版本

storage在 10.4.0 中支持?
h2❌ 已被删除
sqlite❌ 已被删除
elasticsearch✅ 支持(推荐)
banyandb✅ 支持

如果你必须用 SQLite(开发轻量环境),请退回到 SkyWalking 10.2.0

本机正好有mysql 8.0.30,就试一下,下载地址https://dev.mysql.com/downloads/

改进D:\IdeaProjects\skywalking-full\dist\apache-skywalking-apm-bin\config\application.yml

storage:
  selector: mysql
    mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest?rewriteBatchedStatements=true&allowMultiQueries=true"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:你的数据库密码}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
    maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:2000}
    asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:4}

并下载 https://downloads.mysql.com/archives/c-j/中的库,解压缩

把mysql-connector-java-8.0.30.jar放到

D:\IdeaProjects\skywalking-full\dist\apache-skywalking-apm-bin\oap-libs

配置好后,使用mysql命令行

CREATE DATABASE swtest CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

如果不创建上面的数据库表, HikariCP 连接池初始化失败,OAP 直接退出。

另外下载一个mysql可视化的软件

https://dbeaver.io/download/

如果有什么错,看一下dist\apache-skywalking-apm-bin\logs中的

skywalking-oap-server.log

如果这个窗口一直不关就是成功 了,另外上面日志没有啥堆栈错误基本就可以了,

然后运行webappService.bat

然后访问localhost:8080就出来了

posted @ 2026-01-24 21:08  yangykaifa  阅读(0)  评论(0)    收藏  举报