1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-25 02:18:08 +00:00

Category Tree: Reduce number of categories

power5 -> cpu
directories for different ftp servers
This commit is contained in:
dipohl 2017-02-22 20:37:27 +01:00
parent 68bb709de6
commit c3e309c6a5
15 changed files with 9 additions and 9 deletions

77
plugins/pure-ftpd/pure-ftpd Executable file
View file

@ -0,0 +1,77 @@
#!/bin/sh
#
# Plugin to monitor pure-ftpd status
#
# (c) Julien Danjou <julien@danjou.info>
#
# GPLv2 licensed
#
# Parameters:
#
# config (required)
# autoconf (optional - used by munin-config)
#
# Config variables:
#
# spooldir - Override what exim says
# exim - Where's exim?
# queuewarn - When to warn
# queuecrit - When to crit
#
# Configuration:
# Maybe need to add following lines to plugins config file
# (e.g. /etc/munin/plugin-conf.d/pure-ftpd) to run pure-ftpwho
# as user with apropirate privilegs then restart munin-node.
#
# [pure-ftpd]
# user root
#
# 2008/02/01 - TMS
# - Little Configuration documentation
# - Added monitoring IDLE connections
#
# 2007/05/07 - jd
# First release
#
# Magic markers (optional - used by installation scripts and
# munin-config):
#
#%# family=contrib
#%# capabilities=autoconf
PW=`which pure-ftpwho 2>/dev/null`
GRAPHTITLE='FTP connections'
test -n "$pw" && PW=$pw
test -n "$graphtitle" && GRAPHTITLE=$graphtitle
if [ "$1" = "autoconf" ]; then
if test -x $PW; then
echo yes
exit 0
else
echo "no (pure-ftpwho not found)"
exit 0
fi
fi
if [ "$1" = "config" ]; then
echo "graph_title $GRAPHTITLE"
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel connections'
echo 'graph_category ftp'
echo 'upload.label Upload'
echo 'download.label Download'
echo 'idle.label Idle'
echo 'upload.draw AREA'
echo 'download.draw STACK'
echo 'idle.draw STACK'
exit 0
fi
printf "download.value "
$PW -n -s | grep -c ' DL '
printf "upload.value "
$PW -n -s | grep -c ' UL '
printf "idle.value "
$PW -n -s | grep -c 'IDLE'

80
plugins/pure-ftpd/pure-ftpd-bw Executable file
View file

@ -0,0 +1,80 @@
#!/bin/bash
#
#
# pure-ftpd-bw plugin
# show the bandwidth used by pure-ftpd, counts the bytes sent and received
# made by Dju
# v1.2
#
# commands needed: logtail - grep
#
#
# Configuration:
# Maybe need to add following lines to plugins config file
# (e.g. /etc/munin/plugin-conf.d/pure-ftpd) to run pure-ftpwho
# as user with apropirate privilegs then restart munin-node.
#
# [pure-ftpd-bw]
# user root
#
#
# Parameters
#
# config (required)
# autoconf (optional - used by munin-config)
#
#
# Magic markers (optional - used by munin-config and installation scripts):
#
#%# family=auto
#%# capabilities=autoconf
LOGFILE=/var/log/pure-ftpd/transfer.log
LOGTAIL=$(which logtail)
OFFSET_FILE=/var/lib/munin/plugin-state/pure-ftpd-bw.offset
if [ "$1" = "autoconf" ]; then
if [ -f $LOGFILE ]; then
if [ ! -z "$LOGTAIL" -a -f $LOGTAIL -a -x $LOGTAIL ]; then
echo yes
exit 0
else
echo "no (logtail not found)"
exit 1
fi
else
echo "no (logfile $LOGFILE does not exist)"
exit 1
fi
fi
if [ "$1" = "config" ]; then
echo 'graph_title Pure Ftpd Bandwidth'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel Datas sent / received'
echo 'graph_category ftp'
echo 'dl.label Bytes downloaded'
echo 'ul.label Bytes uploaded'
exit 0
fi
TMP1=`mktemp`
if [ -f $TMP1 ]; then
$LOGTAIL -o $OFFSET_FILE -f $LOGFILE | grep 'GET \|PUT ' > $TMP1
dls=$(awk '/GET / {print $9}' $TMP1)
dl=0
for d in $dls; do dl=$(expr $dl + $d); done
echo "dl.value ${dl}"
uls=$(awk '/PUT / {print $9}' $TMP1)
ul=0
for u in $uls; do ul=$(expr $ul + $u); done
echo "ul.value ${ul}"
rm $TMP1
else
echo "cant write temp file"
exit 1
fi

View file

