PluginOutdatedCatalog: apache_auth_users

File apache_auth_users, 1.4 KB (added by gyufi@…, at 2006-04-06T09:55:38+02:00)

apache_auth_users

Line 
1#!/usr/bin/perl -w
2#
3# Plugin to monitor authenticated users
4#
5# Parameters:
6#
7#       logfile      - Location of the apache log
8#       statefile    - Where to put temporary statefile.
9#
10# gyufi@direction.hu
11# 2006.04.06
12#
13#%# family=contrib
14
15use strict;
16
17my $QUERYLOG=$ENV{logfile} || '/var/log/apache2/access.log';
18my $STATEFILE=$ENV{statefile} || '/var/lib/munin/plugin-state/apache_auth_users.state';
19my $OTHER=0;
20my %IN;
21
22sub get_state {
23    open(Q,"< $STATEFILE") or die "Statefile not found";
24    while (<Q>) {
25        chomp;
26        my ($q,$n) = split(/\s+/,$_,2);
27        $IN{$q}=$n unless defined($IN{$q});
28    }
29    close(Q);
30}
31
32
33sub do_stats {
34    my $k; 
35
36    open(Q,"< $QUERYLOG") or die "$!";
37    while (<Q>) {
38        chomp;
39        if (/^[^\s]+ \- ([^\s]+) /) {
40            if ($1 !~ /\-/ ) {
41                $IN{$1}++;
42            }
43        }
44    }
45    close(Q);
46
47    get_state;
48
49    open(Q,"> $STATEFILE") or die;
50    foreach $k (keys %IN) {
51        print "query_$k.value ",$IN{$k},"\n";
52        print Q "$k ",$IN{$k},"\n";
53    }
54    close(Q);
55}
56
57
58sub do_config {
59    my $k;
60
61    print "graph_title Authenticated Apache users
62graph_vlabel Hits / \${graph_period}
63query_other.label Other
64query_other.type DERIVE
65query_other.min 0
66query_other.draw AREA
67";
68    get_state;
69
70    foreach $k (keys %IN) {
71        print "query_$k.label $k
72query_$k.type DERIVE
73query_$k.min 0
74query_$k.draw STACK
75";
76    }
77};
78
79if (defined($ARGV[0]) and ($ARGV[0] eq 'config')) {
80    do_config;
81    exit(0);
82}
83
84do_stats;
85
86
87# vim:syntax=perl