The Open Source Frameworks Jolokia allows you to use tools like Nagios to monitor Java Virtual Machines. Dr. Roland Huß is the founder and main developer of this project. He's a software architect and head of research and development at ConSol* Software, a consulting company focused on Java development and IT services. At JayDay Munich, Roland will demonstrate Jolokia in his talk "Jolokia - JMX on Capsicain". Here's an interview about his tools:
The idea for Jolokia or it's predecessor Jmx4Perl is born of necessity. Gerhard Laußer, our Nagios Guru was desperately looking looking for a performant and resource-efficient Solution to monitor many Java Servers via JMX using Nagios. The problem is, that JMX and it's JSR-160 Connectors for remote access, require Java also on the client side. For a Nagios Server monitoring 500 Servers with approx. 10 metrics every 5 minutes that meant starting 15 JVMs per second - using the existing Nagios-JMX-Plugins. Notwithstanding the above JMX in it's standard configuration with RMI is a no-go when monitoring across firewalls.
With Jolokia we deploy an agent in the target system, which accepts REST-like requests via JSON over HTTP and converts them to local MBean calls. That apporach has a couple of advantages: First JSON over HTTP is the "Lingua franca" of the Web, supported by every programming platform. Next there's support for Bulk Request or granular security. The main difference is that Jolokia is not an official standard, and that you have to install a small (230k) agent. The agent is available in four variants, so you can instrument any kind of Java Application. For the cases where installing an agent is disallowed, there also is an agent-less proxy setup.
In summary that means that you can create tools in any language. There's even an iPhone client "AccessJ", to manage your JEE Servers.
At least Gerhard is happy now.
So Jolokia allows you to easily create monitoring tools. Can you give us an example, what you can do with it in the real world?
Exhibit A is probably the Nagios-Plugin "check_jmx4perl" in the Jmx4Perl package. Besides performant JMX access, it has a paramount of additional options, that alone would be a topic for a full conference session. But my favorite tool is "j4psh", an interactive Shell with Syntax Highlighting and context aware autocompletion. With Unix-like commands like "cd", "ls" or "cat" you can navigate super fast through the JMX Namespace.
"Aji" is Jolokias little sister. How does "Aji" support her bigger brother?
I guess I'll have to straighten out first, that this is a pure womens household. They're all sisters, Jolokia, Jmx4Perl and Ají ;-)
What else are you planning for future releases?
Jolokia doesn't support JMX notifications yet. That's at the top of the list. There are different options to implement it, from polling to WebSockets. Additional client libraries are on the list as well, e.g. Groovy, Scala or Python. You can add your own ideas via www.jolokia.org via the forum. But no promises, Jolokia is a leisure project with friendly support from my employer Consol*.
Thanks a lot for the interview!
My pleasure, I'm looking forward to JayDay.