MessageTrackingLog – Nachrichtenverfolgung in Exchange 2013


MapiExceptionNetworkError: Datenbank kann nicht bereitgestellt werden
www.microsoft.com

Neben der direkten Analyse von Transportprotokollen ist das Verfolgen von Nachrichten in Exchange 2013 mit dem Tool “Nachrichtenverfolgungsprotokolle” sehr einfach..

In diesem Artikel werde ich versuchen, kurz auf einige der Funktionen des Cmdlets Get-MessageTrackingLog einzugehen. Speziell für die Verarbeitung von Nachrichtenverfolgungsprotokollen erstellt.


Weitere Informationen zum Einrichten und Verwalten von Exchange 2013 finden Sie in meinem Blog im Hauptthema Artikel – Exchange 2013 – Installation, Konfiguration, Verwaltung.


Nachrichtenverfolgung in Exchange 2013

Das Cmdlet kann also ohne zusätzliche Parameter ausgeführt werden:

Die Daten werden von dem Server übernommen, auf dem der Befehl ausgeführt wird. Standardmäßig werden alle Nachrichtenverkehrsereignisse der letzten 30 Tage angezeigt (jedoch nicht mehr als 1000 – das Limit des Cmdlets).

Die Schlussfolgerung ist nicht sehr bequem, und um es milde auszudrücken:

Get-MessageTrackingLog-Nachrichtenverfolgung in Exchange 2013 01

Sie können die festgelegte Grenze von 1000 Zeilen mit der Taste entfernen -ResultSizedurch Einstellen des Wertes Unbegrenzt (Seien Sie vorsichtig, dies kann den Server stark belasten.) Wenn Sie immer noch den starken Wunsch haben, weiterhin eine große Anzahl von Nachrichten anzuzeigen, können Sie Ihr Leben ein wenig vereinfachen, indem Sie die Ausgabe dem Cmdlet zuführen Out-Host (abgekürzt Oh), die das Ergebnis nicht als kontinuierlichen Stream, sondern seitenweise ausgibt (abhängig von der Größe der Konsole):

Schlüssel -Paging ist nur für die Paging-Datenausgabe verantwortlich.

Get-MessageTrackingLog-Nachrichtenverfolgung in Exchange 2013 02

Es ist bereits bequemer, aber die Daten sehen immer noch absolut uninformativ aus.

Tatsächlich werden viele Informationen in den Nachrichtenverfolgungsprotokollen gespeichert, und einige davon können äußerst nützlich bei der Analyse des Serverbetriebs, der Analyse des Nachrichtenverkehrs und vieler anderer Aufgaben sein. Sie können die Protokolldateien selbst im Verzeichnis sehen % ExchangeInstallPath% TransportRoles Logs MessageTracking… Ich muss zugeben, dass keine normale Person diese Protokolle manuell analysiert, und jetzt werden Sie verstehen, warum:

Get-MessageTrackingLog-Nachrichtenverfolgung in Exchange 2013 03

Dies ist ein anschauliches Beispiel dafür, wie Informationen in einem Nachrichtenverfolgungsprotokoll dargestellt werden. Absolut nichts ist klar. Darüber hinaus ist es nicht einmal möglich, die Namen der Spalten (in der Abbildung blau hervorgehoben) mit den entsprechenden Werten in jeder Zeile richtig zu korrelieren. Im Allgemeinen kann in Excel als CSV-Format geöffnet werden , Ändern Sie die Trennzeichen, ändern Sie die Ansicht in tabellarisch, sortieren Sie nach Spalten und verstehen Sie dann, dass die benötigten Daten nicht hier sind und Sie sie in einer anderen Datei suchen müssen …

Grundsätzlich können Sie das Dokument sicher schließen und zur Konsole zurückkehren.

Wenn Sie nur die Werte bestimmter Spalten anzeigen möchten, treten Schwierigkeiten auf. Der Punkt ist, dass die Spaltennamen in der Datei und die Namen der gleichen Spalten in Powershell sind unterschiedlich! Die Entwickler bei Microsoft suchen nicht nach einfachen Wegen, wir müssen ihnen ihre Schuld geben. Woher wissen wir dann, welche Felder im Allgemeinen herausgezogen werden können und welche Namen sie haben werden? Die Antwort ist einfach – wie immer hilft uns das Cmdlet. Format-Liste (abgekürzt fl). Ich möchte Sie daran erinnern, dass die Eigenschaften jedes Objekts in einer separaten Zeile angezeigt werden.

