jmx4perl
                              ========

INTRODUCTION

 jmx4perl provides a new way for accessing Java JEE Server management
 interfaces which are based on JMX (Java Management Extensions). It
 is an agent based approach, where a small Java Webapplication
 deployed on the application server provides a an HTTP/JSON based
 access to the JMX MBeans registered within the application server.

 A discussion about the pros and cons of an agent based vs. a direct
 JMX remoting (which is available via JSR 160 connectors) can be
 found in the manual "JMX::Jmx4Perl::Manual" contained within this
 package. The biggest advantage for an agent based approach is that
 no local java installation is required for using it.

HOW IT WORKS

 You need to deploy a small (~ 50k) Java Agent WAR (web archive) to
 the Java application server to monitor. Thats all on the java
 side. There is no need to add any startup parameters to the
 application server and to open any additional ports. All
 communication takes places via HTTP where JSON objects are
 exchanged. Additionally, the agent benefits from the security
 infrastructure in place which every application server provides for
 web application.

 The Perl module JMX::Jmx4Perl::Agent accesses this web application
 and transform the request's results from JSON into a simple pure
 Perl object. This distribution contains a sample Nagios check
 'check_jmx4perl' which use this result to perform various checks.
 The command line tool 'jmx4perl' provides an easy access to the
 agent, too.

INSTALLATION

 The Perl part installs as any other module via Module::Build, which
 you need to have installed. Using

 perl Build.PL
 ./Build
 ./Build test
 ./Build install

 will install the modules. If you have Java and "ant" (a Java build
 tool) installed, the Java agent will be compiled and packaged as
 well. However, this is not required. A precompiled "j4p.war"
 can be found in the "agent" directory.

 For the module to work, you need to deploy "j4p.war" to the
 JEE Server to monitor. The concrete steps depend on the specific way
 for deploying on the targeted server, which in most cases is a
 simple copying in to a specific directory. Please consult the
 documentation of your Java application server for the details (look
 for "deployment" and "war")

 To test it, you can use 'jmx4perl' with the URL of the depolyed
 agent:

     jmx4perl http://jeeserver:port/j4p

 Consult 'man jmx4perl' for further details.

SUPPORTED APPLICATION SERVERS

 For now, the following Java Application Servers has been tested on
 the following servers:

 * JBoss 4.2.3 GA & 5.1.0 GA
 * Oracle WebLogic 9.2 MP3 & 10.0.2.0
 * Jonas 4.10.3 (with Jetty 5.1.10 and Tomcat 5.5.26)
 * Apache Geronimo 2.1.4 (Jetty 6 and Tomcat 6)
 * Glassfish 2.1
 * Apache Tomcat 4.1.39, 5.5.27 & 6.0.18
 * Jetty 5.1.15 & 6.1.18 (with JMX enabled)

 It is expected that every Java application server which runs with at
 least Java 1.5 and conforms to at least version 2.4 of the Servlet
 specification should work out of the box.  Please open a bug at
 http://rt.cpan.org/Public/Bug/Report.html?Queue=jmx4perl if you
 encounter any problems.

SOURCE REPOSITORY

 Jmx4perl's source is hosted on github.com. You can clone the repository
 with git://github.com/rhuss/jmx4perl.git as URL

LICENSE

 Copyright (C) 2009 Roland Huss ([email protected])

 Jmx4perl is free software: you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 2 of the License, or
 (at your option) any later version.

 jmx4perl is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with jmx4perl.  If not, see <http://www.gnu.org/licenses/>.

 A commercial license is available as well. You can either apply the
 GPL or obtain a commercial license for closed source
 development. Please contact [email protected] for further information.

PROFESSIONAL SERVICES

 Just in case you need professional support for this module (or
 Nagios or JMX in general), you might want have a look at
 http://www.consol.com/opensource/nagios/. Contact
 [email protected] for further information (or use the contact
 form at http://www.consol.com/contact/)

ACKNOWLEDGMENTS

 Many thanks go to Gerhard Lausser, who pushed to me to think harder
 about a better way for monitoring JEE Servers by Nagios. Good luck,
 Gerhard, with your forthcoming Nagios book !

BUGS

 Please report any bugs and/or feature requests at
 http://rt.cpan.org/Public/Bug/Report.html?Queue=jmx4perl

AUTHOR

 [email protected]