|
|
|
|
|
|
|
|
<!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>Arthas Tunnel — Arthas 3.4.6 文档</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 Spring Boot Starter" href="spring-boot-starter.html" />
|
|
|
<link rel="prev" title="options" href="options.html" />
|
|
|
<script>
|
|
|
if (window.location.href.startsWith("https://alibaba.github.io/arthas/")) {
|
|
|
window.location.href = "https://arthas.aliyun.com/doc/" + window.location.href.substr("https://alibaba.github.io/arthas/".length);
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<script src="_static/center_page.js"></script>
|
|
|
<link rel="stylesheet" href="https://g.alicdn.com/code/lib/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.4.6
|
|
|
</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://arthas.aliyun.com/">首页</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://mp.weixin.qq.com/s/k5jozrSgmyH0tcQfrDkxUQ">招聘!</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://developer.aliyun.com/article/751641">技术征文</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/en/">English Docs</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn">在线教程(katacoda)</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://start.aliyun.com/handson-lab/#%21category=arthas">在线教程(阿里云)</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"><a class="reference internal" href="web-console.html">WebConsole</a></li>
|
|
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Arthas Tunnel</a><ul>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="web-console.html">Web Console</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="spring-boot-starter.html">Arthas Spring Boot Starter</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#arthas-tunnel-server">下载部署arthas tunnel server</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#arthastunnel-server">启动arthas时连接到tunnel server</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#id1">最佳实践</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#id2">集群方式管理</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#id3">Arthas tunnel server的工作原理</a></li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="http-api.html">Http API</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="spring-boot-starter.html">Arthas Spring Boot Starter</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="idea-plugin.html">IDEA 插件</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 internal" href="faq.html">FAQ/常见问题</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Star 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> »</li>
|
|
|
|
|
|
<li>Arthas Tunnel</li>
|
|
|
|
|
|
|
|
|
<li class="wy-breadcrumbs-aside">
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/tunnel.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="arthas-tunnel">
|
|
|
<h1>Arthas Tunnel<a class="headerlink" href="#arthas-tunnel" title="永久链接至标题">¶</a></h1>
|
|
|
<p>通过Arthas Tunnel Server/Client 来远程管理/连接多个Agent。</p>
|
|
|
<p>比如,在流式计算里,Java进程可以是在不同的机器启动的,想要使用Arthas去诊断会比较麻烦,因为用户通常没有机器的权限,即使登陆机器也分不清是哪个Java进程。</p>
|
|
|
<p>在这种情况下,可以使用Arthas Tunnel Server/Client。</p>
|
|
|
<p>参考:</p>
|
|
|
<div class="toctree-wrapper compound">
|
|
|
<ul>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="web-console.html">Web Console</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="spring-boot-starter.html">Arthas Spring Boot Starter</a></li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="section" id="arthas-tunnel-server">
|
|
|
<h2>下载部署arthas tunnel server<a class="headerlink" href="#arthas-tunnel-server" title="永久链接至标题">¶</a></h2>
|
|
|
<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://127.0.0.1:8080/">http://127.0.0.1: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://127.0.0.1:8080/actuator/arthas">http://127.0.0.1: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">
|
|
|
<h2>启动arthas时连接到tunnel server<a class="headerlink" href="#arthastunnel-server" title="永久链接至标题">¶</a></h2>
|
|
|
<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 'ws://127.0.0.1:7777/ws'</pre></div>
|
|
|
</div>
|
|
|
<p>也可以使用下面的测试地址(不保证一直可用):</p>
|
|
|
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">as.sh --tunnel-server 'ws://47.75.156.201:80/ws'</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 \ | .--. ''--. .--'| '--' | / O \ ' .-'
|
|
|
| .-. || '--'.' | | | .--. || .-. |`. `-.
|
|
|
| | | || |\ \ | | | | | || | | |.-' |
|
|
|
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
|
|
|
|
|
|
wiki https://arthas.aliyun.com/doc
|
|
|
tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html
|
|
|
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:80/ws</pre></div>
|
|
|
</div>
|
|
|
<p>以上面的为例,在浏览器里访问 <a class="reference external" href="http://47.75.156.201/arthas/?port=80">http://47.75.156.201/arthas/?port=80</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">
|
|
|
<h2>最佳实践<a class="headerlink" href="#id1" title="永久链接至标题">¶</a></h2>
|
|
|
<p>如果 arthas agent配置了 <code class="docutils literal notranslate"><span class="pre">appName</span></code>,则生成的agentId会带上<code class="docutils literal notranslate"><span class="pre">appName</span></code>的前缀。</p>
|
|
|
<p>比如在加上启动参数:<code class="docutils literal notranslate"><span class="pre">as.sh</span> <span class="pre">--tunnel-server</span> <span class="pre">'ws://127.0.0.1:7777/ws'</span> <span class="pre">--app-name</span> <span class="pre">demoapp</span></code> ,则生成的agentId可能是<code class="docutils literal notranslate"><span class="pre">demoapp_URJZ5L48RPBR2ALI5K4V</span></code>。</p>
|
|
|
<p>Tunnel server会以<code class="docutils literal notranslate"><span class="pre">_</span></code>做分隔符,提取出<code class="docutils literal notranslate"><span class="pre">appName</span></code>,方便按应用进行管理。</p>
|
|
|
<blockquote>
|
|
|
<div><p>另外,也可以在解压的arthas目录下的 <code class="docutils literal notranslate"><span class="pre">arthas.properties</span></code>,或者在spring boot应用的<code class="docutils literal notranslate"><span class="pre">application.properties</span></code>里配置<code class="docutils literal notranslate"><span class="pre">appName</span></code>。</p>
|
|
|
</div></blockquote>
|
|
|
</div>
|
|
|
<div class="section" id="id2">
|
|
|
<h2>集群方式管理<a class="headerlink" href="#id2" title="永久链接至标题">¶</a></h2>
|
|
|
<p>如果希望部署多台 tunnel server,可以通过nginx做转发,redis来保存agent信息。</p>
|
|
|
</div>
|
|
|
<div class="section" id="id3">
|
|
|
<h2>Arthas tunnel server的工作原理<a class="headerlink" href="#id3" title="永久链接至标题">¶</a></h2>
|
|
|
<div class="highlight-default notranslate"><pre class="literal-block">browser <-> arthas tunnel server <-> arthas tunnel client <-> 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>
|
|
|
<footer>
|
|
|
|
|
|
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
|
|
|
|
|
<a href="spring-boot-starter.html" class="btn btn-neutral float-right" title="Arthas Spring Boot Starter" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
|
|
|
|
|
|
|
|
|
<a href="options.html" class="btn btn-neutral float-left" title="options" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
<div role="contentinfo">
|
|
|
<p>
|
|
|
© Copyright 2018-2020, 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://g.alicdn.com/code/lib/highlight.js/9.13.1/highlight.min.js"></script>
|
|
|
<script src="https://g.alicdn.com/code/lib/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 type="text/javascript">document.write(unescape("%3Cspan style='display:none;' id='cnzz_stat_icon_1279151497'%3E%3C/span%3E%3Cscript src='https://s4.cnzz.com/z_stat.php%3Fid%3D1279151497' type='text/javascript'%3E%3C/script%3E"));</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> |