【Arthas】初识 Arthas, 安装使用
在这里插入图片描述
1Arthas(读:阿尔萨斯) 是什么
Arthas 是 Alibaba 开源的 Java 诊断工具 GitHub 地址: Alibaba Althas 项目地址
2Arthas 能干什么
当你遇到以下类似问题而束手无策时,Arthas 可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
是否有一个全局视角来查看系统的运行状况?
有什么办法可以监控到 JVM 的实时运行状态?
Arthas 支持 JDK 6+,支持 Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
3 快速安装
第一种:使用 arthas-boot(推荐)
下载 arthas 的 jar 包; 然后启动 jar 包
java -jar arthas-boot.jar
启动之后会列出所有的 Java 进程; 选择你想要诊断的进程; 比如这里我输入 4
回车
这时候就进入的 Arthas 的操作界面了;注意:执行该程序的用户需要和目标进程具有相同的权限。比如以 admin 用户来执行:sudo su admin && java -jar arthas-boot.jar 或 sudo -u admin -EH java -jar arthas-boot.jar。如果 attach 不上目标进程,可以查看~/logs/arthas/ 目录下的日志。
第二种:使用 as.sh
Arthas 支持在 Linux/Unix/Mac 等平台上一键安装,请复制以下内容,并粘贴到命令行中,敲 回车 执行即可:
curl -L https://alibaba.github.io/arthas/install.sh | sh
上述命令会下载启动脚本文件 as.sh 到当前目录,你可以放在任何地方或将其加入到 $PATH 中。
直接在 shell 下面执行./as.sh
,就会进入交互界面。
也可以执行./as.sh -h
来获取更多参数信息。如果从 github 下载有问题,可以使用 gitee 镜像curl -L https://arthas.gitee.io/install.sh | sh
4Cloud Toolkit 插件一键诊断远程服务器
简单配置,无须手动安装 Arthas
通过Cloud Toolkit插件使用Arthas一键诊断远程服务器
5 卸载
在 Linux/Unix/Mac 平台删除下面文件:
Windows 平台直接删除
user home
下面的.arthas
和logs/arthas
目录
6 启动异常情况
Target process 24501 is not the process using port 3658, you will connect to an unexpected process
出现这种情况,是我们刚刚诊断了com.shirc.arthasexample.ArthasExampleApplication
的进程;然后退出的时候用了 ctrl+c
或者exit
退出,其实没有把那个会话正常关闭;下次再选择其他的进程的时候会提示你有一个会话没有正常关闭,要你去正常关闭一下;
解决方法: 重新进入刚刚那个会话;然后执行: shutdown
正常关闭会话; 才能重新打开其他进程的会话;
7 正常关闭
shutdown
8 示例项目
可以下载我用来调试的项目 Arthas 示例项目本 Arthas 系列的的文章的所有调试命令都是基于上面的项目;先把项目拉下来,本地启动;之后就可以看到进程了
版权声明: 本文为 InfoQ 作者【石臻臻的杂货铺】的原创文章。
原文链接:【http://xie.infoq.cn/article/23a3db2236a70e07f75433523】。未经作者许可,禁止转载。
评论