Adding check_apache_balancer_members
This commit is contained in:
parent
6af92e5dd3
commit
581fc6ce92
7 changed files with 139 additions and 0 deletions
4
check_apache_balancer_members/Makefile
Normal file
4
check_apache_balancer_members/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
||||
|
55
check_apache_balancer_members/check_apache_balancer_members
Normal file
55
check_apache_balancer_members/check_apache_balancer_members
Normal file
|
@ -0,0 +1,55 @@
|
|||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use LWP::Simple;
|
||||
use Data::Dump qw(dump); #libdata-dump-perl
|
||||
use Nagios::Plugin; #libnagios-plugin-perl
|
||||
use Web::Scraper; #libweb-scraper-perl
|
||||
|
||||
my $np = Nagios::Plugin->new(
|
||||
usage => '',
|
||||
plugin => $0,
|
||||
shortname => "Balancer Members",
|
||||
blurb => 'Apache 2 Load Balancer Manager Members',
|
||||
timeout => 10
|
||||
);
|
||||
|
||||
$np->add_arg(
|
||||
spec => 'hostname|h=s',
|
||||
help => 'hostname of the apache server',
|
||||
required => 1
|
||||
);
|
||||
|
||||
$np->add_arg(
|
||||
spec => 'path|p=s',
|
||||
help => 'path to the balancer url',
|
||||
required => 1
|
||||
);
|
||||
|
||||
$np->getopts;
|
||||
|
||||
my $response = get("http://".$np->opts->hostname."/".$np->opts->path);
|
||||
my $s = scraper {
|
||||
process 'table:nth-of-type(2) tr:not(:first-child)', 'members[]' => scraper {
|
||||
process 'td:nth-of-type(1)', 'worker' => 'TEXT';
|
||||
process 'td:nth-of-type(6)', 'status' => 'TEXT';
|
||||
process 'td:nth-of-type(7)', 'elected' => 'TEXT';
|
||||
process 'td:nth-of-type(8)', 'to' => 'TEXT';
|
||||
process 'td:nth-of-type(9)', 'from' => 'TEXT';
|
||||
}
|
||||
};
|
||||
|
||||
my $results = $s->scrape($response);
|
||||
|
||||
my @problemMembers = ();
|
||||
my $at_least_one_is_ok = 0;
|
||||
|
||||
foreach my $member (@{$results->{'members'}})
|
||||
{
|
||||
push @problemMembers, $member->{'worker'} if $member->{'status'} =~ /Err/i;
|
||||
$at_least_one_is_ok = 1 if $member->{'status'} =~ /Ok\s?$/;
|
||||
}
|
||||
|
||||
$np->nagios_exit('CRITICAL', "No members are Ok; there is a problem") unless $at_least_one_is_ok;
|
||||
$np->nagios_exit('CRITICAL', "Members have errors: " . join (", ", @problemMembers)) if (@problemMembers > 0);
|
||||
$np->nagios_exit('OK', "All members functioning correctly");
|
6
check_apache_balancer_members/control
Normal file
6
check_apache_balancer_members/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Homepage: https://raw.github.com/mintsoft/check_apache_balancer_members/master/check_apache_balancer_members.pl
|
||||
Watch: https://github.com/mintsoft/check_apache_balancer_members <a class="commit-tease-sha"[^>]*>\s+([0-9a-f]+)\s+</a>
|
||||
Recommends: libdata-dump-perl, libweb-scraper-perl, libmonitoring-plugin-perl | libnagios-plugin-perl
|
||||
Version: a9827f1
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin to monitor Apache2 balancer_manager
|
15
check_apache_balancer_members/copyright
Normal file
15
check_apache_balancer_members/copyright
Normal file
|
@ -0,0 +1,15 @@
|
|||
Copyright Copyright 2015 Robert Emery/Codeweavers Ltd
|
||||
|
||||
License: Apache-2.0
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
Loading…
Add table
Add a link
Reference in a new issue