Apache

Robert Becht

Description:

check_apache-auto.pl
Fetches the ‘server-status?auto’ page of an apache server, extracts all information and evaluates them.
This script is based on ideas from that offered on “Nagios Exchange” (http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=296&cf_id=24).

Current Version

1.0

Last Release Date

2012-02-23

Compatible With

  • Nagios 3.x

Owner

Download URL

License

GPL


Project Notes
check_apache-auto.pl Fetches the 'server-status?auto' page of an apache server, extracts all information and evaluates them. This script is based on ideas from that offered on "Nagios Exchange" (http://exchange.nagios.org/components/com_mtree/attachment.php?link_id=296&cf_id=24). This uses the "server-status? Self" produced by the Apache server (if enabled). The script contains lines of debugging it is sufficient to enable to fit if necessary. If authentication for server access is necessary, it may be that the method is not suitable. In this case just change that part.
Reviews (1) Add a Review
Patch for Apache 2.4
by lucabert, August 31, 2016

Hi, Unfortunately your script has problems with Apache 2.4 and, since Apache 2.4.18, can't retrieve the right data. Here the patch: --- new/check_apache_auto.pl 2016-08-29 13:33:49.398437552 +0200 +++ orig/check_apache_auto.pl 2016-08-29 13:33:35.070152746 +0200 @@ -5,6 +5,8 @@ use LWP::UserAgent; use HTTP::Request; +# WARNING: This version of the script only works with Apache 2.4.13 or higher (changes to mod_status broke the script) +# See edits on lines 172ff sub help() { print timeout(10); @@ -167,6 +171,18 @@ @recolte = split(/n/,$htmlbrut); splice (@recolte, 0, $topnbr); splice (@recolte, -$endnbr); + @recolte = grep /S/, @recolte; + +# Only lines with key: value will be used + my $recolte_index = 0; + foreach (@recolte) { + if (@recolte[$recolte_index] =~ /^.+:.+$/) { + $recolte_index++; + } else { + # remove entry if it doesn't match + splice (@recolte, $recolte_index, 1); + } + } #Debugging # print "$reqn"; @@ -252,6 +268,10 @@ %data = apache_status($server); +if(!exists $data{$mon}) +{ + $data{$mon} = 0; +} #Debugging #print "uptime=$data{'Uptime'}n"; @@ -263,10 +283,3 @@ print_result; exit; Regards



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4 (1)
Favorites
0
Views
102,241