| 1 | #!/bin/sh |
| 2 | # |
| 3 | # Plugin to monitor exim queue size |
| 4 | # |
| 5 | # Usage: Copy or link into /etc/munin/node.d/ |
| 6 | # |
| 7 | # Parameters: |
| 8 | # |
| 9 | # config (required) |
| 10 | # autoconf (optional - used by munin-config) |
| 11 | # |
| 12 | # Config variables: |
| 13 | # |
| 14 | # spooldir - Override what exim says |
| 15 | # exim - Where's exim? |
| 16 | # queuewarn - When to warn |
| 17 | # queuecrit - When to crit |
| 18 | # |
| 19 | # $Log$ |
| 20 | # Revision 1.4 2004/11/10 15:47:10 jimmyo |
| 21 | # Made graph_title a parameter for generic/exim_mailqueue (patch by Torstein T. Svendsen, SF#1060834). |
| 22 | # |
| 23 | # Revision 1.3 2004/05/20 13:57:12 jimmyo |
| 24 | # Set categories to some of the plugins. |
| 25 | # |
| 26 | # Revision 1.2 2004/01/29 19:39:00 jimmyo |
| 27 | # Generic plugins now use printf instead of echo -n, as this is more portable (SF#885564) |
| 28 | # |
| 29 | # Revision 1.1 2004/01/02 18:50:00 jimmyo |
| 30 | # Renamed occurrances of lrrd -> munin |
| 31 | # |
| 32 | # Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo |
| 33 | # Import of LRRD CVS tree after renaming to Munin |
| 34 | # |
| 35 | # Revision 1.5 2003/11/07 17:43:16 jimmyo |
| 36 | # Cleanups and log entries |
| 37 | # |
| 38 | # |
| 39 | # |
| 40 | # Magic markers (optional - used by installation scripts and |
| 41 | # munin-config): |
| 42 | # |
| 43 | #%# family=auto |
| 44 | #%# capabilities=autoconf |
| 45 | |
| 46 | DIRNAME=`dirname $0` |
| 47 | SPOOLDIR='/var/spool/exim' |
| 48 | #EXIM=`which exim 2>/dev/null || which exim4 2>/dev/null` |
| 49 | EXIM='/usr/exim/bin/exim' |
| 50 | QUEUEWARN=100 |
| 51 | QUEUECRIT=200 |
| 52 | GRAPHTITLE='Exim Mailqueue' |
| 53 | |
| 54 | if [ "$spooldir" ]; then SPOOLDIR=$spooldir ; fi |
| 55 | if [ "$exim" ]; then EXIM=$exim ; fi |
| 56 | if [ "$queuewarn" ]; then QUEUEWARN=$queuewarn; fi |
| 57 | if [ "$queuecrit" ]; then QUEUECRIT=$queuecrit; fi |
| 58 | if [ "$graphtitle" ]; then GRAPHTITLE=$graphtitle; fi |
| 59 | |
| 60 | if [ "$SPOOLDIR" = "unset" ] |
| 61 | then |
| 62 | SPOOLDIR=`($EXIM -bP spool_directory | awk '{ print $3 "/input" }') 2>/dev/null` |
| 63 | fi |
| 64 | |
| 65 | if [ "$1" = "autoconf" ]; then |
| 66 | if ( $EXIM -bV 2>/dev/null >/dev/null ); then |
| 67 | if ( /usr/bin/find $SPOOLDIR -iname "*-H" -print 2>/dev/null >/dev/null ); then |
| 68 | echo yes |
| 69 | exit 0 |
| 70 | else |
| 71 | if [ $? -eq 1 ]; then |
| 72 | echo "no (permission denied on spooldir)" |
| 73 | exit 1 |
| 74 | else |
| 75 | echo "no" |
| 76 | exit 1 |
| 77 | fi |
| 78 | fi |
| 79 | else |
| 80 | if [ $? -eq 127 ] |
| 81 | then |
| 82 | echo "no (exim not found)" |
| 83 | exit 1 |
| 84 | else |
| 85 | echo no |
| 86 | exit 1 |
| 87 | fi |
| 88 | fi |
| 89 | fi |
| 90 | |
| 91 | if [ "$1" = "config" ]; then |
| 92 | if [ ! -z $SPOOLDIR ];then |
| 93 | echo "graph_title $GRAPHTITLE" |
| 94 | echo 'graph_args --base 1000 -l 0' |
| 95 | echo 'graph_vlabel mails in queue' |
| 96 | echo 'graph_category Mail' |
| 97 | echo 'mails.label mails' |
| 98 | echo 'mails.draw AREA' |
| 99 | echo "mails.warning $QUEUEWARN" |
| 100 | echo "mails.critical $QUEUECRIT" |
| 101 | fi; |
| 102 | exit 0 |
| 103 | fi |
| 104 | |
| 105 | printf "mails.value " |
| 106 | /usr/bin/find $SPOOLDIR -iname "*-H" -print 2>/dev/null |wc -l | sed 's/ *//' |