Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / mail / dovecot @ rtr0

Historique | Voir | Annoter | Télécharger (3,74 ko)

1 d5de773e Steve Schnepp
#! /bin/bash
2 36b8ff3a Dominik Schulz
#
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 9a1129c0 Steve Schnepp
STAT_FILE=${STAT_FILE:-/var/lib/munin/plugin-state/plugin-dovecot.state}
32 36b8ff3a Dominik Schulz
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 aca139cc ToM
	echo 'graph_title Dovecot Logins'
43
	echo 'graph_category Mail'
44 36b8ff3a Dominik Schulz
	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 b9557dd9 Kenyon Ralph
NEW_TOTAL=$(egrep '[dovecot]?.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
73 36b8ff3a Dominik Schulz
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 b9557dd9 Kenyon Ralph
DISCONNECTS=$(egrep '[dovecot]?.*Disconnected' $LOGFILE | sort | wc -l)
85
CONNECTS=$(egrep '[dovecot]?.*Login' $LOGFILE | sort | wc -l)
86 36b8ff3a Dominik Schulz
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 b9557dd9 Kenyon Ralph
NEW_TLS=$(egrep '[dovecot]?.*Login.*TLS' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
98 36b8ff3a Dominik Schulz
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 b9557dd9 Kenyon Ralph
NEW_SSL=$(egrep '[dovecot]?.*Login.*SSL' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
111 36b8ff3a Dominik Schulz
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 b9557dd9 Kenyon Ralph
NEW_IMAP=$(egrep '[dovecot]?.*imap.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
124 36b8ff3a Dominik Schulz
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 b9557dd9 Kenyon Ralph
NEW_POP3=$(egrep '[dovecot]?.*pop3.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
137 36b8ff3a Dominik Schulz
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