commit 1a2270c0e40ea6f4cf41f69d3a45c7180d6f6ce1 Author: cn Date: Sat Dec 24 12:03:15 2011 +0100 Fiat lux Add original file from munin. diff --git a/postfix_mailqueue b/postfix_mailqueue new file mode 100755 index 0000000..9fc53bb --- /dev/null +++ b/postfix_mailqueue @@ -0,0 +1,134 @@ +#!/bin/sh +# -*- sh -*- + +: << =cut + +=head1 NAME + +postfix_mailqueue - Plugin to monitor postfix mail spools + +=head1 ABOUT + +A guide to postfix mail queue manageent can be found at +L + +A summary: + +=over 4 + +=item maildrop + +Messages that have been submitted via the Postfix sendmail(1) command, +but not yet brought into the main Postfix queue by the pickup(8) +service. + +=item hold + +Messages placed in the "hold" queue stay there until the administrator +intervenes + +=item incoming + +Inbound mail from the network, or mail picked up by the local +pickup(8) daemon from the maildrop directory. + +=item active + +Messages that the queue manager has opened for delivery. Only a limited number +of messages is allowed to enter the active queue (leaky bucket strategy, for a +fixed delivery rate). + +=item deferred + +Mail that could not be delivered upon the first attempt. The queue manager +implements exponential backoff by doubling the time between delivery attempts. + +=item corrupt + +Unreadable or damaged queue files are moved here for inspection. + +=back + +=head1 CONFIGURATION + +By default "postconf -h queue_directory" is used to determine the +spool directory. Is postconf is not available in the $PATH then +/var/spool/postfix is assumed. This can be overridden by the +"spooldir" environment variable like so: + + [postfix_mailqueue] + env.spooldir /var/spool/postfix + +=head1 AUTHOR + +Unknown. + +=head1 LICENSE + +Unknown. + +=head1 MAGIC MARKERS + +=begin comment + +These magic markers are used by munin-node-configure when installing +munin-node. + +=end comment + + #%# family=auto + #%# capabilities=autoconf + +=cut + +# atempt to get spooldir via postconf, but environment overrides. + +# Remember that postconf is not available unless postfix is. +POSTCONFSPOOL="$(postconf -h queue_directory 2>/dev/null || echo /var/spool/postfix)" +SPOOLDIR=${spooldir:-$POSTCONFSPOOL} + +. $MUNIN_LIBDIR/plugins/plugin.sh + +case $1 in + autoconf|detect) + + if [ -d $SPOOLDIR ] ; then + echo yes + exit 0 + else + echo "no (spooldir not found)" + exit 0 + fi;; + config) + cat <<'EOF' +graph_title Postfix Mailqueue +graph_vlabel Mails in queue +graph_category postfix +graph_total Total +active.label active +deferred.label deferred +maildrop.label maildrop +incoming.label incoming +corrupt.label corrupt +hold.label held +EOF + for field in active deferred maildrop incoming corrupt hold; do + print_warning $field + print_critical $field + done + exit 0;; +esac + +cd $SPOOLDIR >/dev/null 2>/dev/null || { + echo "# Cannot cd to $SPOOLDIR" + exit 1 +} + +cat <