简介


JMX连接

        JMX连接方式参考Apache官网介绍的方法(http://tomcat.apache.org/tomcat-8.0-doc/config/listeners.html#JMX_Remote_Lifecycle_Listener_-_org.apache.catalina.mbeans.JmxRemoteLifecycleListener),以下是我的实际步骤。

1、下载catalina-jmx-remote.jar包(点击下载),放至tomcat/lib文件夹下;

2、编辑tomcat/conf/server.xml,添加监听端口

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
          rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />


3、编辑tomcat/bin/catalina.sh,在JAVA_OPTS中添加系统配置,注意,此段配置要加在$CATALINA_BASE定义之后,否则tomcat会因为找不到$CATALINA_BASE而启动失败;

export JAVA_OPTS="-server
  -Dfile.encoding=UTF-8 \
  -Dcatalina.logbase=/var/log/tomcat7 \
  -Dnet.sf.ehcache.skipUpdateCheck=true \
  -XX:+DoEscapeAnalysis \
  -XX:+UseConcMarkSweepGC \
  -XX:+CMSClassUnloadingEnabled \
  -XX:+UseParNewGC \
  -Xms1536m -Xmx1536m \
  -Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password \
  -Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access \
  -Dcom.sun.management.jmxremote.ssl=false"


4、在tomcat/conf/下新建jmxremote.password和jmxremote.access文件,其中jmxremote. password存放JMX连接时的安全凭证,jmxremote.access标明账号权限;

skywalking jvm 监控 jvm远程监控_jvm

5、编辑iptables,打开10001和10002两个端口,重启iptables;

service iptables restart

6、启动tomcat即可。


jstatd连接

1、在jdk的bin目录下新建文件jstatd.all.policy文件,编辑内容:

grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermission;
};


2、在当前目录(jdk/bin)下,执行如下命令,其中 123.59.46.165 为本机(远程服务器)IP,&表示用守护进程方式运行

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=123.59.46.165 &


3、执行命令jps,查看找到jstatd的pid,执行命令netstat -autup | grep pid,查看监听的除默认1099端口外的另一个端口,此处为35934;

skywalking jvm 监控 jvm远程监控_visualvm_02

4、编辑iptables,打开1099和35934端口,重启iptables。


问题


解决

1、编辑/etc/hosts,添加一行,使本机IP和hostname对应;

123.59.46.165   fraborna


2、编辑/etc/sysconfig/network,编辑hostname;

HOSTNAME=fraborna


3、执行命令;

hostname fraborna


4、执行hostname -i查看,返回的应该是本机IP。


总结