2
0
mirror of https://github.com/munin-monitoring/contrib.git synced 2018-11-08 00:59:34 +01:00
contrib-munin/plugins/freeradius/freeradius_queue

104 lines
3.1 KiB
Bash
Executable File

#!/bin/sh
: << =cut
=head1 NAME
freeradius_queue - Plugin to get number of waiting packets in FreeRADIUS queues
=head1 APPLICABLE SYSTEMS
FreeRADIUS 3.0.7 or later.
=head1 CONFIGURATION
This plugin uses the following configuration variables:
[freeradius_queue]
env.radmin - Path to "radmin" executable.
env.socketfile - Path to administration socket.
=head1 AUTHOR
Copyright (C) 2015 Arran Cudbard-Bell <a.cudbardb@freeradius.org>
=head1 LICENSE
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 St, Fifth Floor, Boston, MA 02110-1301, USA
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=cut
RADMIN=${radmin:-`which radmin 2>/dev/null`}
RADMIN=${RADMIN:-/usr/sbin/radmin}
SOCKETFILE=${socketfile:-/var/run/radiusd/radiusd.sock}
#
# Check we can execute radmin, and check that the stats queue
# command exists, and provides us with valid results.
#
# Note: Before 3.0.7 there was no separate communications channel
# for error codes or error messages, so radmin would always exit
# with 0, even on failure.
#
if [ "$1" = "autoconf" ]; then
if [ -x $RADMIN ] && $RADMIN -f $SOCKETFILE -e "stats queue" 2>/dev/null | grep 'queue_len' > /dev/null; then
echo yes
else
echo no
fi
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title FreeRADIUS queued packets'
echo 'graph_args --base 1000 -l 0 '
echo 'graph_period second'
echo 'graph_vlabel requests / ${graph_period}'
echo 'graph_category auth'
echo 'queue_len_internal.label Internal'
echo 'queue_len_internal.info number of requests waiting in the internal queue'
echo 'queue_len_internal.type DERIVE'
echo 'queue_len_internal.min 0'
echo 'queue_len_proxy.label Proxy'
echo 'queue_len_proxy.info number of requests waiting in the proxy queue'
echo 'queue_len_proxy.type DERIVE'
echo 'queue_len_proxy.min 0'
echo 'queue_len_auth.label Authentication'
echo 'queue_len_auth.info number of requests waiting in the authentication queue'
echo 'queue_len_auth.type DERIVE'
echo 'queue_len_auth.min 0'
echo 'queue_len_acct.label Accounting'
echo 'queue_len_acct.info number of requests waiting in the accounting queue'
echo 'queue_len_acct.type DERIVE'
echo 'queue_len_acct.min 0'
echo 'queue_len_detail.label Detail reader'
echo 'queue_len_detail.info number of requests waiting in the detail queue'
echo 'queue_len_detail.type DERIVE'
echo 'queue_len_detail.min 0'
exit 0
fi
$RADMIN -f $SOCKETFILE -e "stats queue" | grep 'queue_len*' | awk '{print $1".value " $2}'