End2End-SMTPFlow

Alle Skripte sind Muster ohne jede Gewährleistung oder Funktionsgarantie. für Schäden bin ich nicht verantwortlich. Achten Sie auf Zeilenumbrüche bei der Übernahme.

VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird, welcher unter C:\Windows\SysWOW64\cscript.exe liegt.

Dieses Skript ist nur ein einzelner Test und ersetzt kein komplettes Monitoring. Es gibt eine ganze Menge Überwachungsprogramme, die einen SMTP-Roundtrip als einen Sensor von vielen anbieten. Vielleicht ist ihnen besser geholfen, wenn Sie sich dahingehen umsehen statt ein VBScript einbauen.
Kleiner Tipp von mir: Mit SMTP-Sensoren ausgehende E-Mails monitoren https://www.paessler.com/de/smtp-monitoring  (Freeware mit beschränkter Sensoranzahl)

Ich denke dass mittlerweile fast alle Exchange Server irgendwie eine Verbindung zum Internet haben. Nur wie überwachen Sie, ob die Mailfunktion auch gewährleistet ist ?. Wie Sie sicher wissen, kann ein Mailserver bis zu drei Tage eine Nachricht immer wieder erneut zustellen. Nicht alle senden dazwischen eine "Ich versuche es weiter"-Mail. In der heutigen schnelllebigen Zeit ist jedoch die Verlässlichkeit und Antwortzeit eines Mailsystems immer wichtiger.

Also sollten Sie eben diese Funktion auch überwachen. Und dies geht Natürlich wieder einmal am besten mit einem Skript, welches Testmails versendet, die Antworten einsammelt, auswertet und bei Bedarf auch Alarm schlägt. Etwas Statistik wäre auch nicht schlecht.

Das Prinzip

Der Test der Verbindung erfolgt durch den regelmäßigen Versand von SMTP-Nachrichten an bestimmte Adressen und der Auswertung der Rückantworten. Dazu sind mehrere Wege denkbar:

  • Freemailer
    Fast alle kostenfreien Mailboxen bei den gängigen Anbietern wie GMX, Web.DE und anderen erlauben das Einrichten von Regeln. Sie können auf eine Mail automatisch diese weiterleiten oder beantworten lassen. Das ist meine erste Wahl, um einen Laufzeittest zu machen.
    So habe ich z.B. eingerichtet, das eine Mail von meinem Monitorpostfach an ein GMX-Postfach gesendet wird, welches diese automatisch wieder zurückgesendet wird. Bei GMX können Sie die Mail als Kopie an eine andere Adresse weiterleiten lassen oder eine neue Mail als Benachrichtigung erstellen. Beider Verfahren übernehmen einen Teil des Betreffs, wie im Posteingang zu erkennen ist

    Ich ziehe den Weg der "Weiterleitung" vor, da damit der Betreff unverändert übernommen wird und damit ein Abschneiden oder anderer Veränderungen nicht stattfinden. Bei GMX sieht das z.B.: wie folgt aus
  • ECHO-Systeme
    Es gibt im Internet einige Firmen, Provider und Privatleute, die so genannte "Echo-Systeme" bereithalten. Wenn Sie eine Nachricht an diese Adresse senden, erhalten die die gleiche Nachricht wieder zurück, z.B. echo@charite.de, mirror@xlink.de und echo@tu-berlin.de. Diese Systeme waren früher hilfreich um Übertragungsfehler, Formatierungsverluste etc. zu erkennen. Sie haben also einfach ihre Mail an die Adresse gesendet und sollten danach die gleiche Mail, erweitert um einige Zeilen im Header und vertauschtem Empfänger und Server wieder zurück erhalten. Leider gibt es nur noch wenige Echo-Systeme, was sicher auch an den Spammern liegt, die eine solche Adresse als Absender verwenden und damit eine hohe Last (und Kosten) für den Betreiber produzieren. Sendet ein Spammer mit einer fremden Absenderadresse, dann erhält dieser die Mail, die auch en Virus sein kann, vom Betreiber des Echo. Beide Fälle sind rechtlich nicht ohne Probleme.

