Skip to content

pbroadbery/jmxxymon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


JMX monitor for xymon/big brother.

This is version 0.00001 - it compiles, it does some useful stuff (I
use it to monitor java systems at work), but it's still not 100%
feature complete or easy to use.

Useful for monitoring tomcats, jbosses, etc.

TODO: 
- Rework the grammar to allow more interesting tests.
- Handle errors properly
- Allow comparison of retrieved values in parser.
- Add a more verbose syntax than the current csv file
- Add example entries for tomcat and jboss.

Usage:

Compile into a .jar file (eclipse: export as an executable jar file)
jmxxymon.jar.  See src/scripts/build.sh

Use a wrapper script similar to:

set -e
wd=$(/bin/pwd)
tmpdir=/tmp/jmxxmon-$$
mkdir $tmpdir
cd $tmpdir
java -jar jmxxymon.jar $BBHOME/etc/cfgfile
for i in *.result; do bb xymonhost $i; done
cd $wd
rm -rf $tmpdir

Call the script from hobbitlaunch.cfg.

You'll probably wind up having one cfgfile per host or subsystem or
whatever.  Loop through them or have a hobbitlaunch.cfd entry for each
config file.

Config file.

The config file is a comma separated format; lines starting with '#'
are ignored.

localhost,javatest,SystemLoadAverage,1099,java.lang,OperatingSystem,SystemLoadAverage,lessThan(5)

Each field is as follows: 

hostName - Name of the host running the process to be monitored.  It
is either just the name, or of the form logicalName@realName, which
will use the logicalName in the xymon display, but actually connect to
realName. 
columnName - Name of column to be displayed in xymon.
valueName - Name of value to be displayed in xymon
portNumber - port running the jmx interface
objectName - name of object containing the value to be displayed
attributeName - attribute to be displayed
test - optional test

Running the program will create a file for each distinct logical host
name of the form hostname-javatest.result.  This file can then be
given to xymon.

The example above produced output like:

status localhost.javatest green Sun Mar 14 12:38:55 GMT 2010
SystemLoadAverage: 1.38

At least when I ran it once.  If load average increased, then the
green would be replaced by red, and so xymon would display an alert.

-----------------------------------------