4 use lib $ENV{'MUNIN_LIBDIR'};
11 log - Plugin to monitor log files
15 add munin user to adm group if needed to read C</var/log/*.log>
23 #%# capabilities=autoconf
27 my $log = '/var/log/daemon.log';
31 if ( $ARGV[0] eq 'autoconf' ) {
32 print -r $log ? "yes\n" : "no\n";
33 } elsif ( $ARGV[0] eq 'config' ) {
37 graph_title stunnel clients
40 multigraph stunnel_transfer
42 graph_title stunnel transfer
43 graph_vlabel bytes/\${graph_period}
52 pending.label Pending peers
53 operational.label Operational peers
66 my ( $pos ) = restore_state();
67 $pos = -s $log unless defined $pos;
68 my ($fh,$reset) = tail_open($log,$pos);
76 $stat->{lines}->{stunnel}++;
77 if ( m/accepted connection from (.+):\d+/ ) {
79 } elsif ( m/Connection closed: (\d+) bytes sent to SSL, (\d+) bytes sent to socket/i ) {
80 $stat->{stunnel_transfer}->{ssl} += $1;
81 $stat->{stunnel_transfer}->{socket} += $2;
84 $stat->{lines}->{n2n}++;
85 if ( m/Pending peers list size=(\d+)/ ) {
86 $stat->{n2n}->{pending} = $1; # latest
87 } elsif ( m/Operational peers list size=(\d+)/ ) {
88 $stat->{n2n}->{operational} = $1; # latest
89 } elsif ( m/pending=(\d+), operational=(\d+)/ ) {
90 $stat->{n2n} = { pending => 1, operational => 2 };
93 $stat->{lines}->{ignored}++;
97 $stat->{stunnel}->{clients} = scalar keys %$ip if $ip;
99 foreach my $graph ( keys %$stat ) {
100 print "multigraph $graph\n";
101 print "$_.value $stat->{$graph}->{$_}\n" foreach keys %{ $stat->{$graph} };
104 $pos = tail_close($fh);