Stellen Sie sich nun vor, Sie müssen jede Eigenschaft jedes Objekts in einer neuen Zeile anzeigen, und es werden 1000 solcher Objekte vorhanden sein. Die Option ist nicht sehr praktisch. Im Prinzip können Sie strengere Filterkriterien für Get-MessageTrackingLog festlegen, aber höchstwahrscheinlich werden immer noch mehrere Objekte angezeigt. Wir müssen uns auf das Cmdlet beziehen Objekt auswählen (abgekürzt wählen). Grob gesagt können Sie damit Aufgaben ausführen, die mit der SQL Select-Anweisung vergleichbar sind. Wir benötigen dieses Cmdlet, um einfach eine erste Nachricht anzuzeigen. Der Befehl sieht folgendermaßen aus:

Die Abbildung zeigt die Namen der Eigenschaften jedes Objekts:

Get-MessageTrackingLog-Nachrichtenverfolgung in Exchange 2013 04

Nun können Sie die empfangenen Daten frei bearbeiten und nur das anzeigen, was wir benötigen. Ich möchte beispielsweise sehen, über welche Konnektoren eine Nachricht geleitet wird (die Suche wird durch Angabe des Betreffs des Briefes eingegrenzt), wenn ich sie innerhalb der Organisation an den internen Empfänger sende. Dazu verwenden wir die Eigenschaft ConnectorID… Es tut auch nicht weh, das Ergebnis in einem lesbaren Format anzuzeigen, und das Cmdlet hilft hier Format-Tabelle (abgekürzt ft). Richten Sie die Breite der Spalten mit dem Schlüssel aus –Automatische skalierung::

Und hier ist die Ausgabe des Befehls:

Get-MessageTrackingLog-Nachrichtenverfolgung in Exchange 2013 05

Alles ist einfach und klar und sogar die Namen der Anschlüsse, einschließlich der Systemanschlüsse, sind sichtbar.

Lassen Sie uns abschließend versuchen, die Get-MessageTrackingLog-Ausgabe mit einem sehr interessanten Cmdlet zu verarbeiten Gruppenobjekt (abgekürzt Gruppe). Sie können Objekte nach einer Eigenschaft gruppieren und ihre Anzahl zählen. Es ist zu beachten, dass das Cmdlet normalerweise als letztes (oder eines der letzten) verwendet wird, da neue Objekte in der Pipeline erstellt werden und die Objekte des Cmdlets Get-MessageTrackingLog nicht mehr verarbeitet werden können.

Versuchen wir, die Anzahl aller Nachrichten zu zählen, die Benutzer unserer Organisation erhalten haben. Dazu müssen Sie eine zusätzliche Bedingung eingeben, die unnötige Empfänger außerhalb der Domäne herausfiltert. Dies kann mit erfolgen Wo-Objekt (abgekürzt wo):

Es hat sich herausgestellt, dass viele verschiedene Behandlungen durchgeführt wurden, aber ich werde versuchen, alles der Reihe nach zu erklären:

  1. Where-Object {$ _. Empfänger-wie «*@*.bissquit.com»} – filtert die Ausgabe nach der Adresse des Empfängers, sodass sie mit einer der Domänen der Organisation übereinstimmt (ich habe die Domänen bissquit.com, corp.bissquit.com, tech.bissquit.com akzeptiert);
  2. Gruppenobjektempfänger – Es gibt eine Gruppierung nach der Adresse des Empfängers.
  3. Sort-Object Count -Descending – Sortieren von Objekten nach der Anzahl der empfangenen Briefe in absteigender Reihenfolge;
  4. Format-Table Count, Name -AutoSize – Wir zeigen nur die Felder an, die wir benötigen, und bestimmen automatisch die Größe der Spalten.

Es ist eigentlich nicht so schwierig. Folgendes habe ich in den Ergebnissen gesehen:

Get-MessageTrackingLog-Nachrichtenverfolgung in Exchange 2013 07

Etwas ist nicht sehr klar, nur Service-Postfächer. Leider habe ich nicht sehr viele Benutzer in der Testinfrastruktur. Hier in der Produktion arbeitet das Team perfekt. Natürlich rate ich Ihnen nicht, den Schalter -ResultSize Unlimited ohne Angabe des Startdatums einzustellen. Sie können das Datum folgendermaßen einstellen – -Start (Get-Date) .AddDays (-1)… Das Konstrukt gibt den aktuellen Zeitstempel zurück und subtrahiert einen Tag davon. Das heißt, Sie erhalten Statistiken über Empfänger innerhalb der Organisation für die letzten 24 Stunden.

Wenn Sie Statistiken mit Get-MessageTrackingLog für andere Auswahlkriterien abrufen möchten, schreiben Sie in die Kommentare und versuchen Sie es gemeinsam herauszufinden.

Kommentare bereitgestellt von HyperComments

Leave a Reply

Your email address will not be published. Required fields are marked *