mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
112 lines
3.1 KiB
Bash
Executable file
112 lines
3.1 KiB
Bash
Executable file
#! /bin/bash
|
|
|
|
# Copyright (C) 2008 Joey Schulze <joey@infodrom.org>
|
|
#
|
|
# 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; version 2 dated June, 1991.
|
|
#
|
|
# 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., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
|
|
|
|
# Source: http://www.infodrom.org/Infodrom/tools/munin.html
|
|
|
|
# Supported configuration:
|
|
#
|
|
# [vsftpd-rel]
|
|
# user root
|
|
# env.logfile /var/log/vsftpd.log
|
|
# env.logtail /usr/bin/logtail
|
|
|
|
PROGNAME=vsftpd
|
|
STATEDIR=/var/lib/munin/plugin-state
|
|
|
|
LOGFILE=${logfile:-/var/log/vsftpd.log}
|
|
LOGTAIL=${logtail:-`which logtail`}
|
|
|
|
OFFSET=${STATEDIR}/${PROGNAME}.offset
|
|
STATE=${STATEDIR}/${PROGNAME}.state
|
|
PIVOT=${STATEDIR}/${PROGNAME}.pivot
|
|
|
|
|
|
install_ok()
|
|
{
|
|
tempfile=$(which tempfile)
|
|
if [ ! -r ${LOGFILE} -o \
|
|
-z "${LOGTAIL}" -o ! -x "${LOGTAIL}" -o \
|
|
-z "${tempfile}" -o ! -x "${tempfile}" ]
|
|
then
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
if [ "$1" = "autoconf" ]
|
|
then
|
|
tmpfile=`which tempfile`
|
|
if install_ok
|
|
then
|
|
echo yes
|
|
exit 0
|
|
else
|
|
echo no
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" = "config" ]
|
|
then
|
|
echo 'system.type ABSOLUTE'
|
|
echo 'graph_title Very Secure FTP Server'
|
|
echo 'graph_vlabel Requests'
|
|
echo 'graph_category network'
|
|
echo 'ftp_conn.label connections'
|
|
echo 'ftp_loginok.label successful logins'
|
|
echo 'ftp_loginfail.label failed logins'
|
|
echo 'ftp_uploadok.label successful uploads'
|
|
echo 'ftp_uploadfail.label failed uploads'
|
|
echo 'ftp_downloadok.label successful downloads'
|
|
echo 'ftp_downloadfail.label failed downloads'
|
|
echo 'ftp_deleteok.label successful deletes'
|
|
echo 'ftp_deletefail.label failed deletes'
|
|
exit 0
|
|
fi
|
|
|
|
test install_ok || exit 1
|
|
|
|
touch -d now-5minutes+30seconds $PIVOT
|
|
TEMP=`tempfile`
|
|
trap "rm -f ${PIVOT} ${TEMP}" INT EXIT
|
|
|
|
test -n "$TEMP" -a -w "$TEMP" || exit 1
|
|
|
|
if [ ! -s ${OFFSET} ]
|
|
then
|
|
$LOGTAIL ${LOGFILE} ${OFFSET} > ${TEMP}
|
|
exit 0
|
|
fi
|
|
|
|
if [ $STATE -ot $PIVOT ]
|
|
then
|
|
$LOGTAIL ${LOGFILE} ${OFFSET} > ${TEMP}
|
|
echo -n > ${STATE}
|
|
|
|
echo "ftp_conn.value $(grep 'CONNECT' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_loginok.value $(grep 'OK LOGIN' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_loginfail.value $(grep 'FAIL LOGIN' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_uploadok.value $(grep 'OK UPLOAD' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_uploadfail.value $(grep 'FAIL UPLOAD' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_downloadok.value $(grep 'OK DOWNLOAD' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_downloadfail.value $(grep 'FAIL DOWNLOAD' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_deleteok.value $(grep 'OK DELETE' ${TEMP} | wc -l)" >> $STATE
|
|
echo "ftp_deletefail.value $(grep 'FAIL DELETE' ${TEMP} | wc -l)" >> $STATE
|
|
fi
|
|
|
|
cat $STATE
|