FRAGEN SIE auf jeden Fall den Betreiber des ECHO-Systems, dass Sie seinen Service als regelmäßige Gegenstelle verwenden dürfen !!

  • Ungültige Adressen
    Wenn Sie eine Nachricht an einen ungültigen Empfänger versenden, dann muss der Server, der die Nachricht nicht zustellen kann (Also der Server der Empfängerdomäne selbst oder das System davor, wenn der Empfänger die Mail ablehnt) eine Unzustellbarkeit versenden, die ebenfalls einen Teil der originalen Mail enthält. Allerdings gibt es immer mehr Mailserver, die ungültige Adressen direkt beim Empfang ablehnen. Die Testnachricht verlässt daher meist nicht mal ihr Netzwerk.

In alle füllen wird aber eine Nachricht mit dem Betreff an den Absender zurück gesendet. Kann eine Software nun diese Rücknachricht der vorher ausgehenden Nachricht zuordnen, dann lassen sich damit Ausfälle oder Verzögerungen erkennen und müssen. Nichts anderes macht das Script.

Diese Messungen sind niemals repräsentativ, sondern geben immer nur die Laufzeit zwischen ihrem System und genau einer Gegenstelle wieder. Auch findet keine Aufschlüsselung nach den Zwischenstationen statt.

Allerdings sollten Sie auch die Risiken und Probleme einer solchen Überwachung in ihre Überlegung mit einbeziehen:

  • Datenvolumen
    Alle 10 Minuten eine kleine Testmail und die Rückantwort
  • POP3-Sauger
    Die Antwortzeit und Roundtripzeit ist Natürlich nur bedingt aussagekräftig, wenn Sie ihre Mails nicht "erhalten", sondern diese über ein Polling abholen müssen. (Siehe auch POP3 abholen / SMTP anfordern)
  • Spamschutz, DoS, Firewall
    Wenn Sie immer die gleiche Mail an einen Empfänger senden, dann kann es sein, dass dieser die Mail bald als "Spam" klassifiziert und nicht mehr durchlässt. Einige Firewall könnten solche regelmäßige Verbindungen auch als versuchte DoS-Attacke oder andere Versuche eines Einbruchs erkennen und die Verbindungen verhindern.
  • Stören
    Sie sollten sich genau überlegen, welche Gegenstelle Sie für ihren "Test" verwenden. Auch auf der Gegenseite entstehen Kosten und Sie sind als Absender Natürlich ermittelbar, da Sie die Rückantwort ja benötigen. Am besten ist es daher, wenn Sie ihren Provider oder eine befreundete Firma als Gegenstelle nutzen, die auf Gegenseitigkeit auch ihr System als Gegenstelle verwenden darf.

So viel zur Theorie. Was funktioniert das Script nun tatsächlich ?

Funktionsweise

Das Script benutzte die CDO 1.21-Library, die auf jedem Exchange Server vorhanden ist, um sich mit einem Exchange Postfach zu verbinden und mit diesem die Nachrichten zu versenden. Sie sind also gut beraten, wenn Sie hierfür einen eigenen Benutzer im Active Directory mit einem Postfach anlegen und das Script mit eben diesem Benutzernamen starten.

Das Skript verbindet sich mit dem Postfach und liest alle eingegangen Nachrichten im Posteingang. Dabei nutzt er den Datum-Zeitstempel im Betreff und die Empfangszeit von Outlook um die "Roundtrip-Zeit" zu errechnen und auszugeben.

Am Ende sendet das Script eine Mail an die konfigurierte Adresse mit einem besonders aufbereiteten Betreff. Die aktuelle Zeit wird im Betreff so hinterlegt, dass sie bei einer Rücknachricht auch einfach wieder erkannt werden kann. Der Body selbst bleibt bis auf einen kleinen Hinweise, den Sie auch anpassen können, leer.

Diese Ansicht erhalten Sie nur, wenn Sie die Zeile "oMapiMessage.delete" aus dem Skript auskommentieren, da das Skript alle verarbeitete Nachrichten löscht.

