Power BI - Exchange

Bei einer Auswertung von Exchange kommen mir zuerst die Messagetrackinglogs in den Kopf. Hier drin steckt ziemlich viel, was Sie auswerten können. Allerdings sind dazu ein paar Vorarbeiten erforderlich, auf die ich gleich eingehe

Exchange Postfach

Vorher möchte ich aber auf die eingebaute Funktion von Power BI für den Zugriff per EWS auf Postfächer eingehen. Wenn Sie in Power BI eine neue Datenquelle addieren, dann können Sie hier auch Exchange auswählen.

Nach der Eingabe der Mailadresse verbindet sich Power BI Desktop per EWS mit dem Postfach und bietet ihnen dann die "Tabellen" an:

Über die Bearbeitung der Daten können Sie noch filtern etc.

Dann können die Sie Importeinstellungen speichern, die Daten importieren und in der Folge analysieren. Tiefer möchte ich darauf nicht eingehen. Der Zugang ist sehr einfach und sie können durch den "Nur Lesen-Zugriff" auch nichts kaputt machen. Allerdings könnte der Exchange Server kurzfristig mehr Last bekommen. Die Analyse beschränkt sich aber auf eine Mailbox aber nicht auf alle Postfächer. 

Analyse von Postfächern

Wenn Sie die Daten aus mehreren Postfächern analysieren wollen, dann kommen Sie mit Power BI alleine nicht weiter. Da müssen Sie schon mit einem eigenen Script z.B. per EWS die gewünschten Informationen z.B. in eine Datenbank oder CSV-Datei exportieren

Ein entsprechenden Skript werde ich bei Gelegenheit nachreichen. Meine aktuelle Version ist deutlich zu langsam.

 

Analyse von Messagetracking und Clientzugriffen

Leichter ist der Zugang zum Exchange Messagetracking. Exchange protokolliert hier alle übertragenen Mails in Textdateien, die entweder direkt gelesen oder über die Powershell exportiert werden können. für diese Aufgabe hatte ich sogar einen konkreten Anlass: Ein Kunde hatte eine sehr verteilte Exchange 2007 Umgebung mit vielen Standorten und entsprechend dezentralen Servern. für die Zukunft war zu klären, ob die aktuelle Nutzung auch in Verbindung mit einer zentralisierten Exchange 2013/2016 oder Exchange Online Installation möglich ist. Insofern gab es einige Punkte zu erfassen.

  • Nachrichten innerhalb der Site
    Diese Datenmenge würde bei einer zentralisierten Serverumgebung über das WAN laufen
  • Nachrichten zwischen den Sites
    Diese Datenmenge entfällt zwischen den Sites aber kommt dann auf dem Weg zur zentralen Seite hinzu. Auch ist es interessant zu sehen, wie viele Mails z.B. durch die PublicFolder Replikation generiert wird.
  • Nachrichten mit dem Internet
    Diese Mails gehen vom Client zum dezentralen Server und dann wieder zur Zentrale Richtung Internet, Mit einer zentralen oder Cloud-Lösung muss der Client nur einmal zum Server aber die internen WAN-Leitungen bleiben ansonsten frei.
  • Clients Zugriffe
    Dies ist besonders interessant, da über einen schon zentralen Zugang die mobilen Mitarbeiter relativ uneffektiv auf ihre Postfächer zugreifen. Hier wird durch eine Zentralisierung Verkehr eingespart. Auf der anderen Seite hingegen kommt natürlich wieder der interne Verkehr hinzu.
  • Migrationsvolumen
    Letztlich müssen natürlich durch einen Wechsel auf einen zentralen Service die bisherigen Inhalte verlagert werden. Das kann man auch offline per PST-Dateien machen oder indem man den Server einer Niederlassung in einer Nacht und Nebel-Aktion in die Zentrale umzieht oder eben doch über das WAN.

Jede Auswertung hat natürlich Sonderfälle, die aus Vereinfachungsgründen nicht genau erfasst werden. Dazu zählen z.B. die Nutzung von mehreren Clients durch einen Anwender, speziell Mobiltelefone. Auch die Themen "Provisioning der der OST-Datei" beim Rechnerwechsel (Profil kopieren oder komplette Synchronisation) sind zu bewerten. Ebenso der Einsatz von ThinClients und Terminalservices. Insofern gibt es keine 100% genaue Analyse

Das ist aber im Bereich Exchange Messagetracking nicht so einfach, aus eier Liste der Empfänger erst mal auf die Datenbank zu schließen, diese über den Server auf eine AD-Site zu mappen und so letztlich die SourceSite und TargetSite zu ermitteln. Zumal sind hierbei die Datenschutz-Belange zu beachten. für eine reine Auswertung nach Volumen, Anzahl, Quellen und Ziel ist es nicht erforderlich, die individuellen Mailadressen oder Betreffs zu können. Hier bietet sich ein Skript an, welches neben der Vorverarbeitung auch eine Reduzierung und Anonymisierung der Daten vornimmt.

Da ich keine Analyse einer Mail "durch" das System machen wollte, reicht mir eine CSV-Zeile pro Message. Exchange protokolliert aber natürlich mehr Zeilen für Empfang, Routing, HA-Redirection, Transportagenten etc. Also habe ich mir ein paar Skripte gebaut:

  • Ermitteln der Datenbanken zur AD-Site
    Diese Vorarbeit brauche ich, um im nächsten Schritt den Benutzern eine Site zuzuordnen
  • ProxyAdresse zu Exchange Site
    Dann hole ich mir alle Mailadresse aus dem AD und versuche per HomeMDB oder HomeMTA diese einem Standort zuzuweisen
  • Statische Zuweisung
    Dann habe ich mir noch eine Datei angelegt, mit der ich statisch bestimmte Mailadressen oder Domains zu einer "Site" zuordnen kann. z.B. "fax.intern" oder "sap.firma.tld" werden nicht als "extern" und damit Internet später aufgelistet
  • Parse Messagetracking
    Dann kommt das eigentliche Skript zum Einsatz, welches das Messagetracking ausliest und zuerst einmal nur die Events verarbeitet, die eine lokale Zustellung in eine Mailbox oder einen Versand über einen Connector kennzeichnet. Ich habe absichtlich den Weg gewählt, wann eine Mail aus Sicht von Exchange am Ziel ist, da damit auch Mails an mehrere Personen schon aufgeschlüsselt sind. Natürlich muss ich für einen kompletten Status auch alle Server entsprechend abfragen. Damit es schneller geht, nutze ich nicht die Exchange Powershell, sondern lese direkt die Logdateien mit Import-CSV

Die daraus resultierenden CSV-Dateien kann ich dann einfach zusammen kopieren und dann in PowerBI analysieren. So kann dann eine Auswertung aussehen:

Das linke Diagramm zeigt die Anzahl und Summe der Mails über 24h. Das rechte Bild zeigt die Anzahl der Mails und Summer nach Größe. Die Farbunterschiede zeigen den Anteil der Mails, die in der lokalen Site bleiben. Natürlich sind noch viel mehr Auswertungen möglich, z.B. nach Standorten.

Zukunft

Ich könnte mir vorstellen, dass PowerBI in der Cloud eine interessante Option wäre. Ich müsste nur mit einer lokalen Software die relevanten Daten z.B.: aus dem Messagetracking oder anderen Quellen in eine Azure-SQL-Datenbank oder direkt in den PowerBI-Store pushen, so dass dort ein richtiges Exchange "Warehouse" entstehen könnte.