09 Dec 2019
Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
arthas支持web console,但是那个web页面只能一次访问单台机器,为了方便管理,最好是使用arthas tunnel server。
arthas tunnel server的工作原理是:
browser <-> arthas tunnel server <-> arthas tunnel client <-> arthas agent
PS: 这样我们就可以通过一个固定的web界面,通过输入不同的agent id,然后来排查不同服务器上的jvm了。
ARTHAS_TUNNEL_SERVER_DIR=/usr/local/arthas-tunnel-server [[ -d ${ARTHAS_TUNNEL_SERVER_DIR} ]] || mkdir -p ${ARTHAS_TUNNEL_SERVER_DIR} # download arthas-tunnel-server wget https://github.com/alibaba/arthas/releases/download/arthas-all-3.1.7/arthas-tunnel-server-3.1.7.jar \ -o ${ARTHAS_TUNNEL_SERVER_DIR}/arthas-tunnel-server.jar cat << EOF > ${ARTHAS_TUNNEL_SERVER_DIR}/asts.sh nohup java -jar ${ARTHAS_TUNNEL_SERVER_DIR}//arthas-tunnel-server.jar & EOF cd ${ARTHAS_TUNNEL_SERVER_DIR} && sh ${ARTHAS_TUNNEL_SERVER_DIR}/asts.sh
JAVA_HOME=/usr/java/jdk1.7.0_79 ARTHAS_AGENT_DIR=/usr/local/arthas-agent ARTHAS_TUNNEL_SERVER=127.0.0.1 [[ -d ${ARTHAS_AGENT_DIR} ]] || mkdir -p ${ARTHAS_AGENT_DIR} cd ${ARTHAS_AGENT_DIR} && wget https://alibaba.github.io/arthas/arthas-boot.jar # start agent cat << EOF > ${ARTHAS_AGENT_DIR}/startup.sh sudo -u tomcat -EH ${JAVA_HOME}/bin/java -jar ${ARTHAS_AGENT_DIR}/arthas-boot.jar --tunnel-server 'ws://${ARTHAS_TUNNEL_SERVER}:7777/ws' EOF sh ${ARTHAS_AGENT_DIR}/startup.sh