diff --git a/plugins/nagios/check_maxscale_monitors.pl b/plugins/nagios/check_maxscale_monitors.pl index 2850bd754..b98c5df18 100755 --- a/plugins/nagios/check_maxscale_monitors.pl +++ b/plugins/nagios/check_maxscale_monitors.pl @@ -96,17 +96,17 @@ alarm($TIMEOUT); my $command = $MAXADMIN . ' -h ' . $opts{'H'} . ' -u ' . $opts{'u'} . ' -p "' . $opts{'p'} . '" -P ' . $opts{'P'} . ' ' . "show " . $MAXADMIN_RESOURCE; -#print "maxadmin command: $command\n"; +# +# print "maxadmin command: $command\n"; +# open (MAXSCALE, "$command 2>&1 |") or die "can't get data out of Maxscale: $!"; my $hostname = qx{hostname}; chomp $hostname; my $waiting_backend = 0; -my $service; my $start_output = 0; -my $n_threads = 0; -my $p_threads = 0; +my $n_monitors = 0; my $performance_data=""; @@ -128,8 +128,8 @@ while ( ) { } if ( /^Monitor\:/ ) { - $n_threads++; - $this_key = 'monitor' . $n_threads; + $n_monitors++; + $this_key = 'monitor' . $n_monitors; $monitor_data{$this_key} = { '1name'=> '', '2state' => '', @@ -172,10 +172,6 @@ while ( ) { } if ( /(Sampling interval\:)\s+(\d+) milliseconds/ ) { - #my @data_row = split(':', $_); - #my $name = $data_row[1]; - #$name =~ s/^\s+|\s+$//g; - #$monitor_data{$this_key}{'4interval'}=$name; $monitor_data{$this_key}{'4interval'}=$2; } @@ -189,7 +185,6 @@ while ( ) { for my $key ( sort(keys %monitor_data) ) { - #print "-- key: [$key]\n"; my $local_hash = {}; $performance_data .= " $key="; $local_hash = $monitor_data{$key}; @@ -197,12 +192,12 @@ while ( ) { foreach my $key (sort (keys (%new_hash))) { $performance_data .= $new_hash{$key} . ";"; } + chop($performance_data); } -chop($performance_data); -if ($n_threads) { - printf "OK: %d monitors found |%s\n", $n_threads, $performance_data; +if ($n_monitors) { + printf "OK: %d monitors found |%s\n", $n_monitors, $performance_data; close(MAXSCALE); exit 0; } else { diff --git a/plugins/nagios/check_maxscale_resources.pl b/plugins/nagios/check_maxscale_resources.pl index 2cb3944e0..05c000238 100755 --- a/plugins/nagios/check_maxscale_resources.pl +++ b/plugins/nagios/check_maxscale_resources.pl @@ -97,16 +97,16 @@ alarm($TIMEOUT); my $command = $MAXADMIN . ' -h ' . $opts{'H'} . ' -u ' . $opts{'u'} . ' -p "' . $opts{'p'} . '" -P ' . $opts{'P'} . ' ' . "list " . $MAXADMIN_RESOURCE; -#print "maxadmin command: $command\n"; -open (MAXSCALE, "$command 2>&1 |") - or die "can't get data out of Maxscale: $!"; +# +# print "maxadmin command: $command\n"; +# + +open (MAXSCALE, "$command 2>&1 |") or die "can't get data out of Maxscale: $!"; my $hostname = qx{hostname}; chomp $hostname; -my $waiting_backend = 0; -my $service; + my $start_output = 0; -my $n_threads = 0; -my $p_threads = 0; +my $n_resources = 0; my $performance_data=""; @@ -128,7 +128,9 @@ if ($resource_type eq "session") { $resource_match = "Session"; } -#print "Matching [$resource_match]\n"; +# +# print "Matching [$resource_match]\n"; +# while ( ) { chomp; @@ -146,12 +148,12 @@ while ( ) { } if ($start_output) { next if (/--/ || $_ eq ''); - $n_threads++; + $n_resources++; if ($resource_type ne "session") { my $str; my $perf_line; my @data_row = split('\|', $_); - $performance_data .= "module$n_threads="; + $performance_data .= "$MAXADMIN_RESOURCE$n_resources="; foreach my $val (@data_row) { $str = $val; $str =~ s/^\s+|\s+$//g; @@ -165,11 +167,17 @@ while ( ) { chop($performance_data); -if ($n_threads) { +############################################### +# +# print OK or CRITICAL based on $n_resources +# +################################################ + +if ($n_resources) { if ($performance_data eq '') { - printf "OK: %d $MAXADMIN_RESOURCE found\n", $n_threads; + printf "OK: %d $MAXADMIN_RESOURCE found\n", $n_resources; } else { - printf "OK: %d $MAXADMIN_RESOURCE found | %s\n", $n_threads, $performance_data; + printf "OK: %d $MAXADMIN_RESOURCE found | %s\n", $n_resources, $performance_data; } close(MAXSCALE); exit 0; diff --git a/plugins/nagios/check_maxscale_threads.pl b/plugins/nagios/check_maxscale_threads.pl index 7486a6b24..649cf3744 100755 --- a/plugins/nagios/check_maxscale_threads.pl +++ b/plugins/nagios/check_maxscale_threads.pl @@ -96,14 +96,13 @@ alarm($TIMEOUT); my $command = $MAXADMIN . ' -h ' . $opts{'H'} . ' -u ' . $opts{'u'} . ' -p "' . $opts{'p'} . '" -P ' . $opts{'P'} . ' ' . "show " . $MAXADMIN_RESOURCE; -#print "maxadmin command: $command\n"; +# +# print "maxadmin command: $command\n"; +# -open (MAXSCALE, "$command 2>&1 |") - or die "can't get data out of Maxscale: $!"; +open (MAXSCALE, "$command 2>&1 |") or die "can't get data out of Maxscale: $!"; my $hostname = qx{hostname}; chomp $hostname; -my $waiting_backend = 0; -my $service; my $start_output = 0; my $n_threads = 0; my $p_threads = 0; @@ -175,15 +174,12 @@ while ( ) { next; } - if ( ! /^\s+ID/ ) { - #printf $_ ."\n"; - } else { - #printf "[$_]" ."\n"; + if (/^\s+ID/ ) { $start_output = 1; next; } + if ($start_output && /^\s+\d/) { - #printf "Thread [$_]" . "\n"; $n_threads++; if (/Processing/) { $p_threads++; @@ -193,14 +189,21 @@ while ( ) { close(MAXSCALE); +$command = $MAXADMIN . ' -h ' . $opts{'H'} . ' -u ' . $opts{'u'} . ' -p "' . $opts{'p'} . '" -P ' . $opts{'P'} . ' ' . "show epoll"; -open( MAXSCALE, "/servers/maxinfo/bin/maxadmin -h 127.0.0.1 -P 8444 -uadmin -pskysql show epoll 2>&1 |" ) - or die "can't get data out of Maxscale: $!"; +open (MAXSCALE, "$command 2>&1 |") or die "can't get data out of Maxscale: $!"; my $queue_len = 0; while ( ) { - chomp; + chomp; + + if ( /(Failed|Unable) to connect to MaxScale/ ) { + printf "CRITICAL: $_\n"; + close(MAXSCALE); + exit(2); + } + if ( ! /Current event queue length/ ) { next; } else { @@ -216,7 +219,6 @@ while ( ) { } } -my $performance_data = ""; my $performance_data_thread = ""; my $performance_data_event = "";