CheckSMTP Version 1.x hat die Nachrichten liegen lassen und einen XML-Report erstellt. Damit wurde das  Postfach aber relativ groß und die Verarbeitung sehr aufwändig. Ab End2End-SMTPflow 2.0 werden die Ergebnisse der Nachrichten in einer CSV-Datei und der RRD-Datenbank gespeichert.

Download

End2End-SMTPflow.2.6.vbs.txt

https://oss.oetiker.ch/rrdtool/download.en.html
Sie benötigen noch RRDTOOL. Ich habe mit der Version 1.2.10 für Windows gearbeitet. In dem Archiv finden Sie RRDTOOL.EXE im Verzeichnis \rrdtool\release.

Kopieren Sie einfach beide Programme in ein Verzeichnis. Das VBScript müssen sie die Erweiterung umbenennen.

Aufgrund der "Ähnlichkeit" der versendeten Nachrichten kann es Spamfilter geben, die diese Nachrichten als Wiederholungen einstufen und entsprechend filtern. Sie müssen dann die Spamfilter entsprechend anpassen.

Konfiguration und Alarmschwellen

Dieser Abschnitt ist wichtig. Ohne passende Konfiguration wird End2End-SMTPflow nicht funktionieren.

Das Script arbeitet mit drei Alarmschwellen, die voneinander abhängig sind:

  • Aufrufintervall
    Das Skript sollte regelmäßig aufgerufen werden, damit Aussetzer auch bemerkt werden. Da jeder Durchlauf eine Mail erzeugt, die auch wieder ausgewertet werden muss, sollte dieses Intervall nicht so groß und nicht zu klein gewählt werden. Zeiten von 5-15 Minuten scheinen mir praktikabel zu sein.
  • maximale Roundtripzeit
    Diese Zeit ist der Grenzwert, den eine Mail maximal unterwegs sein darf. Sie wird ermittelt zwischen der Absendezeit, die im Betreff steht und der Empfangszeit im Postfach. Jede Mail, die dem Muster entspricht wird ausgewertet. Jede Mail wird an RRDTOOL zur Aufnahme in die Datenbank übergeben.
  • maximale Zeit ohne Statusmeldung
    Um einen langen Ausfall zu erkennen, wird die Zeit seit dem Empfang der letzten Mail ausgewertet. ist über diesen Zeitraum keine weitere Mail eingetroffen, wird von einem Fehler ausgegangen und ein Alarm generiert

Beachten Sie bitte, dass die maximale Zeit ohne Statusmeldung nicht kleiner als das Aufrufintervall + die erlaubte Roundtripzeit sein sollte, da sie sonst sehr viele Meldungen erhalten werden. Allerdings müssen Sie vor dem Einsatz vorab im Script einige weitere Randbedingungen einrichten und Parameter konfigurieren.

Randbedingungen

  • Postfach einrichten
    Das Script muss Mails versenden und empfangen. Legen Sie daher am besten ein eigenes Postfach mit eigenem Benutzernamen an, welcher dann vom Script genutzt wird. Der Benutzername und das Kennwort sollten Sie dann einfach beim MSTask auch als Benutzer für die Ausführung des Scripts verwenden.

Das Konto darf nicht "verborgen" sein, da sonst CDO das Postfach nicht auflösen kann !

  • CDO 1.21
    Das Script nutzt CDO 1.21. Sie können das Script damit optimal auf dem Exchange Server selbst starten. Sie können aber auch jeden anderen Computer nehmen, auf dem entweder Outlook MIT CDO! oder der Exchange System Manager installiert ist.
  • Rechte auf Programmverzeichnis
    Das Script legt per Default im Programmverzeichnis die Datenbank und Protokolle ab. Sorgen Sie daher dafür, dass das Script auch die Berechtigungen zum Schreiben hat oder ändern Sie die Pfade dass die erstellten Dateien nicht im Programmverzeichnis liegen, welches in hochsicheren Umgebungen häufig "ReadOnly" ist.
    Auch die Bilder werden im Unterverzeichnis ".\web" angelegt.  Dieses Verzeichnis muss vorhanden und beschreibbar sein.

Parameter

