mirror of
https://github.com/munin-monitoring/contrib.git
synced 2025-07-24 09:57:09 +00:00
dovecot: Use DERIVE to avoid ugly computations
Using a timed grep with a state computation is usually mostly wrong. The DERIVE field type is specifically designed for that very purpose. Closes #264
This commit is contained in:
parent
4055fb1562
commit
2a72cc32dd
1 changed files with 28 additions and 55 deletions
|
@ -7,6 +7,7 @@
|
|||
# http://developer.gauner.org/munin/
|
||||
# Contributions by:
|
||||
# - Stephane Enten <tuf@delyth.net>
|
||||
# - Steve Schnepp <steve.schnepp@pwkf.org>
|
||||
#
|
||||
# Parameters understood:
|
||||
#
|
||||
|
@ -28,7 +29,6 @@
|
|||
######################
|
||||
# Configuration
|
||||
######################
|
||||
STAT_FILE=${STAT_FILE:-/var/lib/munin-node/plugin-state/root/plugin-dovecot.state}
|
||||
EXPR_BIN=/usr/bin/expr
|
||||
LOGFILE=${logfile:-/var/log/mail.log}
|
||||
######################
|
||||
|
@ -43,37 +43,27 @@ if [ "$1" = "config" ]; then
|
|||
echo 'graph_category Mail'
|
||||
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'
|
||||
|
||||
for t in Total TLS SSL IMAP POP3
|
||||
do
|
||||
field=$(echo $t | tr '[:upper:]' '[:lower:]')
|
||||
echo "login_$field.label $t Logins"
|
||||
echo "login_$field.type DERIVE"
|
||||
echo "login_$field.min 0"
|
||||
done
|
||||
|
||||
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"
|
||||
VALUE=$(egrep '[dovecot]?.*Login' $LOGFILE | sort | wc -l)
|
||||
if [ ! -z "$VALUE" ]; then
|
||||
echo "$VALUE"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
|
@ -83,8 +73,8 @@ echo -n
|
|||
######################
|
||||
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
|
||||
VALUE=$($EXPR_BIN $CONNECTS - $DISCONNECTS)
|
||||
if [ -z "$DISCON" ] || [ "$DISCON" -lt 0 ]; then
|
||||
DISCON=0
|
||||
fi
|
||||
echo -en "connected.value "
|
||||
|
@ -94,11 +84,9 @@ 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"
|
||||
VALUE=$(egrep '[dovecot]?.*Login.*TLS' $LOGFILE | sort | wc -l)
|
||||
if [ ! -z "$VALUE" ]; then
|
||||
echo "$VALUE"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
|
@ -107,11 +95,9 @@ 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"
|
||||
VALUE=$(egrep '[dovecot]?.*Login.*SSL' $LOGFILE | sort | wc -l)
|
||||
if [ ! -z "$VALUE" ]; then
|
||||
echo "$VALUE"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
|
@ -120,11 +106,9 @@ 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"
|
||||
VALUE=$(egrep '[dovecot]?.*imap.*Login' $LOGFILE | sort | wc -l)
|
||||
if [ ! -z "$VALUE" ]; then
|
||||
echo "$VALUE"
|
||||
else
|
||||
echo "0"
|
||||
fi
|
||||
|
@ -133,21 +117,10 @@ 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"
|
||||
VALUE=$(egrep '[dovecot]?.*pop3.*Login' $LOGFILE | sort | wc -l)
|
||||
if [ ! -z "$VALUE" ]; then
|
||||
echo "$VALUE"
|
||||
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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue