Linux系统下安装和配置Skywalking 实现分布式链路追踪

轻宇酱_6586

轻宇酱_6586

2026-04-29

1075人浏览

原创

skywalking 启动失败因 jdk 版本过低(需 jdk 11+),应升级 jdk 并配置 java_home;连 es 失败需检查服务状态、网络绑定、认证及版本兼容性;agent 无数据需验证网络连通性、开启对应插件并调整采样率;ui 加载慢多因 es 性能瓶颈,需优化索引策略、ttl 清理及系统参数。

linux系统下安装和配置skywalking 实现分布式链路追踪

安装 SkyWalking 后启动失败,提示 java.lang.UnsupportedClassVersionError

这是最常见的起步卡点:SkyWalking 后端(apache-skywalking-apm-bin)默认要求 JDK 11+,但很多 Linux 服务器仍预装 JDK 8。错误信息里会明确带类似 Unsupported major.minor version 55.0 —— 这就对应 JDK 11。

实操建议:

  • 先运行 java -version 确认当前 JDK 版本;
  • 若低于 11,不要试图降级 SkyWalking(官方已停止维护 JDK 8 兼容版本),直接升级 JDK:推荐用 apt install openjdk-17-jdk(Ubuntu/Debian)或 yum install java-17-openjdk-devel(CentOS/RHEL);
  • 升级后检查 $JAVA_HOME 是否指向新 JDK,必要时在 /opt/skywalking/bin/startup.sh 开头显式添加 export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64(路径按实际调整);
  • 别忽略 startup.sh 的执行权限:chmod +x bin/startup.sh

配置 OAP 服务连接 Elasticsearch 失败,日志反复打印 Connection refused

SkyWalking 默认用 H2 做内存存储,仅用于单机演示;生产必须换 Elasticsearch(或 TiDB、MySQL)。但连不上不是因为配置写错,往往卡在三个隐性环节。

实操建议:

  • 确认 Elasticsearch 已真正运行:curl -X GET "http://localhost:9200/_cat/health?v" 要返回 greenyellow
  • 检查 ES 是否监听外部地址:默认只绑 127.0.0.1,需修改 elasticsearch.yml 中的 network.host: 0.0.0.0 并开放防火墙端口(如 ufw allow 9200);
  • 对应改 SkyWalking 的 config/application.yml:在 storage: 下启用 elasticsearch 段,并确保 clusterNodes 值是可路由的地址(比如 http://es-host:9200,而非 localhost——容器或跨主机部署时尤其关键);
  • ES 7.x+ 需关闭 xpack.security.enabled: true,否则要额外配认证;SkyWalking 当前稳定版(v9.7)对 ES 8.x 支持仍有限,优先选 ES 7.17。

Java 应用接入 agent 后无数据上报,UI 显示 “No data”

agent 启动看似成功(日志有 Agent boot success),但 UI 里找不到服务名、Trace 完全空白。问题通常不在 agent 本身,而在网络通路或探针粒度。

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载

实操建议:

  • 检查 agent 日志:logs/skywalking-api.log 里是否有 Failed to send data to backend —— 这说明 OAP 地址没通,确认 -Dskywalking.collector.backend_service=your-oap-host:11800 中的 host 可被 Java 进程解析和访问(别用 localhost);
  • 确认 OAP 的 gRPC 端口(默认 11800)未被防火墙拦截:telnet your-oap-host 11800 必须通;
  • agent 默认只采集 HTTP、gRPC 等标准协议,若应用走 Dubbo、RocketMQ 或自定义 RPC,需手动开启对应插件:进 agent/config/agent.config,取消注释并设 plugin.dubbo-tracing = on 等;
  • 低流量应用可能因采样率导致数据稀疏,临时调高:agent.sample_n_per_3_secs = 1000(慎用于生产)。

UI 页面加载慢或报 500,Network 面板显示 /graphql 请求超时

这不是前端问题,而是 OAP 查询压力过大或 ES 查询效率低。尤其当历史数据超过 7 天、索引未按天轮转、或查询跨度拉太长(如“最近 30 天”)时,ES 会拖垮整个链路。

实操建议:

  • config/application.yml 中强制设置 ES 索引策略:elasticsearch: 下加 indexShardsNumber: 2indexReplicasNumber: 0(单节点测试环境),避免默认 5 分片造成资源浪费;
  • 启用 TTL 清理:在 same 文件中配置 recordDataTTL: 3(单位:天),让 OAP 主动删除过期索引;
  • 限制 UI 查询范围:在 webapp/webapp.yml 中调小 defaultQueryTimeWindow: 3600(秒),避免用户一上来就查 24 小时;
  • 别在一台机器上同时跑 ES、OAP、UI —— 内存争抢会导致 GC 频繁,OAP 日志出现 Full GC 就得拆。

最常被忽略的是:Elasticsearch 的 vm.max_map_count 未调高,导致分片创建失败,表面看是 UI 慢,根源却是 ES 无法分配新索引。上线前务必执行 sysctl -w vm.max_map_count=262144 并写入 /etc/sysctl.conf

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux系统

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1873

5

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.07

2434

5

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3570

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3113

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2173

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5150

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

4822

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

2913

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2405

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习