#!/usr/bin/perl -w
#
use strict;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;

my $ua = new LWP::UserAgent;

my ($hostname, $item, $warning, $critical)=@ARGV;

my $fullurl = "http://" . $hostname . "/server-status?auto";


#Total Accesses: 2861
#Total kBytes: 19960
#CPULoad: .482965
#Uptime: 26211
#ReqPerSec: .109153
#BytesPerSec: 779.789
#BytesPerReq: 7144.02
#BusyServers: 1
#IdleServers: 7

my $value=0;
my $value2=0;
my $msg="";


my $request = new HTTP::Request('GET', $fullurl);
my $response = $ua->request($request);
if ($response->is_success) {
   $response->content =~ /$item: (.*)/;
   $value=$1;
   chomp($value);
   if ($item eq "BusyServers") {
      $response->content =~ /IdleServers: (.*)/;
      $value2=$1;
      chomp($value2);
      $msg=" - Apache BusyServers $value / IdleServers $value2 | BusyServers=$value;$warning;$critical;; IdleServers=$value2;$warning;$critical;;\n";
   }
   else {
      $msg=" - Apache $item em $value | $item=$value;$warning;$critical;;\n";
   }
   #print "$item:".$value." ".$value2." ";
   #print "\n\n\n";
   #print $response->content."\n\n\n\n";
   #$response->content =~ /Total kBytes: (.*)/;
   #print "apache_total_kbytes:".$1." ";
   # I wildcarded the Busy and Idle stats... =)
   #$response->content =~ /Busy.*: (.*)/;
   #print "apache_busy_workers:".$1." ";
   #$response->content =~ /Idle.*: (.*)/;
   #print "apache_idle_workers:".$1;
} else {
   print $response->error_as_HTML;
   exit(3);
} 
if ($value > $critical) {
   print "CRITICAL".$msg;
   exit(2);
}
if ($value > $warning) {
   print "WARNING".$msg;
   exit(1);
}
print "OK".$msg;
exit(0);
