Search Exchange
Search All Sites
Login
check_jstat
- Nagios 3.x
| File | Description |
|---|---|
| check_jstat.sh | The check command |
A Nagios plugin to get memory statistics of a Java application using jstat.
The process selection is done either by:
- its pid (-p
) - its service name (-s
) (assuming there is a /var/run/ .pid file holding its pid) - its java name (-j
) where the java name depends ob how the java application has been launched (main class or jar/war in case of java -jar) (see jps).
It then call jstat -gc and jstat -gccapacity to catch current and maximum heap and perm sizes. What is called heap here is the edden + old generation space, while perm represents the permanent generation space.
If specified (with -w and -c options) values can be checked with WARNING or CRITICAL thresholds (apply to both heap and perm regions).
This plugin also attach perfomance data to the output:
pid=pid
heap=heap-size-used;heap-max-size;%ratio;warning-threshold-%ratio;critical-threshold-%ratio
perm=perm-size-used;perm-max-size;%ratio;warning-threshold-%ratio;critical-threshold-%ratio
Usage:
chech_jstat.sh -v
Print version and exit"
chech_jstat.sh -h
Print this help nd exit
chech_jstat.sh -p [-w <%ratio>] [-c <%ratio>]
chech_jstat.sh -s [-w <%ratio>] [-c <%ratio>]
chech_jstat.sh -j [-w <%ratio>] [-c <%ratio>]
-p the PID of process to monitor
-s the service name of process to monitor
-j the java app (see jps) process to monitor
if this name in blank (-j '') any java app is
looked for (as long there is only one)
-w <%> the warning threshold ratio current/max in %
-c <%> the critical threshold ratio current/max in %
This plugin may require to be run with sudo. In this case add a configuration in /etc/sudoers. For example if nagios is the user that run nagios (or NRPE deamon):
Defaults:nagios !requiretty nagios ALL=(root) NOPASSWD: /opt/nagios/libexec/check_jstat.sh
Line 143 and 147: 'cs' should become 'ws' (otherwise no warning treshhold)
For all else this works fine. Jstat is also less intrusive to your JVM than jmap.
Be sure to add this plugin to /etc/sudoers or run the test as the same uid as the JVM. Otherwise jstat will get access denied.
Thanks a lot for your review. I have fixed the copy/paste abuse in the version 1.1 and added a sample of sudoers configuration.


New Listings


