Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
很多公司目前都在使用k8s,我们可以进入pod,下载arthas,并使用arthas进行监控.

安装步骤

1、找到需要进行监控的pod

kubectl get pods -n namespace

2、进入pod

kubectl exec -it myservice -n namespace /bin/bash

3、新建一个目录或直接下载arthas
3、1 新建目录

mkdir arthas

3、2 下载arthas

curl -O https://arthas.aliyun.com/arthas-boot.jar

4、启动arthas

java -jar arthas-boot.jar

正常情况下是可以直接看到启动日志的在这里插入图片描述
但是如果docker中的基础镜像中的jdk是不完整的话,会报各种问题.
下面记录一下我遇到的问题
Q1:在这里插入图片描述
看日志说的是让我加上需要监控的进程的pid.
通过命令查看pid,可以看到就是1
在这里插入图片描述
于是在命令后面加上1
在这里插入图片描述
这个时候又报了tool.jar找不到,网上各种百度之后,总结两种解决办法
1、下载一个新的完整的jdk,并把环境变量改成当前新的jdk.
2、下载一个新的完整的jdk,根据上面的提示信息运行命令即可.
下面演示一下第二种解决办法,第一种网上比较多,直接把环境变量中的${JAVAHOME}改成目前的地址
下载jdk:

wget -q -O /opt/jdk-8u141-linux-x64.tar.gz --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

解压:

tar zxvf jdk-8u141-linux-x64.tar.gz

执行命令

/opt/jdk解压后的文件夹/jre/bin/java -jar arthas-boot.jar

⚠️注意
此时arthas-boot.jar 要在当前目录中,否则需要指定arthas所在的地址

/opt/jdk解压后的文件夹/jre/bin/java -jar /application/arthas-boot.jar

Arthas的使用

可以直接在官网学习,每个命令都讲的非常详细.
arthas官网

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