This file is indexed.

/usr/share/munin/plugins/exim_mailqueue is in munin-node 1.4.6-3ubuntu3.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/sh
# -*- sh -*-

: << EOF

=head1 NAME

exim_mailqueue - Plugin to monitor exim queue size

=head1 CONFIGURATION

This plugin needs to run as a user that has access to run exiqgrep and
examine the queue directories.  This is done like this for example:

  [exim_*]
    user exim

Configuration parameters for a file in /etc/munin/plugin-conf.d/
if you need to override the defaults below:

  [exim_mailqueue]
    env.exiqgrep   - Use if exiqgrep is not in $PATH
    env.graphtitle - Title of the graph
    env.queuewarn  - When to warn (of undelivered mails)
    env.queuecrit  - When to crit (of undelivered mails)
    env.frozenwarn - When to warn (of frozen mails)
    env.frozencrit - When to crit (of frozen mails)

=head2 DEFAULT CONFIGURATION

  [exim_mailqueue]
    env.graphtitle Exim Mailqueue
    env.exiqgrep  <autodetected>
    env.queuewarn 100
    env.queuecrit 200
    env.frozenwarn 100
    env.frozencrit 200

=head1 AUTHOR

The original author was Audun Ytterdal, though the plugin has been heavily
modified by lots of people since then.

=head1 LICENSE

GPLv2

=begin comment

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.

=end comment

=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

EOF

# You cannot trust the exit status of which
EXIQGREP=$(which exiqgrep 2>/dev/null)
case $EXIQGREP:$? in
    *:1|no*) EXIQGREP=''
esac

GRAPHTITLE='Exim Mailqueue'

EXIQGREP=${exiqgrep:-$EXIQGREP}
GRAPHTITLE=${graphtitle:-$GRAPHTITLE}

QUEUEWARN=${queuewarn:-100}
QUEUECRIT=${queuecrit:-200}
FROZENWARN=${frozenwarn:-100}
FROZENCRIT=${frozencrit:-200}

if [ "$1" = "autoconf" ]; then
    if [ -z "$EXIQGREP" ]; then
	echo "no (no exiqgrep)"
	exit 0
    else
        echo yes
        exit 0
    fi
fi
	
if [ "$1" = "config" ]; then
	echo "graph_title $GRAPHTITLE"
	echo 'graph_args --base 1000 -l 0'
	echo 'graph_vlabel mails in queue'
	echo 'graph_category exim'

	echo 'mails.label queued mails'
	# Use "AREASTACK" in munin 1.3.3 and later
	echo 'mails.draw STACK'
	echo "mails.warning 0:$QUEUEWARN"
	echo "mails.critical 0:$QUEUECRIT"
	echo 'mails.colour 00AA00'

	echo 'frozen.label frozen mails'
	# Use "AREASTACK" in munin 1.3.3 and later
	echo 'frozen.draw AREA'
	echo "frozen.warning 0:$FROZENWARN"
	echo "frozen.critical 0:$FROZENCRIT"
	echo 'frozen.colour 0022FF'

	exit 0
fi

$EXIQGREP -cz | awk '
  BEGIN { frozen=mails="U"; }
  /[0-9]+ matches out of [0-9]+ messages/ { frozen=$1; mails=($5-$1); }
  END { printf("frozen.value %s\nmails.value %s\n",frozen,mails); }
'