mirror of
https://github.com/cmur2/munin-postfix.git
synced 2024-11-18 12:56:17 +01:00
Fiat lux
Add original file from munin.
This commit is contained in:
commit
1a2270c0e4
134
postfix_mailqueue
Executable file
134
postfix_mailqueue
Executable file
@ -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<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. 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 <<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
|
Loading…
Reference in New Issue
Block a user