Nun der etwas aufwändigere Teil. Das VBScript benötigt einige Parameter, die Sie im Script selbst setzen müssen.

  • Const STRHOMESERVER = "srv01"
    Tragen Sie hier den Namen des Exchange Servers ein, auf dem sich das Postfach befindet. Theoretisch können sie einen beliebigen Exchange Server eintragen, da MAPI/CDO dann umgelenkt wird. Sie sparen aber Rechenleistung und gewinnen Unabhängigkeit, wenn der Postfachserver eingetragen ist.
  • Const STRMAILBOX = "Administrator@msxfaq.local"
    Tragen Sie hier die Mailadresse oder den ALIAS der Mailbox ein, welche das Script verwendet. End2End-SMTPflow meldet sich per MAPI an diesem Postfach an. Meine Angaben sind nur Muster und funktionieren nicht in der realen Welt. Sie sollten hier eine eineindeutige Kennzeichnung angeben, z.B.: den Alias, den Displaynamen oder am besten eben die SMTP-Adresse des Postfachs.
  • Const STRMIRROR = "mirrro@msxfaq.local"
    Dies ist die Mailadresse, an die eine Testnachricht gesendet wird. Die Gegenstelle muss die Mail möglichst schnell wieder an den Absender zurück senden und den Betreff dabei möglichst komplett übernehmen. Meine Angaben sind nur Muster und funktionieren nicht in der realen Welt.
  • Const INTTIMEOUT = 600
    Diese Zeit in Sekunden ist die Schwelle, die End2End-SMTPflow noch toleriert. Ist eine Mail länger als diese Zeit unterwegs oder eine Statusmail älter als diese Zeit, dann wird ein "ALERT" daraus.
  • Const STRALERTMAIL = "Administrator@msxfaq.local"
    An diese Mailadresse sendet End2End-SMTPflow bei überschreiten der Roundtripzeit eine Alarmmeldung.
  • RRDTool Integration
    Wenn Sie die folgenden Variablen sinnvoll füllen und die RRDTOOL.EXE vorhanden, dann erzeugt das Script auch gleich eine nette Grafik
    Const RRDEXE = ".\RRDTOOL.EXE"
    Const RRDDB = ".\End2End-SMTPflow.RRD" 'Pfad und Name der Datenbank"
    Const RRDPNG = " .\web\End2End-SMTPflow"  'Pfad der erstellten Bilder
    Tipp: Sie können den Wert für RRDPNG einfach leer lassen, dann wird dennoch eine RRD-Datenbank geschrieben, die sie mit anderen Mitteln, z.B. einer dynamischen Webseite, on the fly erstellen können (siehe auch RRDTool)
  • const INTRRDINTERVAL = 600
    Dies ist das Intervall in Sekunden, in welchem das Script gestartet wird (oder mit der Option LOOP selbst sich startet). Dieser Parameter wird zudem für die Erzeugung der RRD-Datenbank genutzt. (2x diese Zeit bedeutet ein fehlender Datensatz)
  • Anpassungen des Betreffs
    Das Script "erkennt" seine Mail daran, dass der Zeitstempel im Betreff durch ein Start und Ende-Token eingerahmt ist. Diese können Sie anpassen, z.B.: wenn Sie das Script mit mehreren Zielen verwenden
    const STRTOKEN1 = "MSXFAQ:End2End-SMTPflow:" ' Prefix im Betreff
    const STRTOKEN2 = ":MSXFAQ:End2End-SMTPflow" ' PostFix im Betreff

Die Aktivitäten des Scripts werden in einer Protokolldatei und in einer XML-Ausgabedatei abgelegt. Die XML-Datei können Sie z.B. mit dem Internet Explorer einfach anschauen. Das VBScript legt ein passendes Stylesheet gleich mit an. Wenn Sie End2End-SMTPflow später im Regelbetrieb einsetzen, sollten Sie aber die Parameter im Script so ändern, dass nur noch sehr wenig protokolliert wird oder die Dateien löschen.

Aufruf

Damit die Tests auch aussagekräftig sind, sollten Sie das Script natürlich regelmäßig arbeiten lassen. Dazu gibt es wieder zwei Wege.

  • Taskplaner
    Das Script können Sie z.B.: über Windows Taskplaner von Windows regelmäßig aufrufen lassen. Der Aufruf ist einfach. Bei diesem Aufruf wird das Script nach dem Durchlauf wieder beendet.
