JmxMonitor

The JMX monitor allows to test service availability of Java applications. The monitor offers the following functionalities:

  • test the application’s connectivity via JMX

  • existence of management beans

  • test the status of a single or multiple management beans and evaluate their value

Monitor Facts

Class Name

org.opennms.netmgt.poller.monitors.Jsr160Monitor

Remote Enabled

true

Configuration and Use

Table 1. Monitor specific parameters for the JmxMonitor
Parameter Description Required Default value

retry

Number of attempts to get a response

optional

3

timeout

Time in milliseconds to wait for a response

optional

?

port

Destination port where the JMX requests shall be sent

optional

from jmx-config.xml

factory

Set this to PASSWORD-CLEAR if credentials are required

optional

STANDARD

protocol

Protocol used in the JMX connection string

optional

rmi

urlPath

Path used in JMX connection string

optional

/jmxrmi

rmiServerPort

RMI port

optional

45444

remoteJMX

Use an alternative JMX URL scheme

optional

false

beans.<variable>

Defines a mbeans objectname to access. The ´<variable>´ name is arbitrary.

optional

-

tests.<variable>

Tests a mbeans attribute value. The ´<variable>´ name is arbitrary.

optional

-

Examples

Test if a JMX connection can be established
<service name="JMX-Connection-Test" interval="300000" user-defined="false" status="on">
    <parameter key="retry" value="3"/>
    <parameter key="timeout" value="3000"/>
    <parameter key="port" value="18980"/>
</service>
<monitor service="JMX-Connection-Test" class-name="org.opennms.netmgt.poller.monitors.JmxMonitor"/>
Test a specific management bean for a value
<service name="JMX-BeanValue-Test" interval="300000" user-defined="false" status="on">
    <parameter key="retry" value="3"/>
    <parameter key="timeout" value="3000"/>
    <parameter key="port" value="18980"/>
    <parameter key="beans.connected" value="org.opennms.workflow:name=client.onms.connected"/>
    <parameter key="tests.isConnected" value="connected.get(&quot;Value&quot;) == true"/>
</service>
<monitor service="JMX-BeanValue-Test" class-name="org.opennms.netmgt.poller.monitors.Jsr160Monitor"/>
Reserved XML characters like >, <, " need to be escaped.