Files
arthas/web-console.html
T
2020-02-07 18:10:46 +08:00

338 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="zh-CN" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="zh-CN" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Web Console &mdash; Arthas 3.1.7 文档</title>
<link rel="shortcut icon" href="_static/favicon.ico"/>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/translations.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="索引" href="genindex.html" />
<link rel="search" title="搜索" href="search.html" />
<link rel="next" title="Arthas异步调用" href="async.html" />
<link rel="prev" title="进阶使用" href="advanced-use.html" />
<script src="_static/center_page.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
3.1.7
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/677GO-3kYx5ygG9rlOlfQg">招聘信息</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/en/">English Docs</a></li>
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=cn">在线教程(推荐)</a></li>
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">安装</a></li>
<li class="toctree-l1"><a class="reference internal" href="download.html">下载</a></li>
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">快速入门</a></li>
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">进阶使用</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">命令列表</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">WebConsole</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#arthas">通过浏览器连接arthas</a></li>
<li class="toctree-l2"><a class="reference internal" href="#arthas-tunnel-serverarthas">使用arthas tunnel server连接远程arthas</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#arthas-tunnel-server">下载部署arthas tunnel server</a></li>
<li class="toctree-l3"><a class="reference internal" href="#arthastunnel-server">启动arthas时连接到tunnel server</a></li>
<li class="toctree-l3"><a class="reference internal" href="#id1">Arthas tunnel server的工作原理</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">用户案例</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">常见问题</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md#">编译调试/参与贡献</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">QQ群/钉钉群</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="advanced-use.html">进阶使用</a> &raquo;</li>
<li>Web Console</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/web-console.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="web-console">
<h1>Web Console<a class="headerlink" href="#web-console" title="永久链接至标题"></a></h1>
<div class="section" id="arthas">
<h2>通过浏览器连接arthas<a class="headerlink" href="#arthas" title="永久链接至标题"></a></h2>
<p>Arthas目前支持Web Console,用户在attach成功之后,可以直接访问:<a class="reference external" href="http://127.0.0.1:3658/">http://127.0.0.1:3658/</a></p>
<p>可以填入IP,远程连接其它机器上的arthas。</p>
<p><img alt="_images/web-console-local.png" src="_images/web-console-local.png" /></p>
<blockquote>
<div><p>默认情况下,arthas只listen 127.0.0.1,所以如果想从远程连接,则可以使用 <code class="docutils literal notranslate"><span class="pre">--target-ip</span></code>参数指定listen的IP,更多参考<code class="docutils literal notranslate"><span class="pre">-h</span></code>的帮助说明。
注意会有安全风险,考虑下面的tunnel server的方案。</p>
</div></blockquote>
<p>后续更多Web Console功能支持,请到issue下留言:<a class="reference external" href="https://github.com/alibaba/arthas/issues/15">https://github.com/alibaba/arthas/issues/15</a></p>
</div>
<div class="section" id="arthas-tunnel-serverarthas">
<h2>使用arthas tunnel server连接远程arthas<a class="headerlink" href="#arthas-tunnel-serverarthas" title="永久链接至标题"></a></h2>
<div class="section" id="arthas-tunnel-server">
<h3>下载部署arthas tunnel server<a class="headerlink" href="#arthas-tunnel-server" title="永久链接至标题"></a></h3>
<p><a class="reference external" href="https://github.com/alibaba/arthas/releases">https://github.com/alibaba/arthas/releases</a></p>
<p>Arthas tunnel server是一个spring boot fat jar应用,直接<code class="docutils literal notranslate"><span class="pre">java</span> <span class="pre">-jar</span></code>启动:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">java -jar arthas-tunnel-server.jar</pre></div>
</div>
<p>默认情况下,arthas tunnel server的web端口是<code class="docutils literal notranslate"><span class="pre">8080</span></code>arthas agent连接的端口是<code class="docutils literal notranslate"><span class="pre">7777</span></code></p>
<p>启动之后,可以访问 <a class="reference external" href="http://localhost:8080/">http://localhost:8080/</a> ,再通过<code class="docutils literal notranslate"><span class="pre">agentId</span></code>连接到已注册的arthas agent上。</p>
<p>通过Spring Boot的Endpoint,可以查看到具体的连接信息: <a class="reference external" href="http://localhost:8080/actuator/arthas">http://localhost:8080/actuator/arthas</a> ,登陆用户名是<code class="docutils literal notranslate"><span class="pre">arthas</span></code>,密码在arthas tunnel server的日志里可以找到,比如:</p>
<div class="highlight-default notranslate"><pre class="literal-block">32851 [main] INFO o.s.b.a.s.s.UserDetailsServiceAutoConfiguration
Using generated security password: f1dca050-3777-48f4-a577-6367e55a78a2</pre>
</div>
</div>
<div class="section" id="arthastunnel-server">
<h3>启动arthas时连接到tunnel server<a class="headerlink" href="#arthastunnel-server" title="永久链接至标题"></a></h3>
<p>在启动arthas,可以传递<code class="docutils literal notranslate"><span class="pre">--tunnel-server</span></code>参数,比如:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">as.sh --tunnel-server &#x27;ws://47.75.156.201:7777/ws&#x27;</pre></div>
</div>
<ul class="simple">
<li><p>如果有特殊需求,可以通过<code class="docutils literal notranslate"><span class="pre">--agent-id</span></code>参数里指定agentId。默认情况下,会生成随机ID。</p></li>
</ul>
<p>attach成功之后,会打印出agentId,比如:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash"> ,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O \ | .--. &#x27;&#x27;--. .--&#x27;| &#x27;--&#x27; | / O \ &#x27; .-&#x27;
| .-. || &#x27;--&#x27;.&#x27; | | | .--. || .-. |`. `-.
| | | || |\ \ | | | | | || | | |.-&#x27; |
`--&#x27; `--&#x27;`--&#x27; &#x27;--&#x27; `--&#x27; `--&#x27; `--&#x27;`--&#x27; `--&#x27;`-----&#x27;
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</pre></div>
</div>
<p>如果是启动时没有连接到 tunnel server,也可以在后续自动重连成功之后,通过 session命令来获取 agentId</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="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</pre></div>
</div>
<p>以上面的为例,在浏览器里访问 <a class="reference external" href="http://47.75.156.201:8080/">http://47.75.156.201:8080/</a> ,输入 <code class="docutils literal notranslate"><span class="pre">agentId</span></code>,就可以连接到本机上的arthas了。</p>
<p><img alt="_images/arthas-tunnel-server.png" src="_images/arthas-tunnel-server.png" /></p>
</div>
<div class="section" id="id1">
<h3>Arthas tunnel server的工作原理<a class="headerlink" href="#id1" title="永久链接至标题"></a></h3>
<div class="highlight-default notranslate"><pre class="literal-block">browser &lt;-&gt; arthas tunnel server &lt;-&gt; arthas tunnel client &lt;-&gt; arthas agent</pre>
</div>
<p><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/tunnel-server/README.md#">tunnel-server/README.md</a></p>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="async.html" class="btn btn-neutral float-right" title="Arthas异步调用" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="advanced-use.html" class="btn btn-neutral float-left" title="进阶使用" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2018-2019, Alibaba Middleware Group, and contributors
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js"></script>
<script>
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
});
</script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>