scripts/munin/wifi_auth
2014-03-04 23:45:37 +01:00

81 lines
2 KiB
Bash
Executable file

#!/bin/sh
# -*- sh -*-
mktempfile () {
#cmd=`echo $MUNIN_MKTEMP | sed s/\\$1/$1/`
#$cmd
touch /tmp/$1
echo /tmp/$1
}
FREERADIUS_LOG=${freeradiuslog:-/var/log/wifi/global.log}
LOGTAIL=${logtail:-/usr/sbin/logtail}
MUNIN_PLUGSTATE=${MUNIN_PLUGSTATE:-/var/lib/munin/plugin-state/}
STATEFILE=$MUNIN_PLUGSTATE/wifi_auth.offset
if [ "$1" = "autoconf" ]; then
if [ -f "${FREERADIUS_LOG}" -a -n "${LOGTAIL}" -a -x "${LOGTAIL}" ] ; then
echo yes
exit 0
else
echo no
exit 0
fi
fi
# Try tailing a random file to check how arguments are passed
ARGS=0
`$LOGTAIL /etc/hosts 2>/dev/null >/dev/null`
if [ $? = 66 ]; then
if [ ! -n "$logtail" ]; then
ARGS=1
fi
fi
if [ "$1" = "config" ]; then
echo 'graph_title Authentifications WiFi'
echo 'graph_vlabel Auth'
echo 'graph_category wifi'
echo 'failures.label Échecs'
echo 'failures.draw AREASTACK'
echo 'failures.colour FF0000'
echo 'success.label Succès'
echo 'success.draw AREASTACK'
echo 'success.colour 00FF00'
echo 'peap.label Authentifications PEAP'
echo 'ttls.label Authentifications TTLS'
echo 'peap.draw LINE1'
echo 'peap.colour 000000'
echo 'ttls.draw LINE2'
echo 'ttls.colour F6FF00'
exit 0
fi
success=U
failures=U
TEMP_FILE=$(mktempfile munin-radius-wifi.XXXXXX)
if [ -n "$TEMP_FILE" -a -f "$TEMP_FILE" ]
then
if [ $ARGS != 0 ]; then
$LOGTAIL -f ${FREERADIUS_LOG} -o ${STATEFILE} > ${TEMP_FILE}
else
$LOGTAIL ${FREERADIUS_LOG} ${STATEFILE} > ${TEMP_FILE}
fi
success=$(grep -c 'Login OK' ${TEMP_FILE})
failures=$(grep -c 'Login incorrect' ${TEMP_FILE})
peap=$(grep -c 'authenticated - EAP type: 25' ${TEMP_FILE})
ttls=$(grep -c 'authenticated - EAP type: 21' ${TEMP_FILE})
/bin/rm -f $TEMP_FILE
fi
echo "success.value ${success}"
echo "failures.value ${failures}"
# NB: chaque authentification réussie en TTLS ou PEAP produit deux "succès"
# (inner et outer-tunnels)
echo "peap.value ${peap}"
echo "ttls.value ${ttls}"