Skip to content
pbroadbery edited this page Sep 14, 2010 · 13 revisions

Welcome to the jmxxymon wiki!

This is a rather simple program for extracting JMX information and turning it into xymon/hobbit/big brother data.
From there you can then do things like:
- Check a service is up
- Check that a service is receiving/sending messages
- Draw graphs of internal information
- etc.

Usage

To use with the standard jmx java.lang exports you will want to do something like:
Create config files in xymon/client/etc/jmx
- vm.conf

vm,cpuTime,@port@,java.lang,OperatingSystem,ProcessCpuTime
vmmem,memInit,@port@,java.lang,Memory,HeapMemoryUsage.init
vmmem,memCommitted,@port@,java.lang,Memory,HeapMemoryUsage.committed
vmmem,memMax,@port@,java.lang,Memory,HeapMemoryUsage.max
vmmem,memUsed,@port@,java.lang,Memory,HeapMemoryUsage.used

- Add some lines in bb-hosts as script fodder

0.0.0.0 tomcat # noconn jmxhost=localhost jmxport=1070 \
	       	 	jmx=jmx/vm.conf   	       

- Add a hobbitlaunch entry for the monitor

[jmxmonitor]
	ENVFILE /home/pab/xymon/client/etc/hobbitclient.cfg
	CMD $BBHOME/scripts/jmx_wrapper.sh
	LOGFILE $BBSERVERLOGS/jmx.log
	INTERVAL 30s
p. jmx_wrapper.sh is in the doc directory, for no good reason.

- Add some graph type stuff to hobbitserver.cfg (or in /etc/xymon/hobbitserver.d). Here I go for cpuTime and memory use. You might want thread counts, or whatever.

TEST2RRD="$TEST2RRD,vm=ncv"
SPLITNCV_vm="cpuTime:DERIVE,loadAvg:GAUGE"
TEST2RRD="$TEST2RRD,vmmem=ncv"
SPLITNCV_vmmem="memUsed:GAUGE,memCommitted:GAUGE,memMax:GAUGE"

- and a graph definition to hobbitgraph.cfg

[vm]
	TITLE Java Cpu Time
	YAXIS Time
	DEF:cpuTime=vm,cpuTime.rrd:lambda:AVERAGE
	LINE:cpuTime#000000:Cpu Time
	GPRINT:cpuTime:LAST: \: %5.1lf (cur)

[vmmem]
	TITLE Java Virtual Memory
	YAXIS Time
	DEF:memMax=vmmem,memMax.rrd:lambda:AVERAGE
	DEF:memUsed=vmmem,memUsed.rrd:lambda:AVERAGE
	DEF:memComm=vmmem,memCommitted.rrd:lambda:AVERAGE
	CDEF:memPercent=memUsed,100,*,memMax,/
	CDEF:memCPercent=memComm,100,*,memMax,/
	LINE:memPercent#000000:Mem Used
	LINE:memCPercent#000000:Mem Committed\n
	GPRINT:memUsed:LAST:Used \: %5.1lf
	GPRINT:memPercent:LAST:(%0.2lf%%) \n
	GPRINT:memComm:LAST:Committed \: %5.1lf
	GPRINT:memCPercent:LAST:(%0.2lf%%)	\n
	GPRINT:memMax:LAST:Max \: %5.1lf	\n

And you get graphs of your tomcat mem usage and cpu.

Clone this wiki locally