https://arthas.aliyun.com/doc/
curl -O https://arthas.aliyun.com/arthas-boot.jar
如果服务器无法访问互联网,也可以通过手动下载压缩包的放到服务器中解压
通过 lsof -i :[port] 或者 ps -aux | grep [service-name] 其中 [port]是服务的端口号, [service-name]服务的名称
java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar
这里如果已经配合了jjava的环境。则可以使用以上的命令运行,只要将arthas-boot.jar的路径改为自己实际中的路径即可。如果没有配置java环境,则需要到指定jdk的bin目录运行语句:
./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar
例如如图 进程18957对应的是 10,所以我们输入 10
这样我们就可以使用Arthas的命令了。
命令的结束可以使用 ctrl + c 或者 q 结束。如果退出Arthas则使用 stop命令即可。
执行命令 : options json-format true
执行命令: options save-result true
执行命令: options dump true
运行 : ./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar 或者 ./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar [pid]
报错:
[INFO] arthas-boot version: 3.3.9
[INFO] Can not find java process. Try to pass in command line.
Please select an available pid.
原因:---- 只装jre的环境或者安装的是严格版的jre 没办法运行 arthas-boot.jar ,需要安装完整的jdk。
./java -jar /home/hik/arthas-packaging-3.3.9-bin/arthas-boot.jar
提示没有java命令
原因:---- 没有配置jdk环境,需要配置jdk环境 或者 到指定jdk安装目录的bin目录下执行
The telnet port 3658 is used by process 20017 instead of target process 18957, you will connect to an unexpected process.
原因: -- 之前已经使用Arthas运行了20017的进程,但是没有退出,先要进到原来的监控中运行stop命令。
运行 : ./java -jar /home/hik/arthas/arthas-boot.jar
[ERROR] Start arthas failed, exception stack trace:
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at sun.tools.attach.LinuxVirtualMachine.(LinuxVirtualMachine.java:106)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:78)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:250)
at com.taobao.arthas.core.Arthas.attachAgent(Arthas.java:86)
at com.taobao.arthas.core.Arthas.(Arthas.java:28)
at com.taobao.arthas.core.Arthas.main(Arthas.java:124)
解决办法 : 运行时加上进程号 ./java -jar /home/hik/arthas/arthas-boot.jar 12054