Chapter 7. JMX
7.1. About Java Management Extensions (JMX)
Java Management Extension (JMX) is a Java based technology that provides tools to manage and monitor applications, devices, system objects, and service oriented networks. Each of these objects is managed, and monitored by MBeans
.
JMX
is the de facto standard for middleware management and administration. As a result, JMX
is used in Red Hat JBoss Data Grid to expose management and statistical information.
7.2. Using JMX with Red Hat JBoss Data Grid
Management in Red Hat JBoss Data Grid instances aims to expose as much relevant statistical information as possible. This information allows administrators to view the state of each instance. While a single installation can comprise of tens or hundreds of such instances, it is essential to expose and present the statistical information for each of them in a clear and concise manner.
In JBoss Data Grid, JMX is used in conjunction with JBoss Operations Network (JON) to expose this information and present it in an orderly and relevant manner to the administrator.
7.3. Enabling JMX with Red Hat JBoss Data Grid
By default JMX is enabled locally on each JBoss Data Grid server, and no further configuration is necessary to connect via JConsole, VisualVM, or other JMX clients that are launched from the same system.
To enable remote connections it is necessary to define a port for the JMX remote agent to listen on. When using OpenJDK this behavior is defined with the com.sun.management.jmxremote.port
parameter. In addition, it is recommended to secure the remote connection when this is used in a production environment.
Enable JMX for Remote Connections using the OpenJDK
This example assumes that a SSL keystore, entitled keystore
has already been created, and will configure a standalone instance to accept incoming connections on port 3333 while using the created keystore.
## Default configuration, 1.3GB heap JAVA_OPTS="-server -Xms1303m -Xmx1303m -XX:MetaspaceSize=96m -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true" ## Add the JMX configuration JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=3333" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=true" JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keystore=keystore" JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.keystorePassword=password"
As JMX behavior is configured through JVM arguments, refer to the JDK vendor’s documentation for a full list of parameters and configuration examples.