一、什么是Arthas以及它能做什么
https://github.com/alibaba/arthas/issues
https://arthas.aliyun.com/doc/
https://arthas.aliyun.com/doc/arthas-tutorials.html
1、概念和用途
Arthas
是Alibaba开源的Java诊断工具。
当你遇到以下类似问题而束手无策时,Arthas
可以帮助你解决:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
- 怎么快速定位应用的热点,生成火焰图?
2、运行安装环境
Arthas
支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab
自动补全功能,进一步方便进行问题的定位和诊断。
3、快速安装
安装需要两步,第一步是先下载arthas的jar包。
下载arthas-boot.jar
,然后用java -jar
的方式启动:我们需要先下载这个jat包,然后运行这个jar包去下载arthas的安装包。这个jar是个门面吧应该。
3.1、安装命令
curl -O https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
注:在运行第2条命令之前,先运行一个java进程在内存中,不然会出现找不到java进程的错误。
打印帮助信息
java -jar arthas-boot.jar -h
如果下载速度比较慢,可以使用aliyun的镜像:
java -jar arthas-boot.jar --repo-mirror aliyun --use-http
因为Arthas本身是java写的,所以跨平台,可以在win和linux上安装。下面我们就一一来安装一下。
3.2、windows在线安装
1、第一步,下载jar包
第一步还是执行curl -O https://alibaba.github.io/arthas/arthas-boot.jar从github上去拉取arthas的jar包,注意,这个jar包是一切启动的开始,需要先下载这个。
我们此时就拉取下来了这个jar包
此时我们就在当前目录下我是在D盘的arthas下面打开的dos窗口,此时在这个目录下就下载好了这个jar包。
2、第二步,启动jar包
第二步此时就是启动arthas,其实是运行这个jar包,然后他会去拉取arthas的安装包,进行真正的执行文件的安装。
启动该jar包的命令就是常规的java -jar arthas-boot.jar
但是这里有个注意事项就是,他在启动的时候他会检测你当前环境是不是有java进程,因为人家本身就是监测java进程的,所以你没有java进程运行,那你起了个寂寞。
哪怕是你本地起着idea,啥也没有也可以,因为idea本身就是java进程。
我们就来运行这个jar看看,效果,注意此时我本地是起着idea,并且还运行着基础服务(es相关的)。
3、第三步,选择监控进程
第三步就是你要选一个你要监控的进程,第一个就是我本地那个es的服务,我就选1,然后直接回车了。
如果开始你本地没有,那他会给你自己去拉去安装包,进行安装。
到此为止,我们正式在windows上面安装了arthas,而且进入了监控的操作界面开始监控这个基础服务。下面就是一些操作,我们来看一下。
3.3、Linux在线安装
linux安装的步骤和操作和windows一摸一样,我来操作一下。
我的服务器上面有java进程的。
第一步、下载jar包
第二步、启动jar包
启动之后就算进来了,此时我们退出看看安装文件。quit回车退出。
控制台显示的是在/root/.arthas/lib/3.6.7/arthas这个目录下面安装了文件,而且.arthas这种点开头的是隐藏目录,你在linux看的时候需要ls -a才能看到,这里不写了,自己可以试一试。
以上都是在线安装的,要是我在什么涉密客户那里,人家内部没有外网,此时你不能从github或者是阿里云仓库去下载东西,你需要的是离线安装。
3.4、离线安装
windows离线安装和linux一样的,这里演示Linux的操作。
1、首先要下载好安装包
直接访问阿里云镜像仓库,下载该包。
https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.1.7/arthas-packaging-3.1.7-bin.zip
[阿里云镜像仓库地址][https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.1.7/arthas-packaging-3.1.7-bin.zip]
下载好之后传到linux服务器上。
然后解压zip包,unzip -d [解压的目录] zip名称
因为是离线安装的,这个包都包含了所有文件,之前你在线时候需要运行jar下载的东西都在这里了,而且那个jar也在这里了。
3.5、arthas卸载
在 Linux/Unix/Mac 平台
rm -rf ~/.arthas/
rm -rf ~/logs/arthas
在windows上
直接删除user home下面的.arthas和logs/arthas目录