root / plugins / mail / postfix-queue-size @ 9154029b
Historique | Voir | Annoter | Télécharger (2,93 ko)
| 1 | b0cc6887 | Gourav Joshi | #!/bin/sh |
|---|---|---|---|
| 2 | # -*- sh -*- |
||
| 3 | |||
| 4 | : << =cut |
||
| 5 | |||
| 6 | =head1 NAME |
||
| 7 | |||
| 8 | postfix_mailqueue - Plugin to monitor postfix mail spools |
||
| 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 | By default "postconf -h queue_directory" is used to determine the |
||
| 55 | spool directory. Is postconf is not available in the $PATH then |
||
| 56 | /var/spool/postfix is assumed. This can be overridden by the |
||
| 57 | "spooldir" environment variable like so: |
||
| 58 | |||
| 59 | [postfix_mailqueue] |
||
| 60 | env.spooldir /var/spool/postfix |
||
| 61 | |||
| 62 | =head1 AUTHOR |
||
| 63 | |||
| 64 | Unknown. |
||
| 65 | |||
| 66 | =head1 LICENSE |
||
| 67 | |||
| 68 | Unknown. |
||
| 69 | |||
| 70 | =head1 MAGIC MARKERS |
||
| 71 | |||
| 72 | =begin comment |
||
| 73 | |||
| 74 | These magic markers are used by munin-node-configure when installing |
||
| 75 | munin-node. |
||
| 76 | |||
| 77 | =end comment |
||
| 78 | |||
| 79 | #%# family=auto |
||
| 80 | #%# capabilities=autoconf |
||
| 81 | |||
| 82 | =cut |
||
| 83 | |||
| 84 | # atempt to get spooldir via postconf, but environment overrides. |
||
| 85 | |||
| 86 | # Remember that postconf is not available unless postfix is. |
||
| 87 | POSTCONFSPOOL="$(postconf -h queue_directory 2>/dev/null || echo /var/spool/postfix)" |
||
| 88 | SPOOLDIR=${spooldir:-$POSTCONFSPOOL}
|
||
| 89 | |||
| 90 | . $MUNIN_LIBDIR/plugins/plugin.sh |
||
| 91 | |||
| 92 | case $1 in |
||
| 93 | autoconf|detect) |
||
| 94 | |||
| 95 | if [ -d $SPOOLDIR ] ; then |
||
| 96 | echo yes |
||
| 97 | exit 0 |
||
| 98 | else |
||
| 99 | echo "no (spooldir not found)" |
||
| 100 | exit 0 |
||
| 101 | fi;; |
||
| 102 | config) |
||
| 103 | cat <<'EOF' |
||
| 104 | graph_title Postfix Queue Size |
||
| 105 | graph_vlabel KB in Queue |
||
| 106 | graph_category postfix |
||
| 107 | graph_total Total |
||
| 108 | active.label active |
||
| 109 | deferred.label deferred |
||
| 110 | maildrop.label maildrop |
||
| 111 | incoming.label incoming |
||
| 112 | corrupt.label corrupt |
||
| 113 | hold.label held |
||
| 114 | EOF |
||
| 115 | for field in active deferred maildrop incoming corrupt hold; do |
||
| 116 | print_warning $field |
||
| 117 | print_critical $field |
||
| 118 | done |
||
| 119 | exit 0;; |
||
| 120 | esac |
||
| 121 | |||
| 122 | cd $SPOOLDIR >/dev/null 2>/dev/null || {
|
||
| 123 | echo "# Cannot cd to $SPOOLDIR" |
||
| 124 | exit 1 |
||
| 125 | } |
||
| 126 | |||
| 127 | cat <<EOF |
||
| 128 | deferred.value `du -sb $SPOOLDIR/* | grep deferred | awk '{print $1}'`
|
||
| 129 | active.value `du -sb $SPOOLDIR/* | grep active | awk '{print $1}'`
|
||
| 130 | maildrop.value `du -sb $SPOOLDIR/* | grep maildrop | awk '{print $1}'`
|
||
| 131 | incoming.value `du -sb $SPOOLDIR/* | grep incoming | awk '{print $1}'`
|
||
| 132 | corrupt.value `du -sb $SPOOLDIR/* | grep corrupt | awk '{print $1}'`
|
||
| 133 | hold.value `du -sb $SPOOLDIR/* | grep hold | awk '{print $1}'`
|
||
| 134 | EOF |
