Exchange 2013 Messagetracking
Exchange 2013 nutzt die gleiche Funktion um die Übertragung von Nachrichten zu verfolgen wie Exchange 2007 und 2010. Auch die PowerShell befehle sind die gleichen. Da sich aber die Rollen mit Exchange 2013 verändert haben, durchlaufen die Mails nun natürlich andere Zwischenstationen.
Ich habe für verschiedene Wege hier einmal die Logs zusammen gefasst, die bei einer Mail geschrieben werden.
Konfiguration
Alle Logs wurden in einer Umgebung mit 1x
Exchange 2013 und 1xExchange 2010 gemacht. Sie
sehen also keine redundanten Wege einer
HochverfügbarkeitsUmgebung. Sie sehen aber die
HAREDIRECTFAIL-Meldungen mangels HA Umgebung.
192.168.200.1 Internet Gateway
192.168.200.12 Exchange 2013 Server
192.168.200.10 Exchange 2010 Server.
Es werden NUR die Logs des Exchange 2013 gezeigt
Hinweis:
Wer mit Get-Messagetrackinglog arbeitet, findet
NICHT immer die Einträge in der richtigen
Reihenfolge vor. Fast immer sind bei ausgehenden
Mails die beiden Einträge vom Client zum Store
(RECEIVE STORE) und die Benachrichtigung vom
Store zum Hub (SUBMIT STORE) verzögert. Der
Timestamp ist aber korrekt, so dass ein
einfaches " | sort timestamp |" dazwischen die
Ordnung herstellt.
Weiterhin bietet es sich für Tests an, den
Testfall als "Betreff" zu verwenden, da
Get-Messagetrackinglog nach dem Betreff filtern
kann.
Alle Auswertungen wurden mit folgendem Befehl generiert.
get-messagetrackinglog -messagesubject "testname"| ` sort timestamp | ` ft timestamp,eventid,source,connec*,totalbytes,serverip,OriginalClientIp -AutoSize
Aktivieren
Per Default ist das Exchange Message Tracking auf allen Servern aktiviert. Sie können das recht einfach überprüfen.
[PS] C:\Windows\system32>Get-TransportService | fl messagetr* MessageTrackingLogEnabled : True MessageTrackingLogMaxAge : 30.00:00:00 MessageTrackingLogMaxDirectorySize : 1000 MB (1,048,576,000 bytes) MessageTrackingLogMaxFileSize : 10 MB (10,485,760 bytes) MessageTrackingLogPath : C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\MessageTracking MessageTrackingLogSubjectLoggingEnabled : True
Per Default protokolliert Exchange die letzten 30 Tage in 10 MB großen Dateien. Das Protokollverzeichnis darf aber maximal 1000 MB groß werden. Die ältesten Dateien werden bei Größenüberschreitung oder nach Alter gelöscht. die 30 Tage ist daher keine garantierte Mindesthaltbarkeit
Sie können das Messagetracking über die Powershell oder auch das ECP abschalten:
Ex2013 lokal
Dieser Test zeigt wie eine Mail auf dem gleichen Server übertragen wird.
Timestamp EventId Source ConnectorId TotalBytes ServerIp --------- ------- ------ ----------- ---------- -------- 7/4/2013 3:14:36 PM RECEIVE STOREDRIVER 7429 fe80::fdf3:c513:ee8a:81df%13 7/4/2013 3:14:36 PM HAREDIRECTFAIL SMTP 8131 7/4/2013 3:14:37 PM SUBMIT STOREDRIVER 7/4/2013 3:14:37 PM RECEIVE SMTP MSX2013\Default MSX2013 8131 192.168.200.13 7/4/2013 3:14:40 PM AGENTINFO AGENT 9361 7/4/2013 3:14:45 PM SEND SMTP Intra-Organization SMTP Send Connector 9468 192.168.200.13 7/4/2013 3:14:45 PM DELIVER STOREDRIVER 9462
Ex2013 -> Internet
Hier sendet der Server eine Mail von einem lokalen Postfach über einen Smarthost zum Internet.
Timestamp EventId Source ConnectorId TotalBytes ServerIp --------- ------- ------ ----------- ---------- -------- 3/11/2013 8:47:56 PM RECEIVE STOREDRIVER 8550 fe80::fdf3:c513:ee8a:81df%13 3/11/2013 8:47:56 PM HAREDIRECTFAIL SMTP 9115 3/11/2013 8:47:56 PM SUBMIT STOREDRIVER 3/11/2013 8:47:56 PM RECEIVE SMTP MSX2013\Default MSX2013 9115 192.168.200.13 3/11/2013 8:47:57 PM AGENTINFO AGENT 9681 3/11/2013 8:47:58 PM TRANSFER ROUTING 7200 3/11/2013 8:48:21 PM SEND SMTP Internet MSX2013 -> INET 7208 192.168.200.1
Interessant ist hier, dass die Mail anscheinend kleiner wird. Da wäre es schon mal interessant, per Pipelinetracing die Veränderungen genauer zu analysieren. Ich vermute der Exchange 2013 Server entfernt einige Einträge im Header, ehe die Mail den Server verlässt.
Internet -> Ex2013
In der Gegenrichtung empfängt der Server eine Mail aus dem Internet:
Timestamp EventId Source ConnectorId TotalBytes ServerIp OriginalClientIp --------- ------- ------ ----------- ---------- -------- ---------------- 3/11/2013 8:33:46 PM HAREDIRECTFAIL SMTP 5783 3/11/2013 8:33:47 PM RECEIVE SMTP MSX2013\Default MSX2013 5783 192.168.200.13 192.168.200.1 3/11/2013 8:33:48 PM AGENTINFO AGENT 6841 3/11/2013 8:33:49 PM SEND SMTP Intra-Organization SMTP Send Connector 6948 192.168.200.13 3/11/2013 8:33:49 PM DELIVER STOREDRIVER 6948 192.168.200.1
Interessant ist, dass die "OriginalClientIP" beim letzten Eintrag mit protokolliert wird.
Internet -> Ex2013 -> Ex2010
Der Empfang einer Mail aus dem Internet erfolgt auch über den "Default MSX2013"-Connector aber wird dann nach der Verarbeitung durch den AGENT (Mail wird größer) umgehend an den Exchange 2010 Server weiter gegeben.
Timestamp EventId Source ConnectorId TotalBytes ServerIp OriginalClientIp --------- ------- ------ ----------- ---------- -------- ---------------- 3/11/2013 8:01:09 PM HAREDIRECTFAIL SMTP 1365 3/11/2013 8:01:10 PM RECEIVE SMTP MSX2013\Default MSX2013 1365 192.168.200.13 192.168.200.1 3/11/2013 8:01:10 PM AGENTINFO AGENT 2233 3/11/2013 8:01:10 PM SEND SMTP Intra-Organization SMTP Send Connector 2294 1192.168.200.10 3/11/2013 8:03:13 PM HADISCARD SMTP 2294
Ex2013 -> Ex2010 -> Internet
Vor der Umstellung des Mailroutings kann auch ein Exchange 2013 Server über einen Exchange 2010-Server Mails in das Internet senden.
Timestamp EventId Source ConnectorId TotalBytes ServerIp --------- ------- ------ ----------- ---------- -------- 7/5/2013 10:25:30 AM RECEIVE STOREDRIVER 6809 fe80::fdf3:c513:ee8a:81df%13 7/5/2013 10:25:36 AM SUBMIT STOREDRIVER 7/5/2013 10:25:36 AM HAREDIRECTFAIL SMTP 7371 7/5/2013 10:25:36 AM RECEIVE SMTP MSX2013\Default MSX2013 7371 192.168.200.13 7/5/2013 10:25:37 AM AGENTINFO AGENT 7921 7/5/2013 10:25:37 AM TRANSFER ROUTING 5787 7/5/2013 10:25:37 AM SEND SMTP Intra-Organization SMTP Send Connector 5789 1192.168.200.10 7/5/2013 10:27:15 AM HADISCARD SMTP 5789
Ex2010 -> Ex2013 (nur Ex2013 Seite)
Wenn ein Exchange 2010 Benutzer eine Mail an einen Exchange 2013 Postfach sendet, dann sieht das wie folgt aus:
Timestamp EventId Source ConnectorId TotalBytes ServerIp OriginalClientIp --------- ------- ------ ----------- ---------- -------- ---------------- 3/11/2013 2:21:49 PM HAREDIRECTFAIL SMTP 11709 3/11/2013 2:21:50 PM RECEIVE SMTP MSX2013\Default MSX2013 11709 192.168.200.13 192.168.102.42 3/11/2013 2:21:50 PM AGENTINFO AGENT 11786 3/11/2013 2:22:02 PM SEND SMTP Intra-Organization SMTP Send Connector 13296 192.168.200.13 3/11/2013 2:22:02 PM DELIVER STOREDRIVER 13290 192.168.102.42
SMTP-Header
Auch wenn Sie in die SMTP-Header der Mail schauen, finden Sie die Stationen der Mail. Hier am Beispiel einer per SMTP, die in interner Server (MSXPRTG) an Exchange 2010 gesendet hat und dann über einen Exchange 2013 Server zum Internetprovider gegangen ist.
Received: from mail.msxfaq.de (gate.msxfaq.de [88.62.20.245]) by mx.kundenserver.de with ESMTP (Nemesis); Sat, 13 Jul 2013 01:51:34 +0200 Received: from MSX2013.msxfaq.de (192.168.200.13) by MSX2013.msxfaq.de (192.168.200.13) with Microsoft SMTP Server (TLS) id 15.0.620.29; Sat, 13 Jul 2013 01:51:26 +0200 Received: from MSX2010.msxfaq.de (192.168.200.10) by MSX2013.msxfaq.de (192.168.200.13) with Microsoft SMTP Server (TLS) id 15.0.620.29 via Frontend Transport; Sat, 13 Jul 2013 01:51:26 +0200 Received: from MSXPRTG (192.168.200.1) by MSX2010.msxfaq.de (192.168.200.10) with Microsoft SMTP Server id 14.3.123.3; Sat, 13 Jul 2013 01:51:25 +0200 From: <frank.carius@example.com> To: <ex2010@msxfaq.de>
Auch hier ist gut zu sehen, dass die Exchange 2013 Rolle gleich zwei Zeilen addiert. Einmal der "Frontend Transport" (als Proxy) und noch mal der SMTP-Transport auf der Mailboxrolle.