基于 Arthas 实现服务发现和权限控制:一站式 Java 诊断 Web 控制台

lxiol
📝
给 Arthas(阿里巴巴开源 Java 诊断工具)加上 Web UI:自动服务发现 + Spring Security RBAC 权限控制 + Nacos 动态绑定。FatJar/Docker/Helm 三种部署方式,eden-architect 框架两行配置接入。

原文链接:https://mp.weixin.qq.com/s/vAOv-nWnaofUEH8L1G8p5Q
来源:juejin.cn/post/7281849496983994383

Arthas 是阿里巴巴开源的 Java 在线诊断工具,提供 Dashboard 负载总览、Thread 线程分析、Stack 堆栈查看、Watch 性能观测等功能。但它默认通过命令行交互,缺少 Web 管理界面和多用户权限控制。

这篇文章介绍了一套基于 Arthas Tunnel Server 的 Web 化改造方案。

两大核心改造

1. 服务发现:自动获取应用列表

原生 Arthas 需要手动输入 AgentId 才能连接目标应用。改造后自动获取接入应用的 IP 和端口列表,无需手动输入。

2. 权限控制:RBAC 多角色

基于 Spring Security 实现登录控制,支持 Nacos 动态绑定账号与服务:

1
2
3
4
5
6
7
8
9
10
arthas:
tunnel:
users:
- name: admin
password: 123456
roles: '*' # 全部授权
- name: user
password: 123456
roles:
- eden-gateway # 特定服务授权

部署方式

方式 命令
FatJar java -Dserver.port=8080 -jar arthas-tunnel-server.jar
Docker docker run -p 8080:8080 shiyindaxiaojie/arthas-tunnel-server
Helm helm install arthas-tunnel-server ./helm

客户端接入

通过 eden-architect 框架,两步接入:

1
2
3
4
<dependency>
<groupId>io.github.shiyindaxiaojie</groupId>
<artifactId>eden-arthas-spring-boot-starter</artifactId>
</dependency>
1
2
3
4
5
6
spring:
arthas:
enabled: true
arthas:
agent-id: ${spring.application.name}@${random.value}
tunnel-server: ws://localhost:7777/ws

小结

给 Arthas 装上 Web UI + RBAC + 自动发现,运维团队即可在浏览器中统一管理所有 Java 应用的在线诊断。

本文转载自微信公众号,如有侵权请联系删除。

  • 标题: 基于 Arthas 实现服务发现和权限控制:一站式 Java 诊断 Web 控制台
  • 作者: lxiol
  • 创建于 : 2026-07-27 11:50:00
  • 更新于 : 2026-07-27 09:39:21
  • 链接: https://blog.lxiol.cn/2026/07/27/Arthas服务发现与权限控制-一站式Java诊断Web控制台/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
基于 Arthas 实现服务发现和权限控制:一站式 Java 诊断 Web 控制台