mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
92 lines
1.6 KiB
Plaintext
92 lines
1.6 KiB
Plaintext
|
#!/bin/sh
|
||
|
# -*- sh -*-
|
||
|
|
||
|
: << =cut
|
||
|
|
||
|
=head1 NAME
|
||
|
|
||
|
openvpn_as_time -Indicate user logged time.
|
||
|
|
||
|
=head1 CONFIGURATION
|
||
|
|
||
|
Require jsonpipe software:
|
||
|
https://github.com/dvxhouse/jsonpipe
|
||
|
|
||
|
[openvpn_*]
|
||
|
user root
|
||
|
|
||
|
=head1 AUTHOR
|
||
|
|
||
|
Ricardo Fraile <rfrail3@yahoo.es>
|
||
|
|
||
|
=head1 LICENSE
|
||
|
|
||
|
GPLv2
|
||
|
|
||
|
=head1 MAGICK MARKERS
|
||
|
|
||
|
#%# family=auto
|
||
|
#%# capabilities=autoconf
|
||
|
|
||
|
=cut
|
||
|
|
||
|
. $MUNIN_LIBDIR/plugins/plugin.sh
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
if [ "$1" = "autoconf" ]; then
|
||
|
echo yes
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
SUM=0
|
||
|
COUNT=1
|
||
|
NOW=`date +%s`
|
||
|
# Script folder
|
||
|
D_BIN="/usr/local/openvpn_as/scripts"
|
||
|
|
||
|
# List with users time
|
||
|
LIST1=`$D_BIN/sacli VPNStatus | tr '/' - | jsonpipe | grep "/openvpn_[0-9]/client_list/[0-9]/6" | tr -d '"' | awk '{print $2} '`
|
||
|
# List with users names
|
||
|
LIST2=`$D_BIN/sacli VPNStatus | tr '/' - | jsonpipe | grep "/openvpn_[0-9]/client_list/[0-9]/0" | tr -d '"' | awk '{print $2} '`
|
||
|
|
||
|
if [ "$1" = "config" ]; then
|
||
|
|
||
|
echo 'graph_title OpenVPN User logged time'
|
||
|
echo 'graph_args --base 1000 -l 0 '
|
||
|
echo 'graph_vlabel Time in minutes'
|
||
|
echo 'graph_scale no'
|
||
|
echo 'graph_category OpenVPN'
|
||
|
echo 'graph_info Indicate the user logged time.'
|
||
|
|
||
|
# If none, print 0
|
||
|
if [ -z $LIST1 ]; then
|
||
|
LIST1=$NOW
|
||
|
LIST2="none"
|
||
|
fi
|
||
|
|
||
|
for i in $LIST1; do
|
||
|
NAME=`echo $LIST2 | cut -d " " -f $COUNT`
|
||
|
echo "$NAME.label User $NAME"
|
||
|
echo "$NAME.type GAUGE"
|
||
|
echo "$NAME.min 0"
|
||
|
COUNT=$((COUNT + 1))
|
||
|
done
|
||
|
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
# If none, print 0
|
||
|
if [ -z $LIST1 ]; then
|
||
|
LIST1=$NOW
|
||
|
LIST2="none"
|
||
|
fi
|
||
|
|
||
|
# Print values
|
||
|
for i in $LIST1; do
|
||
|
NAME=`echo $LIST2 | cut -d " " -f $COUNT`
|
||
|
echo "$NAME.value $(($((NOW - $i)) / 60))"
|
||
|
COUNT=$((COUNT + 1))
|
||
|
done
|