Jolokia is a fresh way for accessing JMX MBeans remotely. It is
different to JSR-160 connectors in so far as it is an agent based
approach which uses JSON over HTTP for its communication in a
REST-stylish way.

Multiple agents are provided for different environments:

  • WAR Agent for deployment as web application in a JEE Server.
  • OSGi Agent for deployment in an OSGi container. This agent
    is packaged as a bundle and comes in two flavors (minimal,
    all-in-one).
  • Mule Agent for usage within a Mule ESB
  • JVM Agent which can be used with any Oracle/Sun JVM,
    Version 6

Features

The agent approach as several advantages:

  • Firewall friendly

    Since all communication is over HTTP, proxying through firewalls
    becomes mostly a none-issue (in contrast to RMI communication, which
    is the default mode for JSR-160)

  • Polyglot

    No Java installation is required on the client
    side. E.g. Jmx4Perl provides a rich Perl client library and
    Perl based tools for accessing the agents.

  • Simple Setup

    The Setup is done by a simple agent deployment. In contrast,
    exporting JMX via JSR-160 can be remarkable complicated (see these
    blog posts for setting up Weblogic and JBoss for native
    remote JMX exposure setup)

Additionally, the agents provide extra features not available with
JSR-160 connectors:

  • Bulk requests

    In contrast to JSR-160 remoting, Jolokia can process many JMX
    requests with a single roundtrip. A single HTTP POST request puts
    those requests in its JSON payload which gets dispatched on the
    agent side. These bulk requests can increase performance drastically
    especially for monitoring solutions. The Nagios plugin
    check_jmx4perl uses bulk requests for its multi check feature.

  • Fine grained security

    In addition to standard HTTP security (SSL, HTTP-Authentication)
    Jolokia supports a custom policy with fine grained restrictions
    based on multiple properties like the client’s IP address or subnet,
    the MBean names and their attributes and operations. The policy is
    defined in an XML format with support for allow/deny sections and
    wildcards.

  • Proxy mode

    Jolokia can operate in an agentless mode where the only requirement
    on the target platform is the standard JSR-160 export of its
    MBeanServer. A proxy listens on the front side for Jolokia requests
    via JSON/HTTP and propagates these to the target server through
    remote JSR-160 JMX calls. Bulk requests gets dispatched into
    multiple JSR-160 requests on the proxy transparently.

Resources

More information on jolokia can be found at www.jolokia.org.

Monitoring-Workshop 2017 12./13.9. Düsseldorf