summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2009-12-08 00:47:09 +0100
committermh <mh@immerda.ch>2009-12-08 00:47:09 +0100
commitc1401b924ac3d0f09199e59867e0d8ea11537046 (patch)
tree2f21fa9ea9228fe04a09e486d7be432446ba80ee
parent62b6906414fced9dc3f84932bcb7acef420a2e7a (diff)
add munin plugin
-rw-r--r--files/munin/dovecot151
1 files changed, 151 insertions, 0 deletions
diff --git a/files/munin/dovecot b/files/munin/dovecot
new file mode 100644
index 0000000..f335c76
--- /dev/null
+++ b/files/munin/dovecot
@@ -0,0 +1,151 @@
+#!/bin/sh
+#
+# Munin Plugin
+# to count logins to your dovecot mailserver
+#
+# Created by Dominik Schulz <lkml@ds.gauner.org>
+# http://developer.gauner.org/munin/
+# Contributions by:
+# - Stephane Enten <tuf@delyth.net>
+#
+# Parameters understood:
+#
+# config (required)
+# autoconf (optional - used by munin-config)
+#
+# Config variables:
+#
+# logfile - Where to find the syslog file
+#
+# Add the following line to a file in /etc/munin/plugin-conf.d:
+# env.logfile /var/log/your/logfile.log
+#
+# Magic markers (optional - used by munin-config and installation scripts):
+#
+#%# family=auto
+#%# capabilities=autoconf
+
+######################
+# Configuration
+######################
+STAT_FILE=/var/lib/munin/plugin-state/plugin-dovecot.state
+EXPR_BIN=/usr/bin/expr
+LOGFILE=${logfile:-/var/log/mail.log}
+######################
+
+if [ "$1" = "autoconf" ]; then
+ echo yes
+ exit 0
+fi
+
+if [ "$1" = "config" ]; then
+ echo 'graph_title Dovcecot Logins'
+ echo 'graph_args --base 1000 -l 0'
+ echo 'graph_vlabel Login Counters'
+ echo 'login_total.label Total Logins'
+ echo 'login_tls.label TLS Logins'
+ echo 'login_ssl.label SSL Logins'
+ echo 'login_imap.label IMAP Logins'
+ echo 'login_pop3.label POP3 Logins'
+ echo 'connected.label Connected Users'
+ exit 0
+fi
+
+#############################
+# Initialization
+#############################
+if [ ! -r $STAT_FILE ]; then
+ echo "TOTAL=0" > $STAT_FILE
+ echo "TLS=0" >> $STAT_FILE
+ echo "SSL=0" >> $STAT_FILE
+ echo "IMAP=0" >> $STAT_FILE
+ echo "POP3=0" >> $STAT_FILE
+fi
+#############################
+
+
+######################
+# Total Logins
+######################
+echo -en "login_total.value "
+NEW_TOTAL=$(egrep 'dovecot.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
+OLD_TOTAL=$(grep TOTAL $STAT_FILE | cut -f2 -d '=')
+TOTAL=$($EXPR_BIN $NEW_TOTAL - $OLD_TOTAL)
+if [ $TOTAL -gt 0 ]; then
+ echo "$TOTAL"
+else
+ echo "0"
+fi
+echo -n
+######################
+# Connected Users
+######################
+DISCONNECTS=$(egrep 'dovecot.*Disconnected' $LOGFILE | sort | wc -l)
+CONNECTS=$(egrep 'dovecot.*Login' $LOGFILE | sort | wc -l)
+DISCON=$($EXPR_BIN $CONNECTS - $DISCONNECTS)
+if [ $DISCON -lt 0 ]; then
+ DISCON=0
+fi
+echo -en "connected.value "
+echo $DISCON
+echo -n
+######################
+# TLS Logins
+######################
+echo -en "login_tls.value "
+NEW_TLS=$(egrep 'dovecot.*Login.*TLS' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
+OLD_TLS=$(grep TLS $STAT_FILE | cut -f2 -d '=')
+TLS=$($EXPR_BIN $NEW_TLS - $OLD_TLS)
+if [ $TLS -gt 0 ]; then
+ echo "$TLS"
+else
+ echo "0"
+fi
+echo -n
+######################
+# SSL Logins
+######################
+echo -en "login_ssl.value "
+NEW_SSL=$(egrep 'dovecot.*Login.*SSL' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
+OLD_SSL=$(grep SSL $STAT_FILE | cut -f2 -d '=')
+SSL=$($EXPR_BIN $NEW_SSL - $OLD_SSL)
+if [ $SSL -gt 0 ]; then
+ echo "$SSL"
+else
+ echo "0"
+fi
+echo -n
+######################
+# IMAP Logins
+######################
+echo -en "login_imap.value "
+NEW_IMAP=$(egrep 'dovecot.*imap.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
+OLD_IMAP=$(grep IMAP $STAT_FILE | cut -f2 -d '=')
+IMAP=$($EXPR_BIN $NEW_IMAP - $OLD_IMAP)
+if [ $IMAP -gt 0 ]; then
+ echo "$IMAP"
+else
+ echo "0"
+fi
+echo -n
+######################
+# POP3 Logins
+######################
+echo -en "login_pop3.value "
+NEW_POP3=$(egrep 'dovecot.*pop3.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
+OLD_POP3=$(grep POP3 $STAT_FILE | cut -f2 -d '=')
+POP3=$($EXPR_BIN $NEW_POP3 - $OLD_POP3)
+if [ $POP3 -gt 0 ]; then
+ echo "$POP3"
+else
+ echo "0"
+fi
+echo -n
+######################
+# Save the new values
+######################
+echo "TOTAL=$NEW_TOTAL" > $STAT_FILE
+echo "TLS=$NEW_TLS" >> $STAT_FILE
+echo "SSL=$NEW_SSL" >> $STAT_FILE
+echo "IMAP=$NEW_IMAP" >> $STAT_FILE
+echo "POP3=$NEW_POP3" >> $STAT_FILE