skywalking 在 linux 上装不起来,90% 是因为 jdk 版本不对或 elasticsearch 连不上;必须用 jdk 11+ 启动 oap,显式设置 storage.selector 为 elasticsearch,clusternodes 格式正确,server.host 绑定合理,且 grpc 端口 11800 可达。

必须用 JDK 11+ 启动 OAP,JDK 8 或 10 直接报错退出
错误日志里出现 UnsupportedClassVersionError 或类似 major.minor version 55.0,就是 JDK 版本太低。v9.4.0 起,OAP 硬性要求 JDK 11(不是“建议”,是启动即失败)。
- 运行
java -version确认当前版本;若输出是1.8.0_*或10.*,OAP 绝对起不来 - 别信
yum install java——它大概率装的是 OpenJDK 8,即使命令成功也无效 - 推荐下载 Eclipse Temurin 11:
jdk-11.0.*_*.tar.gz,解压后设JAVA_HOME=/path/to/jdk-11 - 在
bin/oapService.sh开头加一行echo $JAVA_HOME,再执行 startup.sh,确认输出是你刚配的 JDK 11 路径
storage.selector 必须显式设为 elasticsearch,否则 OAP 启动后立刻退出
很多人改了 config/application.yml 里的 elasticsearch 块,但漏掉顶层的 selector 字段——它才是开关。OAP 不会自动识别你写了 elasticsearch 就去用它。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 确保这一行存在且值为
elasticsearch:storage: selector: ${SW_STORAGE:elasticsearch} -
clusterNodes必须是host:port格式,例如192.168.1.100:9200;多个节点用英文逗号分隔,末尾不能有逗号 - 如果 ES 开了认证,必须配
userName和password,否则日志只显示401 Unauthorized,不提示缺凭据 - ES 7.x+ 默认启用安全模块,
xpack.security.enabled: true会导致连接失败,要么关掉,要么补全认证配置
Web UI 访问不到?先查 server.host 和防火墙
访问 http://ip:8080 显示连接被拒绝,大概率不是服务没启,而是它根本没监听你期望的地址。
- 检查
webapp/webapp.yml中的server.host:默认是0.0.0.0,但如果误写成127.0.0.1,外部就无法访问 -
server.port改完后,必须同步检查防火墙:firewall-cmd --list-ports看对应端口(如 8080 或 8888)是否放行 - 如果和 ES 部署在同一台机器,注意 ES 占 9200,Web UI 别也设成 9200——端口冲突不会报错,但进程实际没起来
Agent 接入后没数据?优先验证 gRPC 端口连通性
Spring Boot 应用加了 -javaagent:/path/to/agent/skywalking-agent.jar,UI 却始终空白,第一件事不是调 agent.config,而是确认网络链路是否打通。
- OAP 默认监听
11800(gRPC)和12800(HTTP),Agent 必须能直连前者 - 在应用服务器上执行:
telnet your-oap-ip 11800或nc -zv your-oap-ip 11800,不通就卡在这一步 - Agent 日志(
logs/skywalking-api.log)里搜Failed to或Connection refused,比 UI 更早暴露问题 - OAP 启动完成前 Agent 就启动了,也会导致数据丢弃——等
OAPServerStartUp进程 PID 出现在jps输出里再启应用
selector 开关、clusterNodes 地址格式、server.host 绑定方式、以及 11800 端口是否真实可达——这五点漏掉任意一个,装完都等于没装。










