- Repository
- Munin (2.0)
- Last change
- 2021-08-09
- Graph Categories
- Family
- auto
- Capabilities
- Language
- Shell
postfix_mailqueue
Name
postfix_mailqueue - Plugin to monitor postfix mail spools
About
A guide to postfix mail queue manageent can be found at http://www.postfix.org/QSHAPE_README.html#queues
A summary:
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.
hold
Messages placed in the “hold” queue stay there until the administrator intervenes
incoming
Inbound mail from the network, or mail picked up by the local pickup(8) daemon from the maildrop directory.
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).
deferred
Mail that could not be delivered upon the first attempt. The queue manager implements exponential backoff by doubling the time between delivery attempts.
corrupt
Unreadable or damaged queue files are moved here for inspection.
Configuration
By default “postconf -h queue_directory” is used to determine the spool directory. If 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
Author
Unknown.
License
Unknown.
Magic Markers
#%# family=auto
#%# capabilities=autoconf
#!@@GOODSH@@
# -*- 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<http://www.postfix.org/QSHAPE_README.html#queues>
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. If 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
# Attempt to get spooldir via postconf, but environment overrides.
# Remember that postconf is not available unless postfix is.
if [ -n "${spooldir}" ]; then
SPOOLDIR=${spooldir}
else
SPOOLDIR="$(postconf -h queue_directory 2>/dev/null || echo /var/spool/postfix)"
fi
. "$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 <<EOF
deferred.value $( { test -d deferred && find deferred -type f; } | wc -l)
active.value $( { test -d active && find active -type f; } | wc -l)
maildrop.value $( { test -d maildrop && find maildrop -type f; } | wc -l)
incoming.value $( { test -d incoming && find incoming -type f; } | wc -l)
corrupt.value $( { test -d corrupt && find corrupt -type f; } | wc -l)
hold.value $( { test -d hold && find hold -type f; } | wc -l)
EOF