Första comitten av mina egna munin-plugins.
This commit is contained in:
90
bind9
Executable file
90
bind9
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/perl -w
|
||||
#
|
||||
# Plugin to monitor usage of bind 9 servers
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# logfile - Location of the query log
|
||||
# statefile - Where to put temporary statefile.
|
||||
#
|
||||
# Contributed by Nicolai Langfeldt
|
||||
#
|
||||
#%# family=contrib
|
||||
|
||||
use strict;
|
||||
|
||||
my $QUERYLOG=$ENV{logfile} || '/var/log/named/bind.log';
|
||||
my $STATEFILE=$ENV{statefile} || '/var/cache/munin/bind9.state';
|
||||
my $OTHER=0;
|
||||
my %IN;
|
||||
|
||||
sub get_state {
|
||||
open(Q,"< $STATEFILE") or die;
|
||||
while (<Q>) {
|
||||
chomp;
|
||||
my ($q,$n) = split(/\s+/,$_,2);
|
||||
$IN{$q}=$n unless defined($IN{$q});
|
||||
}
|
||||
close(Q);
|
||||
}
|
||||
|
||||
|
||||
sub do_stats {
|
||||
my $k;
|
||||
|
||||
open(Q,"< $QUERYLOG") or die "$!";
|
||||
while (<Q>) {
|
||||
chomp;
|
||||
if (/client \d+\.\d+.\d+.\d+\#\d+: query\: \S+ (\w+) (\w+)/) {
|
||||
if ($1 eq 'IN' and $2 !~ /^TYPE/) {
|
||||
$IN{$2}++;
|
||||
} else {
|
||||
$OTHER++;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(Q);
|
||||
|
||||
get_state;
|
||||
|
||||
open(Q,"> $STATEFILE") or die;
|
||||
foreach $k (keys %IN) {
|
||||
print "query_$k.value ",$IN{$k},"\n";
|
||||
print Q "$k ",$IN{$k},"\n";
|
||||
}
|
||||
close(Q);
|
||||
|
||||
print "query_other.value ",$OTHER,"\n";
|
||||
}
|
||||
|
||||
|
||||
sub do_config {
|
||||
my $k;
|
||||
|
||||
print "graph_title DNS Queries by type
|
||||
graph_vlabel Queries / \${graph_period}
|
||||
query_other.label Other
|
||||
query_other.type DERIVE
|
||||
query_other.min 0
|
||||
query_other.draw AREA
|
||||
";
|
||||
get_state;
|
||||
|
||||
foreach $k (keys %IN) {
|
||||
print "query_$k.label $k
|
||||
query_$k.type DERIVE
|
||||
query_$k.min 0
|
||||
query_$k.draw STACK
|
||||
";
|
||||
}
|
||||
};
|
||||
|
||||
if (defined($ARGV[0]) and ($ARGV[0] eq 'config')) {
|
||||
do_config;
|
||||
exit(0);
|
||||
}
|
||||
|
||||
do_stats;
|
||||
|
||||
|
||||
# vim:syntax=perl
|
||||
37
denyhosts
Executable file
37
denyhosts
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Plugin to check /etc/hosts.deny for blocked hosts
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# config (required)
|
||||
# autoconf (optional - only used by munin-config)
|
||||
#
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
|
||||
|
||||
if [ "$1" = "autoconf" ]; then
|
||||
echo yes
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "config" ]; then
|
||||
|
||||
echo 'graph_title Denyhosts'
|
||||
echo 'graph_args -l 0 --base 1000'
|
||||
echo 'graph_vlabel blocked hosts'
|
||||
echo 'graph_category network'
|
||||
echo 'graph_period second'
|
||||
echo 'graph_info This graph shows the current number of blocked hosts for SSHD.'
|
||||
echo 'blocked.label active'
|
||||
echo 'blocked.max 1000'
|
||||
echo 'blocked.min 0'
|
||||
echo 'blocked.info The number of active blocked hosts.'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -n "blocked.value "
|
||||
grep -c "^# DenyHosts:" /etc/hosts.deny
|
||||
|
||||
44
milter_greylist
Executable file
44
milter_greylist
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Plugin to check /var/run/milter-greylist/greylist.db status
|
||||
#
|
||||
# Parameters:
|
||||
#
|
||||
# config (required)
|
||||
# autoconf (optional - only used by munin-config)
|
||||
#
|
||||
#%# family=auto
|
||||
#%# capabilities=autoconf
|
||||
|
||||
|
||||
|
||||
if [ "$1" = "autoconf" ]; then
|
||||
echo yes
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "config" ]; then
|
||||
|
||||
echo 'graph_title Milter-greylist'
|
||||
echo 'graph_args -l 0 --base 1000'
|
||||
echo 'graph_vlabel Greylisted'
|
||||
echo 'graph_category Mail'
|
||||
echo 'graph_period second'
|
||||
echo 'graph_info This graph shows the current number of greylisted and whitelisted senders.'
|
||||
echo 'grey.label Greylisted'
|
||||
echo 'grey.max 1000'
|
||||
echo 'grey.min 0'
|
||||
echo 'grey.info The number of greylisted hosts.'
|
||||
echo 'white.label Whitelisted'
|
||||
echo 'white.max 1000'
|
||||
echo 'white.min 0'
|
||||
echo 'white.info The number of whitelisted hosts.'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo -n "grey.value "
|
||||
grep "\# Summary:" /var/run/milter-greylist/greylist.db |awk '{ print $5 }'
|
||||
|
||||
echo -n "white.value "
|
||||
grep "\# Summary:" /var/run/milter-greylist/greylist.db |awk '{ print $7 }'
|
||||
|
||||
59
spamassassin
Executable file
59
spamassassin
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Plugin to count the SpamAssassin troughput
|
||||
#
|
||||
# Contributed by David Obando - 16.11.2005
|
||||
#
|
||||
# 2006.aug.21. - grin@grin.hu - fix autoconf, insecure tmp file
|
||||
# - added mail count
|
||||
# - save less irrelevant data into tmp
|
||||
# - requires in plugin-conf.d/munin-node (to access syslog):
|
||||
# [spamassassin]
|
||||
# group adm
|
||||
#
|
||||
# Magic markers - optional - used by installation scripts and
|
||||
# munin-config:
|
||||
#
|
||||
#%# family=manual
|
||||
#%# capabilities=autoconf
|
||||
|
||||
if [ "$1" = "autoconf" ]; then
|
||||
if [ -r /var/log/syslog ]; then
|
||||
echo "yes"
|
||||
else
|
||||
echo "no (cannot read /var/log/syslog)"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$1" = "config" ]; then
|
||||
|
||||
echo 'graph_title SpamAssassin stats'
|
||||
echo 'graph_args --base 1000 -l 0 '
|
||||
echo 'graph_vlabel SpamAssassin mail/sec'
|
||||
echo 'graph_order spam ham'
|
||||
echo 'graph_category Mail'
|
||||
echo 'mail.label mail'
|
||||
echo 'mail.type DERIVE'
|
||||
echo 'mail.min 0'
|
||||
echo 'mail.draw LINE2'
|
||||
echo 'ham.label ham'
|
||||
echo 'ham.type DERIVE'
|
||||
echo 'ham.min 0'
|
||||
echo 'ham.draw LINE2'
|
||||
echo 'spam.label spam'
|
||||
echo 'spam.type DERIVE'
|
||||
echo 'spam.min 0'
|
||||
echo 'spam.draw AREA'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# create a secure tmp file
|
||||
TEMP=`/bin/mktemp /tmp/munin-sa-XXXXXX`
|
||||
egrep "spamd: (processing message|identified spam|clean message)" /var/log/syslog >> $TEMP
|
||||
|
||||
echo -n "mail.value " && grep "processing message" $TEMP | wc -l
|
||||
echo -n "spam.value " && grep "identified spam" $TEMP | wc -l
|
||||
echo -n "ham.value " && grep "clean message" $TEMP | wc -l
|
||||
|
||||
rm $TEMP
|
||||
Reference in New Issue
Block a user