【Arthas】初识Arthas,安装使用

简介: 【Arthas】初识Arthas,安装使用

文章目录

image.png

Arthas(读:阿尔萨斯) 是什么

Arthas 是Alibaba开源的Java诊断工具

GitHub地址: Alibaba Althas 项目地址


Arthas能干什么

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:


这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?

遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?

线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!

是否有一个全局视角来查看系统的运行状况?

有什么办法可以监控到JVM的实时运行状态?

Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。


快速安装

第一种:使用arthas-boot(推荐)

下载arthas的jar包; 然后启动jar包java -jar arthas-boot.jar

wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar

image.png

启动之后会列出所有的Java进程; 选择你想要诊断的进程; 比如这里我输入 4 回车

image.png

这时候就进入的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,就会进入交互界面。

image.png

也可以执行./as.sh -h来获取更多参数信息。

如果从github下载有问题,可以使用gitee镜像

curl -L https://arthas.gitee.io/install.sh | sh


Cloud Toolkit插件一键诊断远程服务器

简单配置,无须手动安装Arthas


通过Cloud Toolkit插件使用Arthas一键诊断远程服务器


卸载

在 Linux/Unix/Mac 平台

删除下面文件:

rm -rf ~/.arthas/
rm -rf ~/logs/arthas

Windows平台直接删除user home下面的.arthas和logs/arthas目录

启动异常情况

Target process 24501 is not the process using port 3658, you will connect to an unexpected process


image.png

image.png

出现这种情况,是我们刚刚诊断了

com.shirc.arthasexample.ArthasExampleApplication的进程;

然后退出的时候用了 ctrl+c或者exit退出,其实没有把那个会话正常关闭;

下次再选择其他的进程的时候会提示你有一个会话没有正常关闭,要你去正常关闭一下;


解决方法: 重新进入刚刚那个会话;

然后执行: shutdown 正常关闭会话; 才能重新打开其他进程的会话;


正常关闭

shutdown


示例项目

可以下载我用来调试的项目 Arthas 示例项目

本Arthas系列的的文章的所有调试命令都是基于上面的项目;

先把项目拉下来,本地启动;之后就可以看到进程了

image.png


image.png

相关文章
|
4月前
|
Arthas 监控 Java
Arthas (阿尔萨斯)arthas-boot 方式安装及使用教程
Arthas (阿尔萨斯)arthas-boot 方式安装及使用教程
370 0
|
Arthas SQL Java
Arthas之WatchSql
在使用Arthas排查线上问题的时候,有些时候我们需要查看某些Sql的生成,如果线上没有完备的APM的话,那么如何临时查看呢,前几篇文章我们分析了Mybatis的插件机制,如果你还记得的话,我们可以通过watch这个插件进行查看。
1635 1
Arthas之WatchSql
|
Arthas 监控 Java
阿里arthas(阿尔萨斯)的linux安装和使用
转自https://blog.csdn.net/SDJN_ONE/article/details/123198219
913 0
阿里arthas(阿尔萨斯)的linux安装和使用
|
4月前
|
Arthas Java 测试技术
Arthas基础使用篇
Arthas基础使用篇
|
4月前
|
Arthas Java 测试技术
arthas入门
arthas入门
78 1
|
5月前
|
Arthas Java 测试技术
神器Arthas使用小结
神器Arthas使用小结
43 0
|
6月前
|
Arthas Java 测试技术
Arthas 使用
Arthas 使用
38 0
|
Arthas Java 测试技术
Arthas使用指南(下)
相关命令 仅以主要的几个命令作为展示,具体命令及参数可以参阅官方文档。
Arthas使用指南(下)
|
Arthas 运维 Java
Arthas使用指南(上)
Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。
|
Arthas Java 测试技术
Arthas之ClassLoaderLoadClass
在使用Arthas排查线上问题的时候,有些时候我们需要查看某些类有没有被加载,或者这个类的静态成员变量到底有没有被打包,又或者需要load测试一下是否正常,那么这个时候可以通过本文进行相关的操作了。
289 0
Arthas之ClassLoaderLoadClass