Repository
Munin (2.0)
Last change
2020-05-27
Graph Categories
Family
manual
Language
Shell
Authors

freeradius_acct

Name

freeradius_acct - Plugin to count the daily amount of freeradius accounting packets.

Applicable Systems

FreeRADIUS 2.1.0 or later.

Configuration

This plugin uses the following configuration variables:

[freeradius_acct]
 env.radmin     - Path to "radmin" executable.
 env.socketfile - Path to administration socket.

Author

Copyright (C) 2008 Alan DeKok aland@deployingradius.com

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

Magic Markers

#%# family=manual
#!@@GOODSH@@
: << =cut

=head1 NAME

freeradius_acct - Plugin to count the daily amount of freeradius accounting packets.

=head1 APPLICABLE SYSTEMS

FreeRADIUS 2.1.0 or later.

=head1 CONFIGURATION

This plugin uses the following configuration variables:

 [freeradius_acct]
  env.radmin     - Path to "radmin" executable.
  env.socketfile - Path to administration socket.

=head1 AUTHOR

Copyright (C) 2008 Alan DeKok <aland@deployingradius.com>

=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=manual

=cut

RADMIN=${radmin:-$(command -v radmin)}
RADMIN=${RADMIN:-/usr/sbin/radmin}
SOCKETFILE=${socketfile:-/var/run/radiusd/radiusd.sock}

if [ "$1" = "autoconf" ]; then
    #
    #  FIXME: Check if FreeRADIUS is running.
    #
    echo yes
    exit 0
fi

if [ "$1" = "config" ]; then
    echo 'graph_title FreeRADIUS Accounting Requests'
    echo 'graph_args --base 1000 -l 0 '
    echo 'graph_period second'
    # shellcheck disable=SC2016
    echo 'graph_vlabel requests / ${graph_period}'
    echo 'graph_category Other'

    echo 'requests.label Accounting-Requests'
    echo 'requests.info total received request packets'
    echo 'requests.type DERIVE'
    echo 'requests.min 0'

    echo 'responses.label Accounting-Responses'
    echo 'responses.info total sent response packets'
    echo 'responses.type DERIVE'
    echo 'responses.min 0'

    echo 'dup.label Duplicate requests'
    echo 'dup.info total duplicate request packets'
    echo 'dup.type DERIVE'
    echo 'dup.min 0'

    echo 'invalid.label Invalid requests'
    echo 'invalid.info total invalid request packets'
    echo 'invalid.type DERIVE'
    echo 'invalid.min 0'

    echo 'malformed.label Malformed requests'
    echo 'malformed.info total malformed request packets'
    echo 'malformed.type DERIVE'
    echo 'malformed.min 0'

    echo 'bad_signature.label Requests with bad signature'
    echo 'bad_signature.info total request packets with a bad signature'
    echo 'bad_signature.type DERIVE'
    echo 'bad_signature.min 0'

    echo 'dropped.label Dropped requests'
    echo 'dropped.info total request packets dropped for other reasons'
    echo 'dropped.type DERIVE'
    echo 'dropped.min 0'

    echo 'unknown_types.label Unknown type'
    echo 'unknown_types.info total request packets of unknown type'
    echo 'unknown_types.type DERIVE'
    echo 'unknown_types.min 0'

    exit 0
fi

$RADMIN -f "$SOCKETFILE" -e "stats client acct" | awk '{print $1".value " $2}'