Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / amavis / amavis-debian @ 4b2fcbf8

Historique | Voir | Annoter | Télécharger (2,48 ko)

1
#!/bin/sh
2
# 
3
# Plugin to monitor the amavis mail filter for Debian
4
# (based upon a plugin authored by Geoffroy Desvernay)
5
#
6
# This plugin is built and tested on Debian Etch using:
7
# 	munin 1.2.5-1
8
#	amavisd-new 2.4.2-6.1
9
#
10
# With some minor modification it should also work on non-debian systems
11
# This, however, is up to you
12
#
13
# Munin graph will sum up: Passed CLEAN, Blocked VIRUS, Blocked SPAM, Other
14
#
15
# Parameters understood:
16
# 	config   (required)
17
# 	autoconf (optional)
18
#
19
# Config variables:
20
#       AMAVIS_LOG	- file where amavis logs are written
21
#	LOGTAIL		- location of logtail
22
#	BC		- location of bc
23
#
24
# Enjoy!
25
# Fili Wiese
26
#
27

    
28
AMAVIS_LOG=${logfile:-/var/log/mail.log}
29
STATEFILE=$MUNIN_PLUGSTATE/amavis.offset
30
LOGTAIL=${logtail:-`which logtail`}
31
BC=${bc:-`which bc`}
32

    
33
mktempfile () {
34
	mktemp
35
}       
36

    
37
if [ "$1" = "autoconf" ]; then
38
        if [ -f "${AMAVIS_LOG}" -a -n "${LOGTAIL}" -a -x "${LOGTAIL}" -a -n "${BC}" -a -x "${BC}" ] ; then
39
		echo yes
40
		exit 0
41
	else
42
		echo no
43
		exit 1
44
	fi
45
fi
46

    
47
if [ "$1" = "config" ]; then
48
	echo 'graph_title Amavis filter statistics'
49
	echo 'graph_category antivirus'
50
	echo 'graph_order total clean spam virus other'
51
	echo 'graph_vlabel Mails filtered'
52
	echo 'graph_scale no'
53
	echo 'total.label Total'
54
	echo 'total.draw AREA'
55
	echo 'total.colour DDDDDD'
56
	echo 'clean.label Passed CLEAN'
57
	echo 'clean.draw LINE1'
58
	echo 'clean.colour 32FA00'
59
	echo 'spam.label Blocked SPAM'
60
	echo 'spam.draw LINE1'
61
	echo 'spam.colour FF0000'
62
	echo 'virus.label Blocked VIRUS'
63
	echo 'virus.draw LINE1'
64
	echo 'virus.colour 880088'
65
	echo 'other.label Other'
66
	echo 'other.draw LINE1'
67
	echo 'other.colour 0099FF'
68
	exit 0
69
fi
70

    
71
clean=0
72
virus=0
73
spams=0
74
other=0
75
total=0
76

    
77
ARGS=0
78
`$LOGTAIL /etc/hosts 2>/dev/null >/dev/null`
79
if [ $? = 66 ]; then
80
    if [ ! -n "$logtail" ]; then
81
	ARGS=1
82
    fi
83
fi
84

    
85
TEMP_FILE=`mktempfile munin-amavis.XXXXXX`
86

    
87
if [ -n "$TEMP_FILE" -a -f "$TEMP_FILE" ]
88
then
89
	if [ $ARGS != 0 ]; then
90
	    $LOGTAIL ${AMAVIS_LOG} $STATEFILE | grep 'amavis\[.*\]:' | grep -v 'TIMED OUT' > ${TEMP_FILE}
91
	else
92
	    $LOGTAIL ${AMAVIS_LOG} $STATEFILE | grep 'amavis\[.*\]:' | grep -v 'TIMED OUT' > ${TEMP_FILE}
93
	fi
94
	total=`cat ${TEMP_FILE} | wc -l`
95
	clean=`grep 'CLEAN' ${TEMP_FILE} | wc -l`
96
	virus=`grep 'INFECTED' ${TEMP_FILE} | wc -l`
97
	spam=`grep 'Blocked SPAM' ${TEMP_FILE} | wc -l`
98
	other=`echo ${total}-${clean}-${virus}-${other}-${spam} | ${BC}`
99
	
100
	/bin/rm -f $TEMP_FILE
101
fi
102

    
103

    
104
echo "clean.value ${clean}"
105
echo "virus.value ${virus}"
106
echo "spam.value ${spam}"
107
echo "other.value ${other}"
108
echo "total.value ${total}"
109