#!/bin/sh # -*- sh -*- : << =cut =head1 NAME courier_ - plugin to graph courier logins and logouts =head1 APPLICABLE SYSTEMS Any system with a courier imap/pop3 server and logtail installed =head1 CONFIGURATION The configuration variables are: logtail - path to the logtail script logfile - log file from courier service - which courier service to graph Service names for courier are "imaplogin" and "courierpop3login". Good symlink names for this plugin is "courier_imaplogin" and "courier_courierpop3login", which will set the "service" environment variable to "imaplogin" and "courierpop3login", respectively. The default configuration is: [courier_*] env.logtail /usr/sbin/logtail env.logfile /var/log/mail.log env.service =head1 MAGIC MARKERS #%# family=contrib #%# capabilities=autoconf =head1 BUGS None known =head1 AUTHOR # Coypright Micah Anderson # Jan 22, 2005 =head1 LICENSE Unknown =cut # Set the location of the courier logs COURIER_LOG=${logfile:-/var/log/mail.log} SERVICE=${service:-`basename $0 | sed 's/^courier_//g'`} OFFSET_FILE=${MUNIN_PLUGSTATE}/courier_${SERVICE}.offset LOGTAIL=${logtail:-/usr/sbin/logtail} mktempfile () { mktemp -p /tmp/ $1 } case $1 in autoconf|detect) if [ -f ${COURIER_LOG} -a -x ${LOGTAIL} ] then # Makes no sense for wildcard plugin to autoconf to yes # unless you can provide suggestions. echo no exit 0 else echo "no (either $COURIER_LOG was not found, or logtail was not in your path)" exit 0 fi ;; config) cat </dev/null >/dev/null` if [ $? = 66 ]; then if [ ! -n "$logtail" ]; then ARGS=1 fi fi TEMP_FILE=`mktempfile munin-courier.XXXXXX` if [ -z "$TEMP_FILE" -o ! -f "$TEMP_FILE" ]; then exit 3 fi if [ $ARGS != 0 ]; then ${LOGTAIL} -f ${COURIER_LOG} -o ${OFFSET_FILE} | grep "$SERVICE" > ${TEMP_FILE} else ${LOGTAIL} ${COURIER_LOG} ${OFFSET_FILE} | grep "$SERVICE" > ${TEMP_FILE} fi connection=`grep Connection ${TEMP_FILE} | wc -l` disconnected=`grep DISCONNECTED ${TEMP_FILE} | wc -l` login=`grep LOGIN ${TEMP_FILE} | wc -l` logout=`grep LOGOUT ${TEMP_FILE} | wc -l` rm ${TEMP_FILE} echo "connection.value ${connection}" echo "disconnected.value ${disconnected}" echo "login.value ${login}" echo "logout.value ${logout}"