Repository
Munin (contrib)
Last change
2017-02-22
Graph Categories
Family
auto
Capabilities
Keywords
Language
Bash

postfix_mail_stats

Sadly there is no documentation for this plugin.

#!/bin/bash
#
# Made by Boudewijn Ector, for Boudewijn Ector IT.
# Comments can be sent to (boudewijn<AT>boudewijnector'dot'NL)
# Loosely based on http://munin.projects.linpro.no/attachment/wiki/PluginCat/postfix_messages_hourly.txt
# Script to show postfix stuff
#
# Modified by Paul Saunders <darac+munin@darac.org.uk>, 10 Dec 2010
#
# Parameters understood:
#
#       config   (required)
#       autoconf (optional - used by munin-config)
#
#
# Magic markers (optional - used by munin-config and installation
# scripts):
#
#%# family=auto
#%# capabilities=autoconf


LOGFILE=${logfile:-/var/log/maillog}	# Allow user to specify logfile through env.logfile
DATE=`date '+%b %e %H'`
MAXLABEL=20

if [ "$1" = "autoconf" ]; then
	if [[ -r $LOGFILE ]]; then
	        echo yes
	else
		echo no
	fi
        exit 0
fi

if [ "$1" = "config" ]; then

        echo 'graph_title Postfix Mail Counter'
        echo 'graph_args --base 1000 -l 0'
        echo 'graph_vlabel Hourly Messages'
        echo 'graph_category mail'
        echo 'received.label Delivered'
        echo 'sent.label Outgoing'
        echo 'rejecthelo.label Invalid HELO'
        echo 'rejectsenderdomain.label need FQDN'
        echo 'denyrelay.label Relay Denied'
	echo 'spamhaus.label Blocked using Spamhaus.org'
	echo 'spamcop.label Blocked using Spamcop'
        exit 0
fi

echo -en "received.value "
echo $(grep "status=sent (delivered" $LOGFILE | grep "$DATE" | wc -l)
echo -n
echo -en "sent.value "
echo $(grep "status=sent (250" $LOGFILE | grep "$DATE" | wc -l)
echo -en "rejecthelo.value "
echo $(grep "Helo command rejected: need fully-qualified hostname" $LOGFILE | grep "$DATE" | wc -l)
echo -en "rejectsenderdomain.value "
echo $(grep "Sender address rejected: Domain not found" $LOGFILE | grep "$DATE" | wc -l)


echo -en "denyrelay.value "
echo $(grep "Relay access denied" $LOGFILE | grep "$DATE" | wc -l)
echo -en "spamhaus.value "
echo $(grep "blocked using sbl-xbl.spamhaus.org" $LOGFILE | grep "$DATE" | wc -l)
echo -en "spamcop.value "
echo $(grep "blocked using bl.spamcop.net" $LOGFILE | grep "$DATE" | wc -l)