|
|
|
@ -165,11 +165,11 @@
|
|
|
|
|
|
|
|
|
|
<div class="section" id="arthas">
|
|
|
|
|
<span id="arthas"></span><h1>启动 Arthas<a class="headerlink" href="#arthas" title="永久链接至标题">¶</a></h1>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="">
|
|
|
|
|
<span id="id1"></span><h1>交互模式启动<a class="headerlink" href="#" title="永久链接至标题">¶</a></h1>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div>./as.sh</div></blockquote>
|
|
|
|
|
<span id="id1"></span><h2>交互模式启动<a class="headerlink" href="#" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./as.sh
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>➜ bin git:<span class="o">(</span>develop<span class="o">)</span> ✗ ./as.sh
|
|
|
|
|
Found existing java process, please choose one and hit RETURN.
|
|
|
|
|
<span class="o">[</span><span class="m">1</span><span class="o">]</span>: <span class="m">3088</span> org.jetbrains.idea.maven.server.RemoteMavenServer
|
|
|
|
@ -186,20 +186,21 @@ $
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="">
|
|
|
|
|
<span id="id2"></span><h1>非交互模式启动<a class="headerlink" href="#" title="永久链接至标题">¶</a></h1>
|
|
|
|
|
<span id="id2"></span><h2>非交互模式启动<a class="headerlink" href="#" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<p>启动脚本如下:</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div>./as.sh <PID>[@IP:PORT]</div></blockquote>
|
|
|
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>./as.sh <PID><span class="o">[</span>@IP:PORT<span class="o">]</span>
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="">
|
|
|
|
|
<span id="id3"></span><h2>参数说明<a class="headerlink" href="#" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<span id="id3"></span><h3>参数说明<a class="headerlink" href="#" title="永久链接至标题">¶</a></h3>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>PID:目标 Java 进程 ID(请确保执行当前执行命令的用户必须有足够的权限操作对应的 Java 进程)</li>
|
|
|
|
|
<li>IP:目标服务器 IP 地址,当 Arthas Server 启动后,其他人可以通过指定 IP 的形式加载到对应目标机器的 Java 进程中,从而实现远程协助。Arthas 允许多个用户同时访问,并且各自的命令不会相互干扰执行</li>
|
|
|
|
|
<li>IP:Arthas Server 侦听的地址,默认值是 <code class="docutils literal notranslate"><span class="pre">127.00.1</span></code>。Arthas允许多个用户同时访问,并且各自的命令不会相互干扰执行</li>
|
|
|
|
|
<li>PORT:目标服务器 Arthas Server 的端口号,默认的端口号是 3658</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="">
|
|
|
|
|
<span id="id4"></span><h2>示例<a class="headerlink" href="#" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<span id="id4"></span><h3>示例<a class="headerlink" href="#" title="永久链接至标题">¶</a></h3>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><p class="first">如果不指定 IP 和 PORT,默认是 127.0.0.1 和 3658</p>
|
|
|
|
|
<blockquote>
|
|
|
|
@ -213,33 +214,26 @@ $
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="">
|
|
|
|
|
<span id="id5"></span><h2>远程诊断<a class="headerlink" href="#" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<p>服务器启动 Arthas Server 后,其他人可以使用 Arthas Console Client 远程连接上去进程诊断,请参考:</p>
|
|
|
|
|
<blockquote>
|
|
|
|
|
<div>./as.sh PID@RemoteIP:RemotePort</div></blockquote>
|
|
|
|
|
<p>其中 PID 为远程服务器上的 Java 进程 ID,RemoteIP 为远程服务器的 IP 地址,RemotePort 为远程服务器上 Arthas Server 的端口,默认为 3658。</p>
|
|
|
|
|
<span id="id5"></span><h3>远程诊断<a class="headerlink" href="#" title="永久链接至标题">¶</a></h3>
|
|
|
|
|
<p>服务器启动 Arthas Server 后,其他人可以使用 telnet 远程连接上去进程诊断,例如:</p>
|
|
|
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>telnet <span class="m">192</span>.168.1.119 <span class="m">3658</span>
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="sudo">
|
|
|
|
|
<span id="sudo"></span><h2>sudo 支持<a class="headerlink" href="#sudo" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<span id="sudo"></span><h3>sudo 支持<a class="headerlink" href="#sudo" title="永久链接至标题">¶</a></h3>
|
|
|
|
|
<p>成熟的线上管理环境一般都不会直接开放 JVM 部署用户权限给你,而是通过 sudo-list 来控制和监控用户的越权操作。由于 as.sh 脚本中会对当前用户的环境变量产生感知,所以需要加上 -H 参数</p>
|
|
|
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">></span> <span class="n">sudo</span> <span class="o">-</span><span class="n">u</span> <span class="n">admin</span> <span class="o">-</span><span class="n">H</span> <span class="o">./</span><span class="k">as</span><span class="o">.</span><span class="n">sh</span> <span class="mi">12345</span>
|
|
|
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo -u admin -H ./as.sh <span class="m">12345</span>
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="telnet">
|
|
|
|
|
<span id="telnet"></span><h2>telnet 的支持<a class="headerlink" href="#telnet" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<p>Arthas 支持通过 telnet 来访问服务端,如果当你手头的机器没有安装 Arthas Console Client,你可以简单的通过 telnet 命令来进行访问。</p>
|
|
|
|
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">></span> <span class="n">telnet</span> <span class="mf">10.232</span><span class="o">.</span><span class="mf">12.113</span> <span class="mi">3658</span>
|
|
|
|
|
<div class="section" id="windows">
|
|
|
|
|
<span id="windows"></span><h3>Windows 环境支持<a class="headerlink" href="#windows" title="永久链接至标题">¶</a></h3>
|
|
|
|
|
<p>目前<code class="docutils literal notranslate"><span class="pre">as.bat</span></code>脚本只支持一个参数:pid</p>
|
|
|
|
|
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>as.bat <pid>
|
|
|
|
|
</pre></div>
|
|
|
|
|
</div>
|
|
|
|
|
<p>当然了,telnet 命令没有 <code class="docutils literal notranslate"><span class="pre">Tab</span></code> 自动补全,各种操作体验也不如 Arthas Client Console。</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section" id="windows">
|
|
|
|
|
<span id="windows"></span><h2>Windows 环境支持<a class="headerlink" href="#windows" title="永久链接至标题">¶</a></h2>
|
|
|
|
|
<ul class="simple">
|
|
|
|
|
<li>目前 Arthas 提供了 <code class="docutils literal notranslate"><span class="pre">as.bat</span></code> 脚本,用于 Windows 环境下的诊断场景;此脚本暂时只接受一个参数 pid,即只能诊断本机上的 Java 进程;</li>
|
|
|
|
|
<li>另外,<code class="docutils literal notranslate"><span class="pre">as.bat</span></code> 脚本在体验方面还有一些问题,如果需要更好的体验,可以在本地使用 <code class="docutils literal notranslate"><span class="pre">as.bat</span> <span class="pre">pid</span></code> 启动 Arthas Server 后,然后在另外的 Linux/Mac 上使用 as.bat pid@ip:port 来远程诊断;</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|