社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

Arthas全面使用指南:离线安装+Docker/K8s集成+集中管理

小哈学Java • 10 月前 • 410 次点击  

来源:blog.csdn.net/longzhutengyue

👉 欢迎加入小哈的星球,你将获得: 专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《Spring AI 项目实战》正在更新中..., 基于 Spring AI + Spring Boot 3.x + JDK 21;
  • 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍演示地址:http://116.62.199.48:7070/
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;
  • 专栏阅读地址:https://www.quanxiaoha.com/column

截止目前, 累计输出 100w+ 字,讲解图 4013+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有4000+小伙伴加入

图片


  • 一、什么是 Arthas?
  • 二、离线安装 Arthas(推荐生产环境使用)
  • 三、Docker 容器化集成 Arthas(Dockerfile 方式)
  • 四、Kubernetes(K8s)环境集成 Arthas
  • 五、多机/多 Pod 集中管理:Arthas Tunnel(推荐)
  • 六、常用命令速查表(Arthas 快速上手)——实战扩展版
  • 七、最佳实践建议
  • 八、总结

Arthas(阿尔萨斯)——Java 应用的线上诊断“瑞士军刀”

一、什么是 Arthas?

Arthas 是阿里巴巴开源的一款 Java 线上诊断工具,能够在不重启、不修改代码的情况下,实时监控和诊断生产环境中的 Java 应用。

它能帮你解决这些问题:
  • 这个类是从哪个 jar 包加载的?为什么报 ClassNotFoundException
  • 我改的代码怎么没生效?是不是分支错了?
  • 线上某个用户请求出错,但无法 debug,日志也不够?
  • 接口响应慢,到底哪里卡住了?
  • 如何查看 JVM 实时内存、线程、GC 状态?
  • 如何生成火焰图定位性能热点?
  • 怎样从 JVM 内部直接调用方法或获取对象实例?

✅ Arthas 支持 JDK 8+(推荐),支持 Linux/Mac/Windows,采用命令行交互,Tab 补全强大,诊断效率极高。

二、离线安装 Arthas(推荐生产环境使用)

由于生产环境通常禁止外网访问,推荐使用离线方式安装 Arthas。

官方文档:https://arthas.aliyun.com/doc/

步骤 1:下载arthas全量包

下载arthas全量包、安装

浏览器输入网址下载:

https://github.com/alibaba/arthas/releases/download/arthas-all-4.0.5/arthas-bin.zip

或者进入github 地址手动下载

https://github.com/alibaba/arthas/releases

图片

建议使用 v4.0.5 或更高版本(功能更全,支持 pm 命令等)。

步骤 2:将全量压缩包拷贝到目标服务器

scp arthas-bin.zip user@your-server:/opt/arthas/

步骤 3:启动 Arthas 并 attach 到目标 Java 进程

cd  /opt/arthas/
unzip arthas-bin.zip
java -jar /opt/arthas/arthas-boot.jar

会列出当前服务器上的 Java 进程,输入对应编号即可 attach。

[INFO] Found existing java process, please choose one:
* [1]: 12345 demo.jar
  [2]: 67890 app.jar
1
[INFO] Attach success.
[arthas@12345]$

三、Docker 容器化集成 Arthas(Dockerfile 方式)

将 Arthas 预装进镜像,确保每个容器都具备诊断能力。

目录结构建议

your-project/
├── Dockerfile
├── pom.xml
├── src/
│   └── ...
└── arthas/
    ├── arthas-agent.jar
    ├── arthas-bin.zip
    ├── arthas-boot.jar
    ├── arthas-client.jar
    ├── arthas-core.jar
    ├── arthas.properties
    ├── arthas-spy.jar
    ├── as.bat
    ├── as-service.bat
    ├── as.sh
    ├── async-profiler/
    ├── install-local.sh
    ├── lib/
    ├── logback.xml
    └── math-game.jar

Dockerfile 示例

FROM openjdk:8-jdk-alpine

# 创建 arthas 目录
RUN mkdir -p /opt/arthas

# 复制离线 arthas 包
COPY ./arthas /opt/arthas/

# 复制应用 jar
COPY target/your-app.jar /app.jar

# 启动脚本:先启动应用,再 attach arthas(可选自动连接 tunnel)
CMD java -jar /app.jar & \
    sleep 15 && \
    java -jar /opt/arthas/arthas-boot.jar --tunnel-server 'ws://tunnel-server:7777/ws' --app-name myapp --telnet-port 3658 --http-port 8563

sleep 15 确保应用完全启动后再 attach。

四、Kubernetes(K8s)环境集成 Arthas

方案 1:使用 arthas-k8s 工具(推荐)




    
helm repo add arthas https://alibaba.github.io/arthas
helm install arthas arthas/arthas-k8s

一键 attach:

arthas-k8s attach myapp-0

方案 2:在 Deployment 中预装 Arthas

apiVersion: apps/v1
kind:Deployment
metadata:
name:myapp
spec:
replicas:3
template:
    spec:
      containers:
      -name:app
        image:myapp:latest
        command: ["/bin/sh"]
        args:
          -"-c"
          - |
            java -jar /app.jar &
            sleep 15
            java -jar /opt/arthas/arthas-boot.jar --tunnel-server 'ws://tunnel-server:7777/ws' --app-name myapp

五、多机/多 Pod 集中管理:Arthas Tunnel(推荐)

架构图(Mermaid)

图片

优势

  • 统一入口,无需 SSH
  • 支持多租户、权限控制
  • 可记录诊断会话,便于审计

六、常用命令速查表(Arthas 快速上手)——实战扩展版

图片

七、最佳实践建议

图片

八、总结

图片

Arthas 是每个 Java 工程师都应掌握的“线上救命工具”。

结合 离线安装 + Docker/K8s 集成 + arthas-tunnel,你将拥有:

随时可诊断、全局可监控、问题秒定位 的强大能力!

立即行动建议:
  • 下载 arthas-boot.jar 放入项目根目录
  • 修改 Dockerfile 预装 Arthas
  • 部署 arthas-tunnel-server,实现集中管理

从此,告别“重启加日志”,拥抱“实时诊断”新时代!

👉 欢迎加入小哈的星球,你将获得: 专属的项目实战(多个项目) / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《Spring AI 项目实战》正在更新中..., 基于 Spring AI + Spring Boot 3.x + JDK 21;
  • 《从零手撸:仿小红书(微服务架构)》 已完结,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17..., 点击查看项目介绍演示地址:http://116.62.199.48:7070/
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2期已完结,演示链接:http://116.62.199.48/;
  • 专栏阅读地址:https://www.quanxiaoha.com/column

截止目前,累计输出 100w+ 字,讲解图 4013+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,Spring Cloud Alibaba 等等,戳我加入学习,解锁全部项目,已有4000+小伙伴加入

图片


图片
图片

1. 我的私密学习小圈子,从0到1手撸企业实战项目~

2. 告别Swagger UI!一款更适合 SpringBoot 的API文档新选择

3. 工作中最常用的5种工作流引擎

4. SpringBoot启动优化7板斧:砍掉70%启动时间的魔鬼实践

图片

最近面试BAT,整理一份面试资料Java面试BATJ通关手册,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 Java 领取,更多内容陆续奉上。

PS:因公众号平台更改了推送规则,如果不想错过内容,记得读完点一下 在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。

“在看”支持小哈呀,谢谢啦

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/188038