C:\>cscript End2End-SMTPflow
  • Endlosbetrieb
    Alternativ können Sie das Script im Endlosbetrieb starten, d.h. das Script ruft die Funktion selbst immer wieder auf. Dies hat den Vorteil, dass nicht immer der Windows Scripting Host gestartet werden muss. Sie können das Script dann z.B.: �ber MSTASK als "Startupscript" starten oder mit AUTOEXNT oder anderen Tools als Dienst starten. Starten Sie das Script dann einfach wie folgt.
C:\>cscript End2End-SMTPflow loop

Seit Windows 2000 kann der MSTASK-Planer auch Skripte beim "Startup" starte und permanent laufen lassen. Ich rate aber dennoch eher zum regelmäßigen Aufruf per MSTASK, da damit Abbrüche des Script /(z.B. Exchange Server nicht erreichbar etc.) abgefangen werden

Achten Sie darauf, dass das Script wirklich um Mitternacht losläuft, alle 10 Minuten bis 23:59 wiederholt wird und ein vorher laufender Task abgebrochen wird. Zudem muss der ausführende Benutzer Natürlich die Berechtigungen auf das Postfach und zum Versand von Mail haben. In der Übersicht der geplanten Auftrags sollte der Auftrag dann wie hier angezeigt auftauchen.

Die Arbeit des Scripts können Sie im Protokollfile nachvollziehen. End2End-SMTPflow legt beim Start eine Textdatei an, in die es alle Aktionen abhängig vom eingestellten Protokollgrad niederschreibt. Sie sollten nach einigen Tagen Betrieb die Protokollfunktionen auf 1 oder 2 reduzieren, so dass nur noch wichtige Meldungen und Fehler aufgeschrieben werden. Dazu muss folgende Zeile angepasst werden

objDebug.target = "file:3 console:6 " ' ie eventlog

Eine höhere Ziffer protokolliert "mehr". so protokolliert folgende Zeile nur noch minimale Meldungen und Fehler.

objDebug.target = "file:1 console:1"

Folgende Zeile protokolliert zusätzlich noch Warnungen

objDebug.target = "file:2 console:2"

Auswertung (RRDTOOL oder CSV)

End2End-SMTPflow erlaubt mehrere Möglichkeiten der Auswertung und Nutzung:

Alarmierung per Mail

Das Script überwacht die folgenden beiden Kriterien:

  • Maximale Roundtripzeit
  • Letzte Statusmail

Wenn einer der beiden Kriterien über dem Schwellwert ist, wird eine Nachricht an den entsprechenden Kontakt generiert. So erhalten Sie schnell eine Information bei einem Fehler. Diese Funktion ist losgelöst von den folgenden statistischen Funktionen. Im Postfach tauchen dann Mails in der folgenden Art auf:

Der Empfänger kann Natürlich auch ein öffentlicher Ordner, ein Verteiler oder ein SMS-Empfänger sein, solange die Zieladresse als SMTP-Adresse von Exchange erreichbar ist.

CSV-Bericht

Seit Version 2.0 erstellt End2End-SMTPflow keine XML-Datei mehr. Aktuell werden die extrahierten Ergebnisse in einer CSV-Datei abgelegt. Der Aufbau ist sehr einfach und kann problemlos anderweitig ausgewertet werden.

Die Bedeutung der einzelnen Spalten erschließt sich sehr einfach.

  • date
    Zeitstempel, wann der Eintrag in der CSV-Datei abgelegt wurde
  • senttime
    Zeitstempel, wann die Statusmail versendet wurde.
  • receivetime
    Zeitstempel, wann die Nachricht empfangen wurde
  • delta
    Laufzeit in Sekunden
  • status
    OK wenn innerhalb des eingestellten Intervalls

Grafik mit RRDTool

Viel interessanter ist daher die Übernahme der Messwerte in eine permanente Datenbank, die zudem, auch entsprechende Bilder erstellen kann. Aus diesem Grund kann End2End-SMTPflow die ermittelten Daten auch an das Programm "RRDTOOL" übermitteln, welches die Informationen in eine RRD-Datenbank ablegen und auch wieder ausgeben kann.

