Web Console === ### 通过浏览器连接arthas Arthas目前支持Web Console,用户在attach成功之后,可以直接访问:[http://127.0.0.1:8563/](http://127.0.0.1:8563/)。 可以填入IP,远程连接其它机器上的arthas。 ![](_static/web-console-local.png) > 默认情况下,arthas只listen 127.0.0.1,所以如果想从远程连接,则可以使用 `--target-ip`参数指定listen的IP,更多参考`-h`的帮助说明。 > 注意会有安全风险,考虑下面的tunnel server的方案。 后续更多Web Console功能支持,请到issue下留言:[https://github.com/alibaba/arthas/issues/15](https://github.com/alibaba/arthas/issues/15) ### 使用arthas tunnel server连接远程arthas #### 下载部署arthas tunnel server [https://github.com/alibaba/arthas/releases](https://github.com/alibaba/arthas/releases) Arthas tunnel server是一个spring boot fat jar应用,直接`java -jar`启动: ```bash java -jar arthas-tunnel-server.jar ``` 默认情况下,arthas tunnel server的web端口是`8080`,arthas agent连接的端口是`7777`。 启动之后,可以访问 [http://localhost:8080/](http://localhost:8080/) ,再通过`agentId`连接到已注册的arthas agent上。 通过Spring Boot的Endpoint,可以查看到具体的连接信息: [http://localhost:8080/actuator/arthas](http://localhost:8080/actuator/arthas) ,登陆用户名是`arthas`,密码在arthas tunnel server的日志里可以找到,比如: ``` 32851 [main] INFO o.s.b.a.s.s.UserDetailsServiceAutoConfiguration Using generated security password: f1dca050-3777-48f4-a577-6367e55a78a2 ``` #### 启动arthas时连接到tunnel server 在启动arthas,可以传递`--tunnel-server`参数,比如: ```bash as.sh --tunnel-server 'ws://47.75.156.201:7777/ws' ``` * 如果有特殊需求,可以通过`--agent-id`参数里指定agentId。默认情况下,会生成随机ID。 attach成功之后,会打印出agentId,比如: ```bash ,---. ,------. ,--------.,--. ,--. ,---. ,---. / O \ | .--. ''--. .--'| '--' | / O \ ' .-' | .-. || '--'.' | | | .--. || .-. |`. `-. | | | || |\ \ | | | | | || | | |.-' | `--' `--'`--' '--' `--' `--' `--'`--' `--'`-----' wiki https://alibaba.github.io/arthas tutorials https://alibaba.github.io/arthas/arthas-tutorials version 3.1.2 pid 86183 time 2019-08-30 15:40:53 id URJZ5L48RPBR2ALI5K4V ``` 如果是启动时没有连接到 tunnel server,也可以在后续自动重连成功之后,通过 session命令来获取 agentId: ```bash [arthas@86183]$ session Name Value ----------------------------------------------------- JAVA_PID 86183 SESSION_ID f7273eb5-e7b0-4a00-bc5b-3fe55d741882 AGENT_ID URJZ5L48RPBR2ALI5K4V TUNNEL_SERVER ws://47.75.156.201:7777/ws ``` 以上面的为例,在浏览器里访问 [http://47.75.156.201:8080/](http://47.75.156.201:8080/) ,输入 `agentId`,就可以连接到本机上的arthas了。 ![](_static/arthas-tunnel-server.png) #### Arthas tunnel server的工作原理 ``` browser <-> arthas tunnel server <-> arthas tunnel client <-> arthas agent ``` [https://github.com/alibaba/arthas/blob/master/tunnel-server/README.md](https://github.com/alibaba/arthas/blob/master/tunnel-server/README.md)