第一次接触Arthas时,很多人都会被它强大的Java诊断能力吸引,但往往卡在第一步——环境部署。作为一个从2018年就开始使用Arthas的老用户,我完整经历了它从3.0到3.7版本的迭代过程。今天我就带大家走一遍最稳妥的安装流程,避开那些我当年踩过的坑。
Arthas的安装主要分为在线和离线两种方式。在线安装适合网络环境良好的开发者,整个过程只需要下载一个不到200KB的引导jar包;离线安装则适合内网环境或需要批量部署的场景。无论哪种方式,核心前提都是要有正在运行的Java进程,这也是新手最容易忽略的关键点。
在D盘新建一个arthas目录,打开cmd执行以下命令:
bash复制curl -O https://arthas.aliyun.com/arthas-boot.jar
这个138KB的arthas-boot.jar就是入口文件。但直接运行java -jar arthas-boot.jar会立即退出,控制台提示"No Java process found"。这是因为Arthas需要附着到正在运行的Java进程上。
我建议先用IDEA启动一个SpringBoot项目,再执行上述命令。这时会看到类似这样的进程列表:
code复制[1] 12345 org.example.DemoApplication
[2] 54321 com.intellij.idea.Main
输入数字1选择我们的SpringBoot应用,Arthas就会自动完成后续操作:
C:\Users\你的用户名\.arthas\lib\3.7.1\在Ubuntu/CentOS上步骤类似:
bash复制wget https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
但Linux环境更常遇到权限问题。如果遇到"Permission denied",需要先给执行权限:
bash复制chmod +x arthas-boot.jar
找不到Java进程的几种可能:
下载速度慢的解决方案:
bash复制java -jar arthas-boot.jar --repo-mirror aliyun --use-http
在内网环境时,可以从阿里云Maven仓库下载:
bash复制wget https://arthas.aliyun.com/download/latest_version?type=zip
unzip arthas-packaging-3.7.1-bin.zip
解压后的目录结构:
code复制bin/ # 启动脚本
lib/ # 核心库文件
conf/ # 配置文件
在服务器集群中,可以用Ansible批量执行:
yaml复制- name: Deploy Arthas
unarchive:
src: /tmp/arthas.zip
dest: /opt/arthas
remote_src: yes
成功连接后,你会看到Arthas的ASCII艺术logo。先试试几个基础命令:
dashboard:实时监控面板thread:查看线程堆栈watch:方法调用观测比如要监控UserService的getUser方法:
bash复制watch com.example.UserService getUser '{params,returnObj}' -x 2
第一次使用时建议重点关注:
stop而非直接关闭终端help命令查看详细文档卸载Arthas很简单,删除以下目录即可:
bash复制rm -rf ~/.arthas/ # 核心库
rm -rf ~/logs/arthas # 日志文件
对于Windows系统,还需要检查:
经过多次版本迭代,我总结出几个实用技巧:
--target-ip参数可以远程诊断诊断完成后,记得执行stop命令安全退出。长期运行的Arthas会话可能会占用300MB左右内存,这点在容器环境中需要特别注意。