Native support for monitoring JMX applications exists in the form of a Áú»¢¶Ä²© daemon called "Áú»¢¶Ä²© Java gateway", available since Áú»¢¶Ä²© 2.0. Áú»¢¶Ä²© Java gateway is a daemon written in Java. To find out the value of a particular JMX counter on a host, Áú»¢¶Ä²© server queries Áú»¢¶Ä²© Java gateway, which uses the to query the application of interest remotely. The application does not need any additional software installed, it just has to be started with -Dcom.sun.management.jmxremote
option on the command line.
Java gateway accepts incoming connection from Áú»¢¶Ä²© server or proxy and can only be used as a "passive proxy". As opposed to Áú»¢¶Ä²© proxy, it may also be used from Áú»¢¶Ä²© proxy (Áú»¢¶Ä²© proxies cannot be chained). Access to each Java gateway is configured directly in Áú»¢¶Ä²© server or proxy configuration file, thus only one Java gateway may be configured per Áú»¢¶Ä²© server or Áú»¢¶Ä²© proxy. If a host will have items of type JMX agent and items of other type, only the JMX agent items will be passed to Java gateway for retrieval.
When an item has to be updated over Java gateway, Áú»¢¶Ä²© server or proxy will connect to the Java gateway and request the value, which Java gateway in turn retrieves and passes back to the server or proxy. As such, Java gateway does not cache any values.
Áú»¢¶Ä²© server or proxy has a specific type of processes that connect to Java gateway, controlled by the option StartJavaPollers. Internally, Java gateway starts multiple threads, controlled by the START_POLLERS option. On the server side, if a connection takes more than Timeout seconds, it will be terminated, but Java gateway might still be busy retrieving value from the JMX counter. To solve this, there is the TIMEOUT option in Java gateway that allows to set timeout for JMX network operations.
Áú»¢¶Ä²© server or proxy will try to pool requests to a single JMX target together as much as possible (affected by item intervals) and send them to the Java gateway in a single connection for better performance.
It is suggested to have StartJavaPollers less than or equal to START_POLLERS, otherwise there might be situations when no threads are available in the Java gateway to service incoming requests; in such a case Java gateway uses ThreadPoolExecutor.CallerRunsPolicy, meaning that the main thread will service the incoming request and temporarily will not accept any new requests.
You can install Java gateway either from the sources or packages downloaded from .
Using the links below you can access information how to get and run Áú»¢¶Ä²© Java gateway, how to configure Áú»¢¶Ä²© server (or Áú»¢¶Ä²© proxy) to use Áú»¢¶Ä²© Java gateway for JMX monitoring, and how to configure Áú»¢¶Ä²© items in Áú»¢¶Ä²© frontend that correspond to particular JMX counters.
Installation from | Instructions | Instructions |
---|---|---|
Sources | Installation | Setup |
RHEL/CentOS packages | Installation | Setup |
Debian/Ubuntu packages | Installation | Setup |