mrtg/webstat.pl

Sat, 03 Oct 2009 16:18:52 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Oct 2009 16:18:52 +0200
changeset 220
a6cd892638c1
parent 135
cd68ee26852b
child 737
b3e405e9af87
permissions
-rw-r--r--

Update version, adjust corresponding buildconf, and correct logic.
1: Make minor corrections and improvements to scripts patch logic.
2: Upgrade to most recent stable release version 3.0.2.
3: Force selection of a single db backend, as multiple ones never
were supported (changing 'with_db<end>' identifiers accordingly.)
4: Unfortunately add gawk requirement although only partly needed.
5: Add openssl::with_threads requirement to solve strange and hard
to debug problems on Solaris leading to connection failures:

'host-dir JobId 0: Error: openssl.c:86 Connect failure: ERR=error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number'

and

'host-dir JobId 40: Fatal error: TLS negotiation failed with FD at "back1.host.com:9102"'

michael@176 1 #! @l_prefix@/bin/perl
michael@135 2 ##
michael@135 3 ## webstats.pl: return HTTP server hits and bytes
michael@135 4 ##
michael@135 5 ## Configure Apache HTTP server like so:
michael@135 6 ## <Location /server-status>
michael@135 7 ## SetHandler server-status
michael@135 8 ## Order allow,deny
michael@135 9 ## Allow from localhost
michael@135 10 ## </Location>
michael@135 11 ## ExtendedStatus On
michael@135 12 ##
michael@135 13
michael@135 14 @res = `@l_prefix@/bin/lynx -dump http://localhost/server-status`;
michael@135 15
michael@135 16 foreach $res (@res) {
michael@135 17 if ($res =~ /Server uptime: (.*)$/) {
michael@135 18 $up = $1;last
michael@135 19 }
michael@176 20 else {
michael@135 21 next
michael@176 22 }
michael@135 23
michael@135 24 if ($res =~ /Server at/) {
michael@135 25 $server = $res;
michael@135 26 last
michael@135 27 }
michael@176 28 else {
michael@135 29 next
michael@176 30 }
michael@135 31 }
michael@135 32
michael@135 33 @res = `@l_prefix@/bin/lynx -dump http://localhost/server-status?auto`;
michael@135 34
michael@135 35 foreach $res (@res) {
michael@135 36 if ($res =~ /Total Accesses: (\d+)/) {
michael@135 37 $d1 = $1;
michael@135 38 next
michael@135 39 }
michael@135 40
michael@135 41 if ($res =~ /Total kBytes: (\d+)/) {
michael@135 42 $d2 = $1 * 1024;
michael@135 43 next
michael@135 44 }
michael@135 45 }
michael@135 46
michael@135 47 $d1 = int($d1);
michael@135 48 $d2 = int($d2);
michael@135 49
michael@135 50 if ($ARGV[0] eq "hits") {
michael@135 51 print "$d1\n";
michael@135 52 print "$d1\n";
michael@135 53 } elsif ($ARGV[0] eq "bytes") {
michael@135 54 print "$d2\n";
michael@135 55 print "$d2\n";
michael@135 56 }
michael@135 57
michael@135 58 print "$up\n";
michael@135 59 print "$server";
michael@176 60 print "$null\n";
michael@176 61 print "$null\n";
michael@135 62

mercurial