Arthas介绍
Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具。让我们能够在线排查项目发生的问题。
Arthas的Web Console实现
Web Console的基础实现
通过官网上面的介绍arthas的Web Console。能了解到大致的方向。
-
通过下载arthas-tunnel-server。我们可以拿到对应的
arthas
的server
端。下载完毕之后直接运行即可(我是将其在ECS上直接运行)。 -
在客户端对应的启动
arthas-boot
。并且通过启动参数附加上server
的地址(我是将其在本地运行)。 -
选择对应的进程进行
attach
,会出现对应的agent-id
,再将其填写到对应的server
端http
页面中。 -
最后我们就可以再
server
端进行操作,即Web Console
实现完成。
Web Console的需求点
从上面的步骤来看,我们完全有理由可以直接在
client
端进行操作,干嘛需要多此一举(造轮子)?需要理由如下:
-
在服务直接部署在服务器上或者
ECS
云服务器情况下。我们可以直接运行在对应的client
端,但是我们如何上到各个服务所在的服务器上?通过跳板机?那么我们是不是操作的时候会有可能对应服务器造成影响,直接连接服务器上是肯定不行的。 -
服务在所运行的
pod
情况下。此时让你连接服务是影响是比上面的情况会小很多,如果发生影响也只是影响到当前运行的pod
。但是如果你想直接连接pod,那么需要的将对应的pod端口需要映射到对应的宿主机上,然后再提供外部访问ecs
的链接。这样会使得每次pod需要映射出去的端口需要一定的规则,无疑是加大了运维等工作,运行则也消耗了当前的资源(访问页面等等则走http接口请求,如果通过ws连接,减少7层方面消耗)。 -
如果通过上述方法,那么我们可以再一台机器上运行
server
即可,我们每次访问都通过访问server
去连接到到对应的client
端,同时对应的agent-id
可以指定,我们可以每次pod进行client
运行的时候指定当前的agent-id
,让其与当前的pod
进行一个绑定,便于我们通过server
进行连接。
上述只是对应的
Web Console
简单介绍,这里我们可以不需要过多在意,关键是会使用arthas
命令!!!!!这样你可以光明正大的从CV
工程师转为arthas
工程师(bug就是多😁)。