tomcat Enabling JMX Remote

wiki 利用JMX做存活监控

cat /opt/wiki/work/bin/setenv.sh | grep jmxremote
CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8410 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Duser.timezone=Asia/Shanghai ${CATALINA_OPTS}"

 

关于如何Enabling JMX Remote,参考如下:

http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote

 

The Sun website includes the list of options and how to configure JMX Remote on Java 5:http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html.

For quick installation you find here a short installation guide:

Add the following parameters to your Tomcat startup script:

    set CATALINA_OPTS=-Dcom.sun.management.jmxremote \
    -Dcom.sun.management.jmxremote.port=%my.jmx.port% \
    -Dcom.sun.management.jmxremote.ssl=false \
    -Dcom.sun.management.jmxremote.authenticate=false
    

 

 

  1. When you think authorization is a good, add and change this :
        -Dcom.sun.management.jmxremote.authenticate=true \
        -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password \
        -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access \
        
  2. edit the access allow file $CATALINA_BASE/conf/jmxremote.access :
    monitorRole readonly
    controlRole readwrite
        
  3. edit the password file $CATALINA_BASE/conf/jmxremote.password :
    monitorRole tomcat
    controlRole tomcat
        
    Tip: Password File must be readonly and not accessible from every other user! Remove all other users under windows to access this file.

Note:The JSR 160 JMX-Adaptor opens a second data protocol port. That is a problem when you have installed a local firewall. However, there is at least one possible workaround: using a custom JMXConnectorServer.

 

Start a JMX Adaptor with fix data port is supported with Tomcat 5.5.25 src release:

<Server ...>
...
<Listener className="org.apache.catalina.mbeans.JMXAdaptorLifecycleListener"
          namingPort="8083" port="8084" host="myhost" />  
...
</Server>
   

You can use all JMX system properties (com.sun.management.jmxremote.xxx) to configure the adaptor :-) 
At your remote jconsole call the jmx adaptor with following command 
jconsole service:jmx:rmi://myhost:8084/jndi/rmi://myhost:8083/server

 

Activate JMX MX4J Http Adaptor with Java 1.4:

  1. Install the tomcat compat package
  2. Install the mx4j-tools.jar at common/lib. Please, use the same MX4j version as your Tomcat release
  3. Configure a MX4J JMX HTTP Adaptor at your AJP Connector

     

          <Connector port="${AJP.PORT}" 
                handler.list="mx" 
                mx.enabled="true" 
                mx.httpHost="${JMX.HOST}"
                mx.httpPort="${JMX.PORT}"
                protocol="AJP/1.3" />
          

     

    Tip: With ${AJP.PORT}=0 no ajp connection where started.

    Note: MX4J JSR 160 RMI Adaptor to support JDK 1.4 currently not integrated.

  4. Start your Tomcat and look with a browser at http://${JMX.HOST}:${JMX.PORT}
  5. With the mx connector parameter mx.authMode="basic" mx.authUser="tomcat" mx.authPassword="strange" you can control the access!
  6. A complete list of all Tomcat core MBeans can you find at http://tomcat.apache.org/tomcat-5.5-doc/catalina/funcspecs/mbean-names.html.
posted @ 2016-12-02 11:23  番茄土豆西红柿  阅读(351)  评论(0编辑  收藏  举报
TOP