Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / postfix / postfix_mailqueue_ @ 72e4561a

Historique | Voir | Annoter | Télécharger (3,08 ko)

1
#!/bin/sh
2
# -*- sh -*-
3

    
4
: << =cut
5

    
6
=head1 NAME
7

    
8
postfix_mailqueue_ - Plugin to monitor postfix mail spools per running postfix
9

    
10
=head1 ABOUT
11

    
12
A guide to postfix mail queue manageent can be found at
13
L<http://www.postfix.org/QSHAPE_README.html#queues>
14

    
15
A summary:
16

    
17
=over 4
18

    
19
=item maildrop
20

    
21
Messages that have been submitted via the Postfix sendmail(1) command,
22
but not yet brought into the main Postfix queue by the pickup(8)
23
service.
24

    
25
=item hold
26

    
27
Messages placed in the "hold" queue stay there until the administrator
28
intervenes
29

    
30
=item incoming
31

    
32
Inbound mail from the network, or mail picked up by the local
33
pickup(8) daemon from the maildrop directory.
34

    
35
=item active
36

    
37
Messages that the queue manager has opened for delivery. Only a limited number
38
of messages is allowed to enter the active queue (leaky bucket strategy, for a
39
fixed delivery rate).
40

    
41
=item deferred
42

    
43
Mail that could not be delivered upon the first attempt. The queue manager
44
implements exponential backoff by doubling the time between delivery attempts.
45

    
46
=item corrupt
47

    
48
Unreadable or damaged queue files are moved here for inspection.
49

    
50
=back
51

    
52
=head1 CONFIGURATION
53

    
54
Uses the last part of the symlink name to get the postfix queue directory for the config file.
55
It then extract the queue path from the configuration file and uses it as a spooldir.
56
A environment spooldir can be set as a fallback.
57

    
58
 [postfix_mailqueue]
59
    env.spooldir /var/spool/postfix
60

    
61
=head1 AUTHOR
62

    
63
Unknown.
64

    
65
Extended to multiple queue use by Clemens Schwaighofer (gullevek@gullevek.org) in 2010.
66

    
67
=head1 LICENSE
68

    
69
Unknown.
70

    
71
=head1 MAGIC MARKERS
72

    
73
=begin comment
74

    
75
These magic markers are used by munin-node-configure when installing
76
munin-node.
77

    
78
=end comment
79

    
80
 #%# family=auto
81
 #%# capabilities=autoconf
82

    
83
=cut
84

    
85
# atempt to get spooldir via postconf, but environment overrides.
86

    
87
# Remember that postconf is not available unless postfix is.
88
CONFIG=${0##*postfix_mailqueue_}
89
CONFIG="/etc/"$CONFIG"/"
90
POSTCONFSPOOL="$(postconf -c $CONFIG -h queue_directory 2>/dev/null || echo /var/spool/postfix)"
91
SPOOLDIR=${spooldir:-$POSTCONFSPOOL}
92

    
93
. $MUNIN_LIBDIR/plugins/plugin.sh
94

    
95
case $1 in
96
	autoconf|detect)
97
		if [ -d $SPOOLDIR ] ; then
98
			echo yes
99
			exit 0
100
		else
101
			echo "no (spooldir not found)"
102
			exit 0
103
		fi
104
	;;
105
	config)
106
		echo "graph_title Postfix Mailqueue $CONFIG";
107
		cat <<'EOF'
108
graph_vlabel Mails in queue
109
graph_category postfix
110
graph_total Total
111
active.label active
112
deferred.label deferred
113
maildrop.label maildrop
114
incoming.label incoming
115
corrupt.label corrupt
116
hold.label held
117
EOF
118
		for field in active deferred maildrop incoming corrupt hold; do
119
			print_warning $field
120
			print_critical $field
121
		done
122
		exit 0
123
	;;
124
esac
125

    
126
cd $SPOOLDIR >/dev/null 2>/dev/null || {
127
	 echo "# Cannot cd to $SPOOLDIR"
128
	 exit 1
129
}
130

    
131
cat <<EOF
132
deferred.value `(test -d deferred && find deferred -type f) | wc -l`
133
active.value `(test -d active && find active -type f) | wc -l`
134
maildrop.value `(test -d maildrop && find maildrop -type f) | wc -l`
135
incoming.value `(test -d incoming && find incoming -type f) | wc -l`
136
corrupt.value `(test -d corrupt && find corrupt -type f) | wc -l`
137
hold.value `( test -d hold && find hold -type f) | wc -l`
138
EOF