RRDTOOL ist ein sehr mächtiges Werkzeug. Die Inhalte der Datenbank können Sie nicht nur als Grafik ausgeben, sondern auch als XML-Datei anderweitig weiter verarbeiten.
Das Erzeugen der Grafik kann End2End-SMTPflow übernehmen,  wobei hier dann für jede Mail eine Grafik erzeugt wird. Besser ist es diesen Prozess zu trennen und das Bild z.B.: durch ein CGI-Script auf dem Webserver dynamische erzeugen zu lassen. Siehe dazu auch RRDTool

ACHTUNG:
Erwarten Sie nicht, dass nach den ersten Aufrufen schon eine Grafik angezeigt wird. RRDTool muss einige Messwerte haben, um die Grafiken sinnvoll aufzubereiten. Was in der Datenbank steht können Sie mit RRDTOOL dump Datenbankname als XML-Datei ausgeben. Dies kann nach wenigen Minuten schon Auskunft über die Daten geben. Eine Grafik sollten sie nach ein paar Stunden anschauen können.

Das Script legt beim ersten Start eine RRD-Datenbank an, die folgende Datenreihen enthält:

  • Täglich
    Sammlung der Messwerte für eine Tagesgrafik.

    Man kann gut die "Aussetzer" erkennen, bei denen keine Messwerte existieren bzw. das Script nicht gestartet oder aufgerufen wurde.
  • Wöchentlich
    Eine Zusammenfassung der Messwerte, so dass eine Grafik für eine Woche angezeigt werden kann

    Da die Gegenstelle hier GMX ist, könnte man vermuten, dass Sonntags die Antwortzeiten langsamer sind. Aber solche Aussagen geben diese Daten noch nicht her. Dazu sind die Testintervalle nicht repräsentativ.
  • Monat

    Eine Zusammenfassung der Messwerte, so dass eine Grafik für einen Monat angezeigt werden kann.

    Sie erkennen gut, dass das Script erstmalig in der KW51 gestartet wurde und auch hier noch einige Stunden "Aussetzer" vorhanden sind.

  • WebPart
    Seit der Version 2.3 wurde End2End-SMTPflow noch um eine weitere Grafik im Format 100x100 erweitert, die Sie z.B.: in einem Sharepoint Portal als Bildwebpart einbinden können. Die Grafik wird rot, wenn der letzte Test fehlgeschlagen ist.

    So können auch Anwender selbst z.B.: auf der Intranet-Seite Ausfälle und deren Behebung erkennen und ersparen sich Anrufe beim Helpdesk.

Die RRD-Datenbank ist Natürlich nur ein Speicher für die Messwerte. Dank RRDTOOL könne Sie die Daten jederzeit auch wieder aus der Datenbank als XML-Datei exportieren.

Aktuell werden die Daten in einer RRD-Datei mit drei RRA gehalten. Die Einstellung ist so gewählt, dass ausreichend Messwerte für eine tägliche Ansicht erstellt werden und sowohl 7 als auch 30 Messwerte zusammengefasst werden, um wöchentliche und monatliche Auswertungen mit geringeren Daten zu erhalten. Dies kann im Source Natürlich angepasst werden, wenn Sie mehr Daten speichern wollen.

Ausgabe im Web

Natürlich hat nun kein Anwender was davon, wenn die Daten einfach so erfasst und die Bilder erstellt werden. Daher können Sie diese Werte Natürlich auch in einem Intranet bereitstellen. Und das geht über zwei Wege:

Statische Grafik mit IIS

Das Script erzeugt schon die Grafiken. Definieren sie einfach den Ausgabepfad so, dass Sie die Bilder in einem Verzeichnis des Webeservers ablegen. Dann müssen Sie nur noch eine kleine Webseite oder ein Sharepoint Bild-Webpart erstellen, die diese Grafik verlinkt. Als Vorbereitung legt das Script die Bilder schon in einem eigenen Verzeichnis ".\web" ab, so dass Sie dieses direkt veröffentlichen können:

