CAS-Logging
Seit Exchange 2010 ist die Client Access Rolle die zentrale Drehscheibe für die Zugriff von allen Clients auf Postfächer. Nur der Zugriff auf öffentliche Ordner geht noch am CAS bzw. CASArray vorbei. Sofern der Zugriff per ActiveSync, OWA, EWS oder auch RPC/HTTP erfolgt, ist immer der IIS mit im Spiel, welcher von sich aus schon sehr umfangreiche Protokollfunktionen hat. Das Auswerten der HTTP-Logs soll aber nicht Thema dieser Seite sein.
Auch die eigentlich CAS-Rolle des Exchange Servers schreibt von sich aus verschiedene Protokolldateien mit, von denen der "RPC Client Access" sicher das interessanteste Log sein dürfte. Es findet sich im Logging-Verzeichnis des CAS-Servers.
Interessant sind hier der Inhalt aus "RPC Client Access" und "AddressBook Service", da sie als Administrator sonst kaum Einblick in die Zugriffe per RPC erhalten. Programm wie ExInsight funktionieren leider nicht mehr mit den aktuellen Exchange Versionen und die RPC-Encryption verhindert den ein oder anderen Einblick mit Wireshark
RCA Log
Interessant ist bei dem Logging des CAS die Protokollierung des RPC-Zugriffs. Per Default liegen Die Daten in "C:\Program Files\Microsoft\Exchange Server\V14\Logging\RPC Client Access" und werden jeden nach 30 Tagen gelöscht.
Der Aufbau ähnelt den IISLogs mit Kommentaren am Anfang und einem Komma als Trennzeichen:
Sie können diese Daten zwar per Notepad oder notfalls auch Excel auslesen, aber eleganter ist auch hier die Verarbeitung per PowerShell. Hier ein Beispiel:
Import-Csv ` -path .\RCA_20110510-1.LOG ` -Delimiter "," ` -Header "date-time","session-id","se q-number","client-name","organization-info","client-software","client-software-v ersion","client-mode","client-ip","server-ip","protocol","application-id","opera tion","rpc-status","processing-time","operation-specific","failures"
Durch die Aufarbeitung mit Import-CSV erhalten Sie für jede Zeile einen Datensatz mit den Properties:
Hier noch mal in textueller Form
date-time : 2011-05-10T21:35:54.029Z session-id : 8 seq-number : 12 client-name : /o=E2010Org/ou=Exchange Administrative Group (FYDIBOH F23SPDLT)/cn=Recipients/cn=User1 organization-info : client-software : OUTLOOK.EXE client-software-version : 14.0.4760.1000 client-mode : Classic client-ip : server-ip : protocol : ncacn_ip_tcp application-id : operation : OwnerLogon rpc-status : 0 processing-time : 00:00:00.0312500 operation-specific : Logon: Owner, /o=E2010Org/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=User1 in dat abase MB1 last mounted on W2K8R2E2010.E2010.local at 4/5/2011 9:54:01 AM, currently Mounted; LogonId: 1 failures :
Entsprechend sind natürlich Weiterverarbeitungen mit PowerShell sehr einfach möglich, z.B. die Gruppierung nach Outlook-Version oder ClientIP. Wenn Sie aber ihr System anschauen, dann werden Sie in der Regel KEINE ClientIP erkennen. Im Beispiel erkennen Sie aber, dass die Client und ServerIP nur beim ersten Eintrag zu einer Session protokolliert wird. Darauf müssen Sie bei Auswertungen natürlich Rücksicht nehmen.
Die Konfiguration der Protokollierung ist nicht per PowerShell erreichbar, sondern erfordert eine direkte Änderung der Datei "C:\Program Files\Microsoft\Exchange Server\V14\Bin\Microsoft.Exchange.RpcClientAccess.Service.exe.config":
By Default werden allerdings keine "Throtting"-Informationen und keine kompletten "ROPS" (Würde ich mit Remote Operations übersetzen) protokolliert.
Achtung
Diese zusätzlichen Optionen bewirken sehr viel
mehr Loginformationen. Allerdings enthalten Sie
keine Pfade oder Betreff-Informationen der
Zugriffe auf Elemente. Sie eignen sich daher
nicht für die Protokollierung der Zugriffe. Es
sind "nur" RPC-Zugriffe.
Vergessen Sie bei Änderungen an diese Datei, dass Sie den Dienst "Microsoft Exchange RPC Client Access Service (MSExchangeRPC)" einmal durchstarten, damit die Einstellungen aktiv werden.
-
Get-RCALog
Outlook Versionen und Clients aus den Exchange 2010 RCALogs auswerten
Address Book Log
Auch der Zugriff von Client auf den Exchange Addressbook Service wird in einer eigenen Protokollsammlung aufgeschrieben. Hier landen in einem vergleichbaren Format die Zugriffe der Clients. (Datei enthält umbrüche und gekürzten LegacyDN zur Lesbarkeit)
#Software: Microsoft Exchange #Version: 14.01.0218.011 #Log-type: AddressBook Protocol Logs #Date: 2011-05-24T19:56:59.320Z #Fields: date-time,session-id,seq-number,client-name,organization-info,client-ip,server-ip,protocol, operation,rpc-status,processing-time,operation-specific,failures,authentication,delay 2011-05-24T19:56:59.320Z,6,0,/o=E.../cn=User1,,192.168.182.1,W2K8R2E2010,ncacn_ip_tcp,GetNewDSA,,31,Self,,Ntlm,
Auch hier ist die ClientIP, der Benutzername und die aufgerufene Funktion ersichtlich. Die Konfiguration erfolgt in der XML-Datei "C:\Program Files\Microsoft\Exchange Server\V14\Bin\microsoft.exchange.addressbook.service.exe.config". Hier ein Auszug meiner Muster-VM. Sie sehen gut, dass das Verzeichnis per Default maximal 1 GB groß werden darf und die Dateien alle 10 MB umgebrochen werden. Nach 720 Stunden (=30 Tage) werden die Dateien aber wieder gelöscht.
- Understanding RPC Client
Access
http://technet.microsoft.com/en-us/library/ee332317.aspx
Get-LogonStatistics
Keine direkte Monitoring-Funktion des CAS-Servers ist die Ausgabe der gerade aktuell angemeldeten Benutzer am Postfachserver. Aber dennoch möchte ich dies nicht unterschlagen. Auch der Postfachserver führt eine Tabelle der aktuell angemeldeten Benutzer mit. Es sind zwar keine historische Daten, sondern eine Momentaufnahme, aber für die Fehlersuche und Analyse durchaus hilfreich.
Sie können die Ausgabe sowohl pro Benutzer als auch pro Server generieren
Get-LogonStatistics -Server mbserver | ft Username,clientipaddress,clientmode,clientversion > clients.txt get-logonstatistics -identity Username
Über die Pipeline können Sie die gewünschten Daten natürlich weiter filtern und verarbeiten
Allerdings sind die Daten nicht immer hilfreich. Da der Zugriff hier über den Exchange CAS erfolgt, ist die Client-Version nicht aussagekräftig.. Auch wenn das Commandlet ein Feld "ClientIP" hat, so ist das Feld hier leer. Die Ursache ist darin begründet, dass Outlook diese IP-Adresse als Teil des RPC-Pakets an den Server senden muss und der Server nicht die IP-Adresse der TCP-Verbindung hier protokolliert.
Outlook übermittelt diese Information aber nicht automatisch, sondern diese Quelle muss auf dem Client erst freigeschaltet werden. Dies ist eine Einstellung in der Registrierung. Der relevanten Schlüssel ist:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_User\Software\Microsoft\Office\14.0\Outlook\CancelRPC] "EnablePerfTracking"=dword:00000028
Alternativ kann dies auch per Gruppenrichtlinien erfolgen.
HKCU\Software\Policies\Microsoft\Office\14.0\Outlook\CancelRPC\EnablePerfTracking:DWORD = 0x00000028
Eine passende ADM-Datei können Sie recht einfach erstellen. Siehe auch Gruppenrichtlinien)
- Get-LogonStatistics
http://technet.microsoft.com/de-de/library/bb124415.aspx - Sanitizing
Get-LogonStatistics cmdlet data
to view better Logon stats in
Exchange 2007
http://gsexdev.blogspot.de/2009/03/sanitizing-get-logonstatistics-cmdlet.html - 831053 How to turn on the Enable Mail Logging option für troubleshooting in Outlook 2003, Outlook 2007 and Outlook 2010
- 2292750 The client IP address für an Outlook 2010 client is not logged in Exchange when you use the Get-LogonStatistics command
- Outlook Login
http://microsoft-outlook-support.blogspot.com/2008/03/outlook-login.html
Weitere Links
- CASArray
-
Get-RCALog
Outlook Versionen und Clients aus den Exchange 2010 RCALogs auswerten - What is the Enable logging (troubleshooting)
option?
http://office.microsoft.com/en-us/outlook-help/what-is-the-enable-logging-troubleshooting-option-HA001174266.aspx
How to turn on the Enable Mail Logging option für troubleshooting in Outlook 2003, Outlook 2007 and Outlook 2010
http://support.microsoft.com/kb/831053 - Troubleshooting Exchange
with LogParser:RCA logs
https://ingogegenwarth.wordpress.com/2015/05/30/troubleshooting-exchange-with-logparserrca-logs/ - RPC Client Access Logging In
Exchange 2010…
https://theucguy.net/rpc-client-access-logging-in-exchange/