@ -0,0 +1,83 @@
#!/bin/bash
#
#
# pure-ftpd plugin
# show what the users did on your ftp server
# made by Dju
#
# commands needed: logtail - grep
#
#
# Parameters
#
# config (required)
# autoconf (optional - used by munin-config)
#
#
# Magic markers (optional - used by munin-config and installation scripts):
#
#%# family=auto
#%# capabilities=autoconf
LOGFILE=/var/log/syslog
LOGTAIL=$(which logtail)
OFFSET_FILE=/var/lib/munin/plugin-state/pure-ftpd-conns.offset
if [ "$1" = "autoconf" ]; then
if [ -f $LOGFILE ]; then
if [ ! -z "$LOGTAIL" -a -f $LOGTAIL -a -x $LOGTAIL ]; then
echo yes
exit 0
else
echo "no (logtail not found)"
exit 1
fi
else
echo "no (logfile ${LOGFILE} does not exist)"
exit 1
fi
fi
if [ "$1" = "config" ]; then
echo 'graph_title Pure Ftpd Logs'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel Connections number'
echo 'graph_category ftp'
echo 'nc.label new connection'
echo 'al.label anonymous logged'
echo 'ul.label auth user logged'
echo 'af.label auth failed'
echo 'to.label timeout'
echo 'dl.label download'
echo 'upl.label upload'
exit 0
fi
TMP1=`mktemp`
$LOGTAIL -o $OFFSET_FILE $LOGFILE | grep ' pure-ftpd: ' > $TMP1
echo -en "nc.value "
grep '\[INFO\] New connection from ' $TMP1 | wc -l
echo -en "al.value "
grep '\[INFO\] Anonymous user logged in' $TMP1 | wc -l
echo -en "ul.value "
grep '\[INFO\] .*is now logged in' $TMP1 | wc -l
echo -en "to.value "
grep ' Timeout ' $TMP1 | wc -l
echo -en "af.value "
grep '\[WARNING\] Authentication failed' $TMP1 | wc -l
echo -en "dl.value "
grep '\[NOTICE\].* downloaded ' $TMP1 | wc -l
echo -en "upl.value "
grep '\[NOTICE\].* uploaded ' $TMP1 | wc -l
rm $TMP1

View file

@ -0,0 +1,46 @@
#!/bin/bash
#
#
# Script to show pureftp counts.
# Logs are searched in /var/log/pure-ftpd/transfer.log by default.
# Logs must be in w3c format:
# pure-ftpd --altlog w3c:/var/log/pure-ftpd/transfer.log
#
# Parameters understood:
#
# config (required)
# autoconf (optional - used by munin-config)
#
#
# Magic markers (optional - used by munin-config and installation
# scripts):
#
#%# family=auto
#%# capabilities=autoconf
MAXLABEL=20
if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title FTP Server'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel Daily FTP Operations'
echo 'graph_category ftp'
echo 'graph_period second'
echo 'ftp_put.type GAUGE'
echo 'ftp_get.type GAUGE'
echo 'ftp_put.label Files PUT'
echo 'ftp_get.label Files GET'
exit 0
fi
echo -en "ftp_put.value "
echo $(grep "`date '+%Y-%m-%d'`" /var/log/pure-ftpd/transfer.log | grep [[:space:]]\\[\\]created[[:space:]] | wc -l)
echo -n
echo -en "ftp_get.value "
echo $(grep "`date '+%Y-%m-%d'`" /var/log/pure-ftpd/transfer.log | grep [[:space:]]\\[\\]sent[[:space:]] | wc -l)

View file

@ -0,0 +1,123 @@
#!/usr/bin/perl
use HTTP::Date;
use Date::Manip;
$logfile="/var/log/pure-ftpd/transfer.log";
$ts="/tmp/munin_pureftpd_traffic_plugin_ts";
if ($ARGV[0] eq "test") {
$handle = open LOG,"<$logfile";
if(!$handle) {
print "Can't open logfile!\n";
exit -1;
}
$handle = open TS,"<$ts";
if(!$handle) {
print "Can't open lockfile!\n";
exit -1;
}
print "OK\n";
exit 0;
}
if ($ARGV[0] eq "config") {
$out.="graph_title pureftpd traffic
graph_category ftp
graph_info This graph shows pureftpd traffic.
graph_vlabel Bytes
get.label Get
get.type COUNTER
get.draw LINE1
get.colour ff0000
put.label Put
put.type COUNTER
put.draw LINE1
put.colour 00ff00
mti.label MTI
mti.type COUNTER
mti.draw LINE1
mti.colour 0000ff
dsm.label DSM
dsm.type COUNTER
dsm.draw LINE1
dsm.colour 009999
";
print $out;
exit 0;
}
if (!(-e $logfile)) {
die "No transfer.log available!";
}
if (!(-e $ts)) {
open LOG, "<$logfile" or print "Can't open logfile!\n";
my $last_line;
while(<LOG>) {
$last_line = $_ if eof;
}
close LOG;
@em = split(/ /,$last_line);
$curr_ts = "$em[3] $em[4]";
$curr_ts =~ s/\[//g;
$curr_ts =~ s/\]//g;
open TS, ">$ts";
print TS $curr_ts;
close TS;
$last_ts=$curr_ts;
} else {
open TS, "<$ts";
@l=<TS>;
close TS;
$last_ts=$l[0];
}
my $get=0,
$put=0,
$mti=0,
$dsm=0;
open LOG, "<$logfile";
@log=<LOG>;
foreach $row (@log) {
@parts=split(/ /,$row);
$curr_ts = "$parts[3] $parts[4]";
$curr_ts =~ s/\[//g;
$curr_ts =~ s/\]//g;
if ( Date_Cmp($curr_ts,$last_ts) > 0 ) {
if ( $parts[5]=~ /GET/ ) {
$get+=int($parts[8]);
if ($parts[2] eq "mti") {
$mti+=int($parts[8]);
}
if ($parts[2] eq "dsm") {
$dsm+=int($parts[8]);
}
}
if ( $parts[5]=~ /PUT/ ) {
$put-=int($parts[8]);
if ($parts[2] eq "mti") {
$mti-=int($parts[8]);
}
if ($parts[2] eq "dsm") {
$dsm-=int($parts[8]);
}
}
}
}
open TS, ">$ts";
print TS $curr_ts;
close TS;
close LOG;
$out="get.value $get
put.value $put
mti.value $mti
dsm.value $dsm
";
print $out;
exit (0);
__END__