root / plugins / mail / dovecot @ rtr0
Historique | Voir | Annoter | Télécharger (3,74 ko)
| 1 |
#! /bin/bash |
|---|---|
| 2 |
# |
| 3 |
# Munin Plugin |
| 4 |
# to count logins to your dovecot mailserver |
| 5 |
# |
| 6 |
# Created by Dominik Schulz <lkml@ds.gauner.org> |
| 7 |
# http://developer.gauner.org/munin/ |
| 8 |
# Contributions by: |
| 9 |
# - Stephane Enten <tuf@delyth.net> |
| 10 |
# |
| 11 |
# Parameters understood: |
| 12 |
# |
| 13 |
# config (required) |
| 14 |
# autoconf (optional - used by munin-config) |
| 15 |
# |
| 16 |
# Config variables: |
| 17 |
# |
| 18 |
# logfile - Where to find the syslog file |
| 19 |
# |
| 20 |
# Add the following line to a file in /etc/munin/plugin-conf.d: |
| 21 |
# env.logfile /var/log/your/logfile.log |
| 22 |
# |
| 23 |
# Magic markers (optional - used by munin-config and installation scripts): |
| 24 |
# |
| 25 |
#%# family=auto |
| 26 |
#%# capabilities=autoconf |
| 27 |
|
| 28 |
###################### |
| 29 |
# Configuration |
| 30 |
###################### |
| 31 |
STAT_FILE=${STAT_FILE:-/var/lib/munin/plugin-state/plugin-dovecot.state}
|
| 32 |
EXPR_BIN=/usr/bin/expr |
| 33 |
LOGFILE=${logfile:-/var/log/mail.log}
|
| 34 |
###################### |
| 35 |
|
| 36 |
if [ "$1" = "autoconf" ]; then |
| 37 |
echo yes |
| 38 |
exit 0 |
| 39 |
fi |
| 40 |
|
| 41 |
if [ "$1" = "config" ]; then |
| 42 |
echo 'graph_title Dovecot Logins' |
| 43 |
echo 'graph_category Mail' |
| 44 |
echo 'graph_args --base 1000 -l 0' |
| 45 |
echo 'graph_vlabel Login Counters' |
| 46 |
echo 'login_total.label Total Logins' |
| 47 |
echo 'login_tls.label TLS Logins' |
| 48 |
echo 'login_ssl.label SSL Logins' |
| 49 |
echo 'login_imap.label IMAP Logins' |
| 50 |
echo 'login_pop3.label POP3 Logins' |
| 51 |
echo 'connected.label Connected Users' |
| 52 |
exit 0 |
| 53 |
fi |
| 54 |
|
| 55 |
############################# |
| 56 |
# Initialization |
| 57 |
############################# |
| 58 |
if [ ! -r $STAT_FILE ]; then |
| 59 |
echo "TOTAL=0" > $STAT_FILE |
| 60 |
echo "TLS=0" >> $STAT_FILE |
| 61 |
echo "SSL=0" >> $STAT_FILE |
| 62 |
echo "IMAP=0" >> $STAT_FILE |
| 63 |
echo "POP3=0" >> $STAT_FILE |
| 64 |
fi |
| 65 |
############################# |
| 66 |
|
| 67 |
|
| 68 |
###################### |
| 69 |
# Total Logins |
| 70 |
###################### |
| 71 |
echo -en "login_total.value " |
| 72 |
NEW_TOTAL=$(egrep '[dovecot]?.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l) |
| 73 |
OLD_TOTAL=$(grep TOTAL $STAT_FILE | cut -f2 -d '=') |
| 74 |
TOTAL=$($EXPR_BIN $NEW_TOTAL - $OLD_TOTAL) |
| 75 |
if [ $TOTAL -gt 0 ]; then |
| 76 |
echo "$TOTAL" |
| 77 |
else |
| 78 |
echo "0" |
| 79 |
fi |
| 80 |
echo -n |
| 81 |
###################### |
| 82 |
# Connected Users |
| 83 |
###################### |
| 84 |
DISCONNECTS=$(egrep '[dovecot]?.*Disconnected' $LOGFILE | sort | wc -l) |
| 85 |
CONNECTS=$(egrep '[dovecot]?.*Login' $LOGFILE | sort | wc -l) |
| 86 |
DISCON=$($EXPR_BIN $CONNECTS - $DISCONNECTS) |
| 87 |
if [ $DISCON -lt 0 ]; then |
| 88 |
DISCON=0 |
| 89 |
fi |
| 90 |
echo -en "connected.value " |
| 91 |
echo $DISCON |
| 92 |
echo -n |
| 93 |
###################### |
| 94 |
# TLS Logins |
| 95 |
###################### |
| 96 |
echo -en "login_tls.value " |
| 97 |
NEW_TLS=$(egrep '[dovecot]?.*Login.*TLS' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l) |
| 98 |
OLD_TLS=$(grep TLS $STAT_FILE | cut -f2 -d '=') |
| 99 |
TLS=$($EXPR_BIN $NEW_TLS - $OLD_TLS) |
| 100 |
if [ $TLS -gt 0 ]; then |
| 101 |
echo "$TLS" |
| 102 |
else |
| 103 |
echo "0" |
| 104 |
fi |
| 105 |
echo -n |
| 106 |
###################### |
| 107 |
# SSL Logins |
| 108 |
###################### |
| 109 |
echo -en "login_ssl.value " |
| 110 |
NEW_SSL=$(egrep '[dovecot]?.*Login.*SSL' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l) |
| 111 |
OLD_SSL=$(grep SSL $STAT_FILE | cut -f2 -d '=') |
| 112 |
SSL=$($EXPR_BIN $NEW_SSL - $OLD_SSL) |
| 113 |
if [ $SSL -gt 0 ]; then |
| 114 |
echo "$SSL" |
| 115 |
else |
| 116 |
echo "0" |
| 117 |
fi |
| 118 |
echo -n |
| 119 |
###################### |
| 120 |
# IMAP Logins |
| 121 |
###################### |
| 122 |
echo -en "login_imap.value " |
| 123 |
NEW_IMAP=$(egrep '[dovecot]?.*imap.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l) |
| 124 |
OLD_IMAP=$(grep IMAP $STAT_FILE | cut -f2 -d '=') |
| 125 |
IMAP=$($EXPR_BIN $NEW_IMAP - $OLD_IMAP) |
| 126 |
if [ $IMAP -gt 0 ]; then |
| 127 |
echo "$IMAP" |
| 128 |
else |
| 129 |
echo "0" |
| 130 |
fi |
| 131 |
echo -n |
| 132 |
###################### |
| 133 |
# POP3 Logins |
| 134 |
###################### |
| 135 |
echo -en "login_pop3.value " |
| 136 |
NEW_POP3=$(egrep '[dovecot]?.*pop3.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l) |
| 137 |
OLD_POP3=$(grep POP3 $STAT_FILE | cut -f2 -d '=') |
| 138 |
POP3=$($EXPR_BIN $NEW_POP3 - $OLD_POP3) |
| 139 |
if [ $POP3 -gt 0 ]; then |
| 140 |
echo "$POP3" |
| 141 |
else |
| 142 |
echo "0" |
| 143 |
fi |
| 144 |
echo -n |
| 145 |
###################### |
| 146 |
# Save the new values |
| 147 |
###################### |
| 148 |
echo "TOTAL=$NEW_TOTAL" > $STAT_FILE |
| 149 |
echo "TLS=$NEW_TLS" >> $STAT_FILE |
| 150 |
echo "SSL=$NEW_SSL" >> $STAT_FILE |
| 151 |
echo "IMAP=$NEW_IMAP" >> $STAT_FILE |
| 152 |
echo "POP3=$NEW_POP3" >> $STAT_FILE |
| 153 |
|