Da in dem Verzeichnis "nur" Bilder liegen, muss der IIS auch kein Skript ausführen können. Kontrollieren Sie im IIS-Manager aber noch die Authentifizierung und andere Parameter, die sie eventuell für ihr Umfeld anpassen wollen. In diesem Beispiel kann die tägliche Statistik nun mit einem Browser über folgende URLs angezeigt werden:

http://servername/End2End-SMTPflow/End2End-SMTPflow-day.pngs

Natürlich können Sie das Bild damit auch in ihr Intranet oder jede andere Webseite einbinden.

Grafik mit RRDTool

Wie oben schon beschrieben, können die Grafikgenerierung von End2End-SMTPflow deaktivieren und nur die RRD-Datenbank erstellen lassen. RRDTool lässt sich nämlich wunderbar als CGI-Script oder aus einem Perl-Script innerhalb des Webservers ausführen. Dann werden die Bilder nicht alle 10 Minuten auf Verdacht generiert, sondern der Webserver generiert dieser im Moment des Aufrufs der Seite in Echtzeit aus der Datenbank.

Informationen, wie sie RRDTOOL im IIS oder Apache integrieren, um aus der Datenbank eine Grafik zu generieren, finden Sie auf MRTG Monitoring und den dort vorhandenen Links zu anderen Seiten.

Denkbare Weiterentwicklungen

  • Mehrere Ziele
    Aktuell nutzt End2End-SMTPflow genau ein Quell und ein Zielpostfach. Wenn sie mehrere Gegenstellen überprüfen wollen, dann müssen Sie das Script mehrfach kopieren und anpassen. Alle Skripte können aber bei geschickter Wahl der Tokens das gleiche Postfach verwenden. schöner wäre aber z.B. eine XML-Datei, in der die verschiedenen Ziele gepflegt werden können.
  • MOM Integration
    Hier gibt es solche Laufzeit-Monitore schon für Exchange innerhalb einer Organisation. Ich habe aber bislang noch keinen Test für "extern" gefunden.
  • eigene Echo-Funktion
    Warum GMX und andere Nutzen, wenn End2End-SMTPflow schon Nachrichten verarbeiten kann So könnte End2End-SMTPflow auch selbst als Gegenstelle für andere "Partner" dienen.
  • Mailboxserver finden
    Aktuell muss im Script nicht nur das Postfach sondern auch der Homeserver gepflegt werden. Genau genommen würde eine Abfrage gegen das AD auch den Homeserver ermitteln.
  • Error Handling
    VBScript wird sehr schnell unübersichtlich, wenn man alles und jeden Fehler abfangen und behandeln will. So müssen Sie damit leben, dass das Script vielleicht mit einem Fehler abbricht, den ich nicht abgefangen habe. Hier ist sicher noch Verbesserungsbedarf. Oder Sie starten das Script aus einem Batch, welches es bei einem Abbruch immer wieder startet.
    Besonders wenn der Exchange Server nicht erreichbar ist, bricht das Script ab. Ich wollte aber nun nicht mit "on error resume next" alle Fehler Ausblenden.
  • Eventlog
    Das Script läuft von Hause aus "unbewacht". Insofern sollten Sie prüfen, ob Sie Fehler nicht einfach in das Windows Eventlog schreiben lassen, damit diese z.B. mit MOM2005 einfacher zu überwachen sind. Mein "debugWriter" unterstützt dies. Es muss nur aktiviert werden.
  • Verlorene Mails
    Aktuell erkennt End2End-SMTPflow Natürlich, wenn eine Statusmail innerhalb eines Aufrufintervalls ausbleibt und wenn eine Mail sehr lange braucht, wird das auch gemeldet, aber eine gesonderte Behandlung von "Verlorenen Mails" ist aktuell nicht implementiert
  • XML Datenformat
    zuk�nftig ist wieder eine XML-Datei statt der CSV-Datei mein Ziel zur Ablage der Informationen. Nur gibt dies bisher mein XML-Writer noch nicht her, eine bestehende XML-Datei zu erweitern. Planungen existieren aber schon. Sie können aber einfach auch RRDTOOL nutzen.

Weitere Links