mirror of
https://github.com/munin-monitoring/contrib.git
synced 2018-11-08 00:59:34 +01:00
109 lines
2.3 KiB
Bash
Executable file
109 lines
2.3 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Plugin to show Postfix statistics - needs pflogsumm
|
|
#
|
|
# Contributed by David Obando (david@cryptix.de) - 16.04.2007
|
|
# Rewrited by Cristian Deluxe (me@cristiandeluxe.com) - 02.11.2016
|
|
#
|
|
#
|
|
# Example config for Ubuntu (You need: apt-get install pflogsumm)
|
|
#
|
|
# [postfix_stats]
|
|
# env.logfile /var/log/syslog
|
|
# env.logfile2 /var/log/syslog.1
|
|
# env.pflogsumm pflogsumm
|
|
#
|
|
#
|
|
# Magic markers - optional - used by installation scripts and
|
|
# munin-config:
|
|
#
|
|
#%# family=manual
|
|
#%# capabilities=autoconf
|
|
|
|
#set -xv
|
|
SYS_LOG=${logfile:-/var/log/syslog}
|
|
SYS_LOG2=${logfile2:-/var/log/syslog.0}
|
|
PFLOGSUMM=${pflogsumm:-pflogsumm.pl}
|
|
|
|
#
|
|
# Autoconf Section
|
|
#
|
|
if [ "$1" = "autoconf" ]; then
|
|
# Try to find pflogsumm with default name
|
|
PFLOG_EXIST=$(command -v pflogsumm.pl)
|
|
|
|
# Try to find pflogsumm without any extension
|
|
if [[ -z "${PFLOG_EXIST}" ]]
|
|
then
|
|
PFLOG_EXIST=$(command -v pflogsumm)
|
|
fi
|
|
|
|
if [[ -z "${PFLOG_EXIST}" ]]
|
|
then
|
|
echo "no";
|
|
else
|
|
echo "yes"
|
|
fi
|
|
exit 0;
|
|
fi
|
|
|
|
#
|
|
# Config Section
|
|
#
|
|
if [ "$1" = "config" ]; then
|
|
echo "system.type COUNTER"
|
|
echo "graph_title Postfix statistics"
|
|
echo "graph_vlabel Postfix statistics"
|
|
echo "graph_category Mail"
|
|
echo "graph_total Total"
|
|
echo "received.label received"
|
|
echo "delivered.label delivered"
|
|
echo "forwarded.label forwarded"
|
|
echo "deferred.label deferred"
|
|
echo "bounced.label bounced"
|
|
echo "rejected.label rejected"
|
|
echo "held.label held"
|
|
echo "discarded.label discarded"
|
|
exit 0;
|
|
fi
|
|
|
|
#
|
|
# Plugin Script
|
|
#
|
|
|
|
# Variable to store the pflogsumm result.
|
|
TMP_RAW=$("${PFLOGSUMM}" -d today --detail 0 --zero-fill "${SYS_LOG}" "${SYS_LOG2}")
|
|
|
|
# Parse value from Raw result
|
|
#
|
|
# Return digit if regex are parsed correctly
|
|
#
|
|
# Return -1 if any error occurs
|
|
#
|
|
parseValue() {
|
|
TMP_RETURN=$(echo "${TMP_RAW}" | grep -Ei '^[[:space:]]+[[:digit:]]+[[:space:]]+'"${1}"'.*$' | grep -oEi '[[:digit:]]+[[:space:]]+' | sed 's: ::g')
|
|
if [[ -z "${TMP_RETURN}" ]]
|
|
then
|
|
echo -1
|
|
else
|
|
echo "${TMP_RETURN}"
|
|
fi
|
|
}
|
|
|
|
# Print results
|
|
printf "received.value "
|
|
parseValue "received"
|
|
printf "delivered.value "
|
|
parseValue "delivered"
|
|
printf "forwarded.value "
|
|
parseValue "forwarded"
|
|
printf "deferred.value "
|
|
parseValue "deferred"
|
|
printf "bounced.value "
|
|
parseValue "bounced"
|
|
printf "rejected.value "
|
|
parseValue "rejected"
|
|
printf "held.value "
|
|
parseValue "held"
|
|
printf "discarded.value "
|
|
parseValue "discarded"
|