Arthas的Web Console简单实现

2,605 阅读2分钟

Arthas介绍

Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具。让我们能够在线排查项目发生的问题。

Arthas的Web Console实现

Web Console的基础实现

通过官网上面的介绍arthas的Web Console。能了解到大致的方向。

  1. 通过下载arthas-tunnel-server。我们可以拿到对应的arthasserver端。下载完毕之后直接运行即可(我是将其在ECS上直接运行)。

  2. 在客户端对应的启动arthas-boot。并且通过启动参数附加上server的地址(我是将其在本地运行)。

  3. 选择对应的进程进行attach,会出现对应的agent-id,再将其填写到对应的serverhttp页面中。

  4. 最后我们就可以再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就是多😁)。