Für die Überwachung (Monitoring) der Systeme verwende ich gerne den PRTG Network Monitor der Firma Paessler AG.
PRTG bietet von Haus aus zahlreiche Sensoren. Leider keinen, mit dem ich die Anzahl der E-Mails in der Mailqueue eines Postfix Server überwachen kann. Zum Glück ist es aber möglich SSH Scripts als Sensor einzusetzen. Das foldende Script überwacht die Warteschlange und geniert eine Warnung bzw. einen Fehler beim Erreichen von bestimmten Schwellwerten.
Das Script unter /var/prtg/scripts ablegen.
#!/bin/bash
length=`/usr/sbin/postqueue -p | tail -n1 | awk '{print $5}'`
count=`echo $length | grep "[0-9]"`
mq=`/usr/sbin/postqueue -p | tail -n1`
empty="Mail queue is empty"
if [[ "$mq" == "$empty" ]]; then
count=0;
fi
#Schwellwert für Warnung
warn='1000'
#Schwellwert für Fehler
error='10000'
if [ "$count" == "" ]; then
echo "2:0:Fehler beim Auslesen der Mailqueue";
fi
if [ "$count" -le $warn ]; then
echo "0:"$count:"Ok";
fi
if [ "$count" -ge $warn ] && [ "$queuecount" -le $error ]; then
echo "1:"$queuelength:"Warnung";
fi
if [ "$count" -gt $error ]; then
echo "4:"$queuelength:"ACHTUNG! Mail Queue ist voll!";
fi