Re: [Nagios-devel] Submission: plugin for java processes
Posted: Wed Nov 06, 2002 8:28 am
Haven't looked too closesly at the script as yet but would
check_procs -C java -a jboss work for monitoring jboss ?
ie: the -C arg stays as java as you pointed out, but using -a to check
the argument for that instance to see what class name was passed.
On Wed, 6 Nov 2002, Wim Rijnders wrote:
> Hi,
>
> I have sent the message below once before, but I probably did something
> wrong since it didn't appear on the mailing list. I hereby resend it.
>
> Wim Rijnders.
>
> ========
>
> Hi all,
>
> I hereby submit a plugin perl-script for monitoring java processes. I
> included the script below this message.
>
> The notable characteristic of this script is that it checks the startup
> class for the java application instead of the command name, which in the
> case of java applications is always 'java' (possibly with path). It is
> also possible to to specify warning and critical ranges for the number
> of processes (or threads) running for a given application.
>
> I use this plugin script to check for server applications without a
> permanent port address. It has also proven useful for monitoring Tomcat
> and jBoss, though other monitoring solutions exist and may be better in
> this case.
>
> The script has been tested with NetSaint and appears to work fine on our
> network. Feedback and constructive criticism are sincerely welcomed.
>
> Regards,
>
> Wim Rijnders
>
> ======= check_javaproc =====
>
> #!/usr/bin/perl -wT
> #
> # Author: Wim Rijnders, 17-10-2002
> #
> # Description:
> # -----------
> #
> # Nagios host script to check if any specified java processes are
> running.
> #
> # Implementation Notes:
> # ---------------------
> #
> # check_disk_smb was used as a starting point, since it was written in
> perl.
> #
> # This script has been created and tested on Linux RH 7.1.
> #
> # I tried OS-X Darwin (BSD), but the ps command works differently.
> # Notably, you can't get a combined list of child processes. The best
> approach
> # appears to be to use 'ps -wwaxo command' combined with 'ps -M' (or
> suchlike)
> #
> ########################################################################
> ####
>
> BEGIN {
> if ($0 =~ m/^(.*?)[\/\\]([^\/\\]+)$/) {
> $runtimedir = $1;
> $PROGNAME = $2;
> }
> }
>
> require 5.004;
> use POSIX;
> use strict;
> use Getopt::Long;
> use vars qw($opt_w $opt_c $verbose $classname);
> use vars qw($PROGNAME);
> use lib $main::runtimedir;
> use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
>
> sub getJavaList ();
> sub check_ranges ($ $ $ $);
>
> Getopt::Long::Configure('bundling', 'no_ignore_case');
> GetOptions
> ("V|version" => \&version,
> "h|help" => \&help,
> "v|verbose" => \$verbose,
> "w|warning=s" => \$opt_w,
> "c|critical=s" => \$opt_c,
> "n|name=s" => \$classname
> );
>
>
> my $state = 'OK';
> my $min_warn = undef
> my $max_warn = undef;
> my $min_crit = undef;
> my $max_crit = undef;
>
>
> ($opt_w) || ($opt_w = shift);
> check_ranges($opt_w,\$min_warn, \$max_warn, "warning");
> ($opt_c) || ($opt_c = shift);
> check_ranges($opt_c,\$min_crit, \$max_crit, "critical");
>
>
> #
> # Determine # of running processes for the java programs that interest
> us.
> #
> my @javalist = getJavaList();
>
> my $total = 0;
> my $msgout = "";
> my @fields;
>
> if ( defined $classname ) {
>
> #filter out a single java process based on class name
> foreach (@javalist) {
> @fields = split(/\s+/, $_);
> $total = $fields[-1] and last if $classname eq
> $fields[0];
> }
> $msgout .= "$total processes for $classname\n";
> } else {
> #Handle all java processes
> $msgout .= "\n";
> foreach (@javalist) {
> @fields = split(/\s+/, $_);
>
> $total += $fields[-1];
> $msgout .= " $fields[-1] processes for ";
> $msgout .= (scalar @fields > 1)? $fields[0] : "unknown"
> ;
> $msgout .= "\n";
> }
> my $msgtotal = "$total java processes for ". scalar @javalist .
> " applications";
>
> if ( defined $verbose ) {
> $msgout = $msgtotal . $msgout;
> } else {
> $msgout = $msgtotal;
> }
>
> }
>
> #
> # Set the state with the data we now have accum
...[email truncated]...
This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]
check_procs -C java -a jboss work for monitoring jboss ?
ie: the -C arg stays as java as you pointed out, but using -a to check
the argument for that instance to see what class name was passed.
On Wed, 6 Nov 2002, Wim Rijnders wrote:
> Hi,
>
> I have sent the message below once before, but I probably did something
> wrong since it didn't appear on the mailing list. I hereby resend it.
>
> Wim Rijnders.
>
> ========
>
> Hi all,
>
> I hereby submit a plugin perl-script for monitoring java processes. I
> included the script below this message.
>
> The notable characteristic of this script is that it checks the startup
> class for the java application instead of the command name, which in the
> case of java applications is always 'java' (possibly with path). It is
> also possible to to specify warning and critical ranges for the number
> of processes (or threads) running for a given application.
>
> I use this plugin script to check for server applications without a
> permanent port address. It has also proven useful for monitoring Tomcat
> and jBoss, though other monitoring solutions exist and may be better in
> this case.
>
> The script has been tested with NetSaint and appears to work fine on our
> network. Feedback and constructive criticism are sincerely welcomed.
>
> Regards,
>
> Wim Rijnders
>
> ======= check_javaproc =====
>
> #!/usr/bin/perl -wT
> #
> # Author: Wim Rijnders, 17-10-2002
> #
> # Description:
> # -----------
> #
> # Nagios host script to check if any specified java processes are
> running.
> #
> # Implementation Notes:
> # ---------------------
> #
> # check_disk_smb was used as a starting point, since it was written in
> perl.
> #
> # This script has been created and tested on Linux RH 7.1.
> #
> # I tried OS-X Darwin (BSD), but the ps command works differently.
> # Notably, you can't get a combined list of child processes. The best
> approach
> # appears to be to use 'ps -wwaxo command' combined with 'ps -M' (or
> suchlike)
> #
> ########################################################################
> ####
>
> BEGIN {
> if ($0 =~ m/^(.*?)[\/\\]([^\/\\]+)$/) {
> $runtimedir = $1;
> $PROGNAME = $2;
> }
> }
>
> require 5.004;
> use POSIX;
> use strict;
> use Getopt::Long;
> use vars qw($opt_w $opt_c $verbose $classname);
> use vars qw($PROGNAME);
> use lib $main::runtimedir;
> use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
>
> sub getJavaList ();
> sub check_ranges ($ $ $ $);
>
> Getopt::Long::Configure('bundling', 'no_ignore_case');
> GetOptions
> ("V|version" => \&version,
> "h|help" => \&help,
> "v|verbose" => \$verbose,
> "w|warning=s" => \$opt_w,
> "c|critical=s" => \$opt_c,
> "n|name=s" => \$classname
> );
>
>
> my $state = 'OK';
> my $min_warn = undef
> my $max_warn = undef;
> my $min_crit = undef;
> my $max_crit = undef;
>
>
> ($opt_w) || ($opt_w = shift);
> check_ranges($opt_w,\$min_warn, \$max_warn, "warning");
> ($opt_c) || ($opt_c = shift);
> check_ranges($opt_c,\$min_crit, \$max_crit, "critical");
>
>
> #
> # Determine # of running processes for the java programs that interest
> us.
> #
> my @javalist = getJavaList();
>
> my $total = 0;
> my $msgout = "";
> my @fields;
>
> if ( defined $classname ) {
>
> #filter out a single java process based on class name
> foreach (@javalist) {
> @fields = split(/\s+/, $_);
> $total = $fields[-1] and last if $classname eq
> $fields[0];
> }
> $msgout .= "$total processes for $classname\n";
> } else {
> #Handle all java processes
> $msgout .= "\n";
> foreach (@javalist) {
> @fields = split(/\s+/, $_);
>
> $total += $fields[-1];
> $msgout .= " $fields[-1] processes for ";
> $msgout .= (scalar @fields > 1)? $fields[0] : "unknown"
> ;
> $msgout .= "\n";
> }
> my $msgtotal = "$total java processes for ". scalar @javalist .
> " applications";
>
> if ( defined $verbose ) {
> $msgout = $msgtotal . $msgout;
> } else {
> $msgout = $msgtotal;
> }
>
> }
>
> #
> # Set the state with the data we now have accum
...[email truncated]...
This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]