Projet

Général

Profil

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

root / plugins / mail / dovecot @ 430d68ff

Historique | Voir | Annoter | Télécharger (3,71 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
	echo 'graph_title Dovcecot Logins'
43
	echo 'graph_args --base 1000 -l 0'
44
	echo 'graph_vlabel Login Counters'
45
	echo 'login_total.label Total Logins'
46
	echo 'login_tls.label TLS Logins'
47
	echo 'login_ssl.label SSL Logins'
48
	echo 'login_imap.label IMAP Logins'
49
	echo 'login_pop3.label POP3 Logins'
50
	echo 'connected.label Connected Users'
51
	exit 0
52
fi
53
54
#############################
55
# Initialization
56
#############################
57
if [ ! -r $STAT_FILE ]; then
58
	echo "TOTAL=0" > $STAT_FILE
59
	echo "TLS=0" >> $STAT_FILE
60
	echo "SSL=0" >> $STAT_FILE
61
	echo "IMAP=0" >> $STAT_FILE
62
	echo "POP3=0" >> $STAT_FILE
63
fi
64
#############################
65
66
67
######################
68
# Total Logins
69
######################
70
echo -en "login_total.value "
71 b9557dd9 Kenyon Ralph
NEW_TOTAL=$(egrep '[dovecot]?.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
72 36b8ff3a Dominik Schulz
OLD_TOTAL=$(grep TOTAL $STAT_FILE | cut -f2 -d '=')
73
TOTAL=$($EXPR_BIN $NEW_TOTAL - $OLD_TOTAL)
74
if [ $TOTAL -gt 0 ]; then
75
	echo "$TOTAL"
76
else
77
	echo "0"
78
fi
79
echo -n
80
######################
81
# Connected Users
82
######################
83 b9557dd9 Kenyon Ralph
DISCONNECTS=$(egrep '[dovecot]?.*Disconnected' $LOGFILE | sort | wc -l)
84
CONNECTS=$(egrep '[dovecot]?.*Login' $LOGFILE | sort | wc -l)
85 36b8ff3a Dominik Schulz
DISCON=$($EXPR_BIN $CONNECTS - $DISCONNECTS)
86
if [ $DISCON -lt 0 ]; then
87
	DISCON=0
88
fi
89
echo -en "connected.value "
90
echo $DISCON
91
echo -n
92
######################
93
# TLS Logins
94
######################
95
echo -en "login_tls.value "
96 b9557dd9 Kenyon Ralph
NEW_TLS=$(egrep '[dovecot]?.*Login.*TLS' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
97 36b8ff3a Dominik Schulz
OLD_TLS=$(grep TLS $STAT_FILE | cut -f2 -d '=')
98
TLS=$($EXPR_BIN $NEW_TLS - $OLD_TLS)
99
if [ $TLS -gt 0 ]; then
100
	echo "$TLS"
101
else
102
	echo "0"
103
fi
104
echo -n
105
######################
106
# SSL Logins
107
######################
108
echo -en "login_ssl.value "
109 b9557dd9 Kenyon Ralph
NEW_SSL=$(egrep '[dovecot]?.*Login.*SSL' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
110 36b8ff3a Dominik Schulz
OLD_SSL=$(grep SSL $STAT_FILE | cut -f2 -d '=')
111
SSL=$($EXPR_BIN $NEW_SSL - $OLD_SSL)
112
if [ $SSL -gt 0 ]; then
113
	echo "$SSL"
114
else
115
	echo "0"
116
fi
117
echo -n
118
######################
119
# IMAP Logins
120
######################
121
echo -en "login_imap.value "
122 b9557dd9 Kenyon Ralph
NEW_IMAP=$(egrep '[dovecot]?.*imap.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
123 36b8ff3a Dominik Schulz
OLD_IMAP=$(grep IMAP $STAT_FILE | cut -f2 -d '=')
124
IMAP=$($EXPR_BIN $NEW_IMAP - $OLD_IMAP)
125
if [ $IMAP -gt 0 ]; then
126
	echo "$IMAP"
127
else
128
	echo "0"
129
fi
130
echo -n
131
######################
132
# POP3 Logins
133
######################
134
echo -en "login_pop3.value "
135 b9557dd9 Kenyon Ralph
NEW_POP3=$(egrep '[dovecot]?.*pop3.*Login' $LOGFILE | grep "`date '+%b %e'`" | sort | wc -l)
136 36b8ff3a Dominik Schulz
OLD_POP3=$(grep POP3 $STAT_FILE | cut -f2 -d '=')
137
POP3=$($EXPR_BIN $NEW_POP3 - $OLD_POP3)
138
if [ $POP3 -gt 0 ]; then
139
	echo "$POP3"
140
else
141
	echo "0"
142
fi
143
echo -n
144
######################
145
# Save the new values
146
######################
147
echo "TOTAL=$NEW_TOTAL" > $STAT_FILE
148
echo "TLS=$NEW_TLS" >> $STAT_FILE
149
echo "SSL=$NEW_SSL" >> $STAT_FILE 
150
echo "IMAP=$NEW_IMAP" >> $STAT_FILE
151
echo "POP3=$NEW_POP3" >> $STAT_FILE