#!/bin/sh # # Plugin to monitor the amavis mail filter. # # Usage: Place in /etc/lrrd/client.d/ (or link it there using ln -s) # # Parameters understood: # # config (required) # autoconf (optional) # # Config variables: # # amavislog - file where amavis logs are written # mktempfile () { mktemp -p /tmp/ $1 } AMAVIS_LOG=${logfile:-/var/log/mail.info} LOGTAIL=${logtail:-`which logtail`} STATEFILE=/var/lib/munin/plugin-state/amavis.offset if [ "$amavislog" ]; then AMAVIS_LOG=$amavislog ; fi if [ "$1" = "autoconf" ]; then if [ -f "${AMAVIS_LOG}" -a -n "${LOGTAIL}" -a -x "${LOGTAIL}" ] ; then echo yes exit 0 else echo no exit 1 fi fi if [ "$1" = "config" ]; then echo 'graph_title Amavis filter statistics' echo 'graph_order virus spam_maybe spam_sure total' echo 'graph_vlabel nb' echo 'virus.label virus' echo 'spam_maybe.label probably spam' echo 'spam_sure.label surely spam' echo 'total.label total' exit 0 fi total=U virus=U spamm=U spams=U TEMP_FILE=`mktempfile munin-amavis.XXXXXX` if [ -n "$TEMP_FILE" -a -f "$TEMP_FILE" ] then logtail ${AMAVIS_LOG} $STATEFILE | grep 'amavis\[.*\]:' > ${TEMP_FILE} total=`cat ${TEMP_FILE} | wc -l` virus=`grep INFECTED ${TEMP_FILE} | wc -l` spamm=`grep 'Passed.*Hits: 1[0-9][.]' ${TEMP_FILE} | wc -l` spams=`grep 'Passed.*Hits: [2-9][0-9][0-9]*[.]' ${TEMP_FILE} | wc -l` /bin/rm -f $TEMP_FILE fi echo "virus.value ${virus}" echo "spam_maybe.value ${spamm}" echo "spam_sure.value ${spams}" echo "total.value ${total}"