/usr/share/munin/plugins/perdition is in munin-plugins-extra 2.0.25-2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | #!/bin/sh
# -*- sh -*-
: << =cut
=head1 NAME
perdition - Plugin to graph perdition connections and errors
=head1 CONFIGURATION
The following configuration variables are available for this plugin:
logfile - Log file to tail (default: "/var/log/perdition.log")
logtail - Path to logtail (default: "/usr/sbin/logtail")
=head1 DEPENDENCIES
Requires: logtail
=head1 AUTHOR
Copyright Micah Anderson <micah@riseup.net>
Jan 23, 2005
=head1 LICENSE
Unknown
=head1 MAGIC MARKERS
#%# family=contrib
#%# capabilities=autoconf
=head1 NOTES
# The different log lines we are interested in:
#
# buffy perdition[7583]: Connect: 64.45.82.181->69.50.164.185
# buffy perdition[20097]: Close: 217.19.50.108->69.50.74.154 user="mek" received=12 sent=23
# buffy perdition[7435]: Auth: 130.22.173.20->69.90.134.185 user="gotn" server="192.168.0.2" port="143" status="ok"
# buffy perdition[26986]: Auth: 72.13.2.186->69.92.134.215 user="moves" server="192.168.0.2" port="110" status="ok"
# Then there are some errors, I'm just going to put these all into one line, they could easily be
# separate out if we were interested in how many of each type of error, but 7 lines for this graph is a lot
# buffy perdition[20908]: Fatal Error reading authentication information from client "203.52.112.34->68.92.124.155": Exiting child
# buffy perdition[27754]: Fatal error establishing SSL connection to client
# buffy perdition[5139]: Fatal error negotiating setup. Exiting child.
=cut
mktempfile () {
mktemp -p /tmp/ $1
}
# Set the location of the perdition logs
PERDITION_LOG=${logfile:-/var/log/perdition.log}
OFFSET_FILE=${MUNIN_PLUGSTATE}/perdition.offset
LOGTAIL=${logtail:-/usr/sbin/logtail}
case $1 in
autoconf|detect)
if [ -f ${PERDITION_LOG} -a -x ${LOGTAIL} ]
then
echo yes
exit 0
else
echo "no (either $PERDITION_LOG was not found, or logtail was not in your path)"
exit 0
fi
;;
config)
cat <<EOF
graph_title Perdition Connections
graph_vlabel Number of Connections
graph_total Total
connection.label connections
disconnected.label disconnections
imap.label IMAP Auths
imaps.label IMAPS Auths
pop.label POP Auths
pops.label POPS Auths
fatal.label Fatal Errors
EOF
# Echo warnnig and critical attributes if set in the plugin config
for i in imap imaps pop pops fatal connection disconnected; do
warn=\$${i}_warn; eval val=$warn
[ "$val" ] && echo "$i.warning ${val}"
crit=\$${i}_crit; eval val=$crit
[ "$val" ] && echo "$i.critical ${val}"
done
exit 0
;;
esac
ARGS=0
`$LOGTAIL /etc/hosts 2>/dev/null >/dev/null`
if [ $? = 66 ]; then
if [ ! -n "$logtail" ]; then
ARGS=1
fi
fi
TEMP_FILE=`mktempfile munin-perdition.XXXXXX`
if [ -z "$TEMP_FILE" -o ! -f "$TEMP_FILE" ]; then
exit 3
fi
if [ $ARGS != 0 ]; then
${LOGTAIL} -f ${PERDITION_LOG} -o ${OFFSET_FILE} > ${TEMP_FILE}
else
${LOGTAIL} ${PERDITION_LOG} ${OFFSET_FILE} > ${TEMP_FILE}
fi
connection=`grep "Connect:" ${TEMP_FILE} | wc -l`
disconnected=`grep "Close:" ${TEMP_FILE} | wc -l`
imap=`grep 'port="143" status="ok"' ${TEMP_FILE} | wc -l`
imaps=`grep 'port="993" status="ok"' ${TEMP_FILE} | wc -l`
pop=`grep 'port="110" status="ok"' ${TEMP_FILE} | wc -l`
pops=`grep 'port="995" status="ok"' ${TEMP_FILE} | wc -l`
fatal=`grep 'Fatal [e|E]rror' ${TEMP_FILE} | wc -l`
rm ${TEMP_FILE}
echo "connection.value ${connection}"
echo "disconnected.value ${disconnected}"
echo "imap.value ${imap}"
echo "imaps.value ${imaps}"
echo "pop.value ${pop}"
echo "pops.value ${pops}"
echo "fatal.value ${fatal}"
|