CCR Mon

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.

Exchange 2007 erlaubt eine neue Variante der Hochverfügbarkeit, indem die Datenbank über ein Kopieren von Protokolldateien auf einem anderen Server (CCR) oder eine andere Festplatte (LCR) übertragen werden. Da stellt sich natürlich die Frage der Überwachung einer solchen Konstellation.

Natürlich meldet Exchange entsprechende Fehler im Eventlog und über den Aufruf der entsprechenden PowerShell-Befehle kann der aktuelle Status erfragt werden. Interessanter sind allerdings die Performance Counter, welche Informationen über den aktuelle Status der kopierten, geprüften und verarbeiteten Protokolldateien geben. Allerdings fehlt eine nette "Ansicht. Ich könnte mir denken die Leute von Quest analog zur Freeware Spotlight Free schon an einem Programm basteln. Aber da ich bereits Kunden mit SCR installiert habe, habe ich mir natürlich meine Gedanken gemacht.

StatusView

Da man in der Exchange Management Console nicht wirklich den Status eines CCR-Clusters sehen kann, der Blick in "Perfmon" nicht gerade übersichtlich ist und System Center Essentials nicht überall installiert ist, habe ich mir ein eigenes kleinen .NET-Programm geschrieben, welche einen Status des Servers übersichtlich ausgibt. Es ist ideal, um z.B. auf der Console permanent zu laufen.

CCRMon

Das Skript generiert einfach eine Datentabelle auf einem Windows Formular und füllt diese mit den Ergebnissen. Natürlich kann man hier umfangreich Änderungen einfließen lassen, um z.B. nach dem Status zu sortieren, filtern oder direkt Alarme zu generieren. Allerdings darf man diese Tool nicht mit einer echten Überwachungslösung wie MOM2005 oder dem Nachfolger System Center Operation Manager, bzw. dem kleinen System Center Essentials verwechseln. Es ist mehr ein Ad-Hoc-Werkzeug um mal schnell einen Überblick über die Replikation im eigenen LAN zu haben

Quellen

Die Quelle für die Anwendung sind natürlich die Windows Performance Counter, welche die aktuellen Daten zur Replikation bereitstellen.

Eine vereinfachte Ansicht liefert auch schon Perfmon alleine, allerdings ist es schwer so viele Server zu überblicken.

Leider wurden auch diese Strings auf einem deutschen Server teilweise lokalisiert.

CCR Perfmon Counter DE

Technische Umsetzung

CCRMON war mein erstes Skript, welches ich mit der PowerShell und dem Einsatz von Windows Forms geschrieben habe. Daher ist es sicher etwas trivialer. Zuerst hatte ich natürlich versucht, einfach über "Get-Storagegroupcopystatus" die Werte der Server zu erfragen. Das Problem dabei war aber, dass bei vielen Servern das Abfragen sehr lange dauert.

Auch gibt es ein Programm "Test-Replicationhealth", welches die "Gesundheit" der Replikation aktiv prüft. Aber das kann man meines Wissens immer nur auf dem Cluster selbst Ausführung. Eine "Remote Abfrage" ist nicht möglich. Daher habe ich den Weg über Performance Counter gewählt, auch wenn diese nicht immer akkurat sind (Siehe Cluster Continuous Replication). Die Funktionsweise im groben:

Die folgende Zeile holt sich erst einmal alle Mailboxserver, die eine Replikation im Cluster nutzen und gibt die Liste an die Abfrage des Clusters.

$Clusterserver = Get-Mailboxserver | where {$_.ClusteredStorageType -like "NonShared"}  | Get-ClusteredMailboxServerStatus | foreach-object {

Diese Abfrage liefert mit die Knoten und ich extrahiere daraus den passiven Knoten. Von diesem passiven Knoten werden dann über .NET-Klassen die Performance Counter gelesen:

$perfcat = new-object System.Diagnostics.PerformanceCounterCategory("MSExchange Replication",$servername)

Durch diese Ergebnisse muss ich jede einzelne Instanz abfragen und die relevanten Counter extrahieren und letztlich in eine Windows-Forms-Tabelle übertragen.

Download

ccrmon.1.0.ps1.txt
Benennen Sie bitte die Datei nach PS1 zurück und starten Sie es in der Exchange Management Shell

Weitere Links