- Repository
- Munin (2.0)
- Last change
- 2020-05-27
- Graph Categories
- Family
- auto
- Capabilities
- Language
- Shell
- License
- GPL-2.0-only
exim_mailqueue
Name
exim_mailqueue - Plugin to monitor exim queue size
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 @@CONFDIR@@/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)
Default Configuration
[exim_mailqueue]
env.graphtitle Exim Mailqueue
env.exiqgrep <autodetected>
env.queuewarn 100
env.queuecrit 200
env.frozenwarn 100
env.frozencrit 200
Author
The original author was Audun Ytterdal, though the plugin has been heavily modified by lots of people since then.
License
GPLv2
Magic Markers
#%# family=auto
#%# capabilities=autoconf
#!@@GOODSH@@
# -*- sh -*-
set -e
: << 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 @@CONFDIR@@/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
GRAPHTITLE='Exim Mailqueue'
EXIQGREP=${exiqgrep:-$(command -v exiqgrep || true)}
GRAPHTITLE=${graphtitle:-$GRAPHTITLE}
QUEUEWARN=${queuewarn:-100}
QUEUECRIT=${queuecrit:-200}
FROZENWARN=${frozenwarn:-100}
FROZENCRIT=${frozencrit:-200}
if [ "$1" = "autoconf" ]; then
if [ ! -x "$EXIQGREP" ]; then
echo "no (command exiqgrep not found)"
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 AREA'
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 STACK'
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); }
'