|
|
|
|
|
|
|
|
<!DOCTYPE html>
|
|
|
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
|
|
|
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
|
|
|
<head>
|
|
|
<meta charset="utf-8">
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
<title>Arthas Tunnel — Arthas 3.4.8 documentation</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/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="Index" href="genindex.html" />
|
|
|
<link rel="search" title="Search" 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.8
|
|
|
</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/">Home</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://arthas.aliyun.com/doc/arthas-tutorials.html?language=en">Online tutorials(Recommend)</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="download.html">Download</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</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="#download-and-deploy-arthas-tunnel-server">Download and deploy arthas tunnel server</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#connecting-to-the-tunnel-server-when-starting-arthas">Connecting to the tunnel server when starting arthas</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#best-practices">Best practices</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#cluster-management">Cluster Management</a></li>
|
|
|
<li class="toctree-l2"><a class="reference internal" href="#how-arthas-tunnel-server-works">How arthas tunnel server works</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 Plugin</a></li>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</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#">Compile and debug/CONTRIBUTING</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">Contact us</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/en/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="Permalink to this headline">¶</a></h1>
|
|
|
<p>Manage/connect multiple Agents remotely via Arthas Tunnel Server/Client.</p>
|
|
|
<p>For example, in streaming computing, Java processes can be started on different machines, and it can be difficult to use Arthas to diagnose them, because the user usually does not have access to the machine.</p>
|
|
|
<p>In this case, Arthas Tunnel Server/Client can be used.</p>
|
|
|
<p>Reference:</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="download-and-deploy-arthas-tunnel-server">
|
|
|
<h2>Download and deploy arthas tunnel server<a class="headerlink" href="#download-and-deploy-arthas-tunnel-server" title="Permalink to this headline">¶</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 is a spring boot fat jar application, start with the <code class="docutils literal notranslate"><span class="pre">java</span> <span class="pre">-jar</span></code> command:</p>
|
|
|
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">java -jar arthas-tunnel-server.jar</pre></div>
|
|
|
</div>
|
|
|
<p>By default, the web port of the arthas tunnel server is <code class="docutils literal notranslate"><span class="pre">8080</span></code>, and the port connected by the arthas agent is <code class="docutils literal notranslate"><span class="pre">7777</span></code>.</p>
|
|
|
<p>Once started, you can go to <a class="reference external" href="http://127.0.0.1:8080/">http://127.0.0.1:8080/</a> and connect to the registered arthas agent via <code class="docutils literal notranslate"><span class="pre">agentId</span></code>.</p>
|
|
|
<p>Through Spring Boot’s Endpoint, you can view the specific connection information: <a class="reference external" href="http://127.0.0.1:8080/actuator/arthas">http://127.0.0.1:8080/actuator/arthas</a>, the login user name is <code class="docutils literal notranslate"><span class="pre">arthas</span></code>, and the password can be found in the log of arthas tunnel server, for example:</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="connecting-to-the-tunnel-server-when-starting-arthas">
|
|
|
<h2>Connecting to the tunnel server when starting arthas<a class="headerlink" href="#connecting-to-the-tunnel-server-when-starting-arthas" title="Permalink to this headline">¶</a></h2>
|
|
|
<p>When starting arthas, you can use the <code class="docutils literal notranslate"><span class="pre">--tunnel-server</span></code> parameter, for example:</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>You can also use the following test address (not guaranteed to be available all the time):</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>You can specify the agentId by the <code class="docutils literal notranslate"><span class="pre">--agent-id</span></code> parameter. By default, a random ID is generated.</p></li>
|
|
|
</ul>
|
|
|
<p>After Arthas attach succeeds, the agentId will be printed, such as:</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>If the connection is not connected to the tunnel server at startup, you can also obtain the agentId through the <code class="docutils literal notranslate"><span class="pre">session</span></code> command after reconnection succeeds:</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>For the above example, go to <a class="reference external" href="http://47.75.156.201/arthas/?port=80">http://47.75.156.201/arthas/?port=80</a> in the browser and input the <code class="docutils literal notranslate"><span class="pre">agentId</span></code> to connect to arthas on remote machine.</p>
|
|
|
<p><img alt="_images/arthas-tunnel-server.png" src="_images/arthas-tunnel-server.png" /></p>
|
|
|
</div>
|
|
|
<div class="section" id="best-practices">
|
|
|
<h2>Best practices<a class="headerlink" href="#best-practices" title="Permalink to this headline">¶</a></h2>
|
|
|
<p>If the arthas agent is configured with <code class="docutils literal notranslate"><span class="pre">appName</span></code>, the generated agentId will be prefixed with <code class="docutils literal notranslate"><span class="pre">appName</span></code>.</p>
|
|
|
<p>For example, if you add the startup parameter <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>, the generated agentId might be <code class="docutils literal notranslate"><span class="pre">demoapp_URJZ5L48RPBR2ALI5K4V</span></code>.</p>
|
|
|
<p>Tunnel server will use <code class="docutils literal notranslate"><span class="pre">_</span></code> as a delimiter to extract <code class="docutils literal notranslate"><span class="pre">appName</span></code>, which is convenient to manage by application.</p>
|
|
|
<blockquote>
|
|
|
<div><p>Alternatively, you can configure <code class="docutils literal notranslate"><span class="pre">appName</span></code> in <code class="docutils literal notranslate"><span class="pre">arthas.properties</span></code> in the unzipped arthas directory, or in <code class="docutils literal notranslate"><span class="pre">application.properties</span></code> of the spring boot application.</p>
|
|
|
</div></blockquote>
|
|
|
</div>
|
|
|
<div class="section" id="cluster-management">
|
|
|
<h2>Cluster Management<a class="headerlink" href="#cluster-management" title="Permalink to this headline">¶</a></h2>
|
|
|
<p>If you want to deploy multiple tunnel servers, you can use nginx for forwarding and redis to store agent information.</p>
|
|
|
</div>
|
|
|
<div class="section" id="how-arthas-tunnel-server-works">
|
|
|
<h2>How arthas tunnel server works<a class="headerlink" href="#how-arthas-tunnel-server-works" title="Permalink to this headline">¶</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> |