AXIGEN – Überwachung der Queue mit Push-Benachrichtigung

Eine der wichtigsten Aufgaben für Mailserver Administratoren ist die Überwachung der Mail-Queue. Läuft die Queue voll, liegt ein Problem vor und Mails können nicht zugestellt werden. Dieser Artikel zeigt, wie Sie die Queue überwachen können und im Störungsfall benachrichtigt werden.

Die Benachrichtigung soll in unserem Fall über eine Push-Nachricht erfolgen. Hierzu muss man sich beim Dienst pushover anmelden. Der Dienst selbst ist kostenlos, die Apps für die verschiedenen Smartphones kosten etwas, können aber kostenfrei getestet werden. Mit der Anmeldung erhalten Sie ein User-Token. Nach der Anmeldung legen Sie bitte auch eine Applikation an (z.B. AXIGEN). Für diese Applikation erhalten Sie ebenfalls ein Token – das App-Token. Diese beiden Zeichenketten benötigen wir später wieder. Zum aktuellen Zeitpunkt kann man bis zu 7500 Nachrichten pro Monat kostenlos versenden. Das sollte reichen :-)

Danach benötigen wir einen Aufruf zur Überwachung der Queue. Das ist durch folgenden Befehl möglich:

find /var/opt/axigen/queue/ -name 'S*' | wc -l

Dieser gibt die Anzahl der Mails aus, die sich aktuell in der Queue befinden – z.B. 14.

Als nächstes benötigen wir noch den Aufruf zum Versand der Push-Benachrichtigung. Das können wir mit curl bewerkstelligen (ggf. vorher installieren). Hier bitte USERTOKEN und APPTOKEN durch Ihre Werte ersetzen.

curl -s --form-string "token=APPTOKEN" --form-string "user=USERTOKEN" --form-string "message=AXIGEN Queue Alarm: $counter Mails in der Queue" https://api.pushover.net/1/messages.json

Zusammengefasst können wir das in Shell-Script verpacken. Wenn der Schwellwert von 100 Mails in der Queue überschritten wird, erfolgt die Benachrichtigung. Diesen Wert kann man natürlich entsprechend anpassen (-gt 100):


#!/bin/bash
counter=`find /var/opt/axigen/queue/ -name 'S*' | wc -l`;
if [ $counter -gt 100 ]; then
curl -s --form-string "token=APPTOKEN" --form-string "user=USERTOKEN" --form-string "message=AXIGEN Queue Alarm: $counter Mails in der Queue" https://api.pushover.net/1/messages.json
fi

Dieses Script legt man am System ab und macht es ausführbar. Im letzten Schritt müssen wir das Script nur noch im System ablegen und z.B. alle fünf Minuten über einen Cronjob ausführen:

*/5 * * * * /bin/bash /usr/local/queuewatch/queuewatch >/dev/null 2>&1

Die Meldung sieht dann so aus:

IMG_9056

Weiterlesen