Chapter 13. Configuring JMX
Abstract
Red Hat JBoss Fuse uses JMX for its underlying management features. You can configure the JMX RMI port, the JMX URL, and the credentials used to access the JMX features.
Overview
Red Hat JBoss Fuse uses JMX for reporting runtime metrics and providing some limited management capabilities. You can configure how the JMX management features are accessed by changing the properties in the
org.apache.karaf.management
PID.
Changing the RMI port and JMX URL
Two of the most commonly changed parts of a container's JMX configuration are the RMI port and the JMX URL. You can set these using the properties described in Table 13.1, “JMX Access Properties”.
Property | Description |
---|---|
rmiRegistryPort | Specifies the RMI registry port. The default value is 1099. |
serviceUrl | Specifies the the URL used to connect to the JMX server. The default URL is service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-KarafName, where KarafName is the container's name (by default, root ). |
Setting the JMX username and password
In a standalone container, use any valid JAAS user credentials (see the section called “Create a secure JAAS user”).
In a fabric, the default username is
admin
and the default password is admin
.
You can change the username and password used to connect to the JMX server by configuring the JAAS security system as described in Chapter 14, Configuring JAAS Security.
Troubleshooting on Linux platforms
On Linux platforms, if you have trouble getting a remote JConsole instance to connect to the JMX server, check the following points:
- Check that the hostname resolves to the correct IP address. For example, if the
hostname -i
command returns 127.0.0.1, JConsole will not be able to connect to the JMX server. To fix this, edit the/etc/hosts
file so that the hostname resolves to the correct IP address. - Check whether the Linux machine is configured to accept packets from the host where JConsole is running (packet filtering is built in the Linux kernel). You can enter the command,
/sbin/iptables --list
, to determine whether an external client is allowed to connect to the JMX server.Use the following command to add a rule to allow an external client such as JConsole to connect:/usr/sbin/iptables -I INPUT -s JconsoleHost -p tcp --destination-port JMXRemotePort -j ACCEPT
Where JconsoleHost is either the hostname or the IP address of the host on which JConsole is running and JMXRemotePort is the TCP port exposed by the JMX server.