"Fossies" - the Fresh Open Source Software Archive

Member "munin-2.0.52/plugins/node.d/postfix_mailqueue.in" (20 Nov 2019, 3108 Bytes) of package /linux/misc/munin-2.0.52.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 #!@@GOODSH@@
    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 Mailqueue
  105 graph_vlabel Mails 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 $( { test -d deferred && find deferred -type f; } | wc -l)
  129 active.value $( { test -d active && find active -type f; } | wc -l)
  130 maildrop.value $( { test -d maildrop && find maildrop -type f; } | wc -l)
  131 incoming.value $( { test -d incoming && find incoming -type f; } | wc -l)
  132 corrupt.value $( { test -d corrupt && find corrupt -type f; } | wc -l)
  133 hold.value $( { test -d hold && find hold -type f; } | wc -l)
  134 EOF