Ablaufverfolgung
Bei der Ablaufverfolgung wird die Ereignisablaufverfolgung für Windows (ETW) verwendet. Um die mit Windows Server 2008 R2 verfügbaren Ablaufverfolgungstools zu nutzen, installieren Sie das Microsoft Windows SDK.
Es werden drei Ablaufverfolgungsebenen unterstützt:
- Ausführlich (alle verfügbaren Ablaufverfolgungen).
- Info (Informatorische Ablaufverfolgungen).
- Fehler (Fehler-Ablaufverfolgungen).
Die folgenden Ereignisse werden nachverfolgt:
- Alle Fehler (Ebene=Fehler, Ebene=Info oder Ebene=Ausführlich).
- Start/Stopp einer API (Ebene=Info oder Ebene=Ausführlich).
- Starten und Abschluss einer beliebigen E/A-Funktion (Ebene=Info oder Ebene=Ausführlich)
- Ausgetauschte SOAP-Nachrichten (Ebene=Ausführlich, verfügbar unter Windows 2003 SP1 und höher)
WWSAPI verwendet die auf Manifesten basierenden Ereignisse unter Windows Vista und höher. Daher weist die Ablaufverfolgungserfahrung je nach Betriebssystemversion einige Unterschiede auf. Das Generieren von ETW-Ablaufverfolgungen kann mithilfe der In-Box-ETW-Tools auf allen unterstützten Plattformen erfolgen. Das Anzeigen der ETW-Ablaufverfolgungen in einem benutzerfreundlichen Format erfordert jedoch benutzerdefinierte Tools unter Windows XP SP2 und Windows 2003 SP1. Je nach Betriebssystemversion gibt es verschiedene Möglichkeiten zum Erfassen und Anzeigen von WWSAPI ETW-Ereignisablaufverfolgungen.
Aktivieren und Anzeigen von WWSAPI-Ablaufverfolgungen in der Ereignisanzeige (funktioniert unter Windows Vista und höher)
- Führen Sie eventvwr.msc über die Befehlszeile oder das Menü „Ausführen“ aus.
- Klicken Sie auf der rechten Seite im Bereich „Aktionen“ auf den Anzeigelink, und aktivieren Sie die Option „Anzeigen von Analyse und Debugprotokollen“.
- Navigieren Sie im linken Bereich zu Anwendungs- und Dienstprotokolle\Microsoft\Windows\WebServices-Anbieter.
- Klicken Sie mit der rechten Maustaste auf den Ablaufverfolgungsanbieter, und wählen Sie „Protokoll aktivieren“ aus.
- Führen Sie Ihr Szenario aus.
- Wenn Sie die Ereignisanzeigeseite aktualisieren, sollten die WWSAPI-Ablaufverfolgungseinträge angezeigt werden.
Aktivieren und Anzeigen von WWSAPI-Ablaufverfolgungen mithilfe des Wstrace.bat-Skripts (funktioniert unter XPSP2 und höher)
Die wstrace.bat-Batchdatei bietet bequeme Möglichkeiten für Folgendes:
- Erstellen eines Ablaufverfolgungsprotokolls
- Löschen eines Ablaufverfolgungsprotokolls
- Aktivieren und Deaktivieren der Ablaufverfolgung
- Aktualisieren der Ablaufverfolgungsebene (Info/Fehler/Ausführlich)
- Konvertieren von Ablaufverfolgungsprotokollen in CSV-Dateien
Die Batchdatei verwendet logman.exe für alle Befehle, mit Ausnahme der Konvertierung der Protokolle in CSV-Dateien, die ein benutzerdefiniertes Tool (wstracedump.exe) erfordert.
Mit dem folgenden Befehl wird ein Protokoll erstellt, das die Ebene Info, Fehler oder Ausführlich verwendet. Dieser Befehl erfordert erhöhte Berechtigungen.
wstrace.bat create [info | error | verbose]
Der folgende Befehl löscht das Protokoll. Dieser Befehl erfordert erhöhte Berechtigungen.
wstrace.bat delete
Mit dem folgenden Befehl wird die Ablaufverfolgung aktiviert. Sie müssen zuerst ein Protokoll erstellen.
wstrace.bat on
Die Ablaufverfolgungsebene (Info, Fehler oder Ausführlich) kann wie folgt geändert werden:
wstrace.bat update [info | error | verbose]
Verwenden Sie den folgenden Befehl, um die Nachverfolgungsausgabe zu sichern:
wstrace.bat dump > temp.csv
Die Ereignisse werden in der CSV-Datei gesichert, bis STRG-C betätigt oder die Ablaufverfolgung deaktiviert wird.
Die von wstrace.bat erstellten CSV-Dateien sind einfache Textdateien mit durch Kommata getrennten Variablen. Diese Dateien können in Excel, Notepad u. dgl. geöffnet werden.
Erläuterung der Spalten:
- TimeStamp – Zeitstempel des Zeitpunkts der Aufzeichnung des Ereignisses
- ProcessID – ULONG-ID des Prozesses, der das Ereignis aufzeichnet
- ThreadID – ULONG-ID des Threads, der das Ereignis aufzeichnet
- Event – Aufzählungswert des Ereignistyps: („api enter“ | „api pending“ | „api ExitSyncSuccess“ | „api ExitSyncFailure“ | „api ExitAsyncSuccess“ | „api ExitAsyncFailure“ | „io started“ | „io completed“ | „io failed“ | „error“ | „received message start“ | „received message“ | „received message stop“ | „sending message start“ | „sending message“ | „sending message stop“)
- Operation – der Name des aufgerufenen Vorgangs. In der Regel wird dies der aufgerufenen API zugeordnet.
- Error – optionale HRESULT-Fehlernummer
- Info – optionale Informationen über das Ereignis
Aktivieren der ETW-Ablaufverfolgung für WWSAPI
logman start wstrace -bs 64 -ft 1 -rt -p Microsoft-Windows-WebServices [flags [level]] [-o <EtlLogFileName>] -ets
zum Erstellen und Starten der ETW-Ablaufverfolgungssitzung. Logman.exe ist ein In-Box-ETW-Tool, das auf allen unterstützten Plattformen verfügbar ist. Beachten Sie, dass Sie Microsoft_Windows_WebServices als Anbietername unter XPSP2 und W2K3 verwenden müssen. Sie können Logman-Abfrageanbieter ausführen, um die Liste der registrierten Anbieter anzuzeigen. Der Anbieter von Microsoft-Windows-WebServices (oder Microsoft_Windows_WebServices) sollte aufgeführt werden, es sei denn, er ist nicht registriert. Der Anbieter wird normalerweise während der Einrichtung registriert. Es kann jedoch auch manuell registriert werden, indem wevtutil.exe im <ManifestFileName> (unter Windows Vista und höher) oder mofcomp.exe <MofFileName> (unter XPSP2 und W2K3) ausgeführt wird.
Flags können verwendet werden, um die Ablaufverfolgungen nach ihrer Art zu filtern. Dies kann ein OR-Wert oder eine der folgenden Ablaufverfolgungsarten sein. Wenn nicht angegeben, sind alle Ablaufverfolgungsarten aktiviert.
- 0x1 – API-Start/Stopp-Ablaufverfolgungen.
- 0x2 – Fehler-Ablaufverfolgungen.
- 0x4 – E/A-Ablaufverfolgungen.
- 0x8 – SOAP-Nachrichten-Ablaufverfolgungen.
- 0x10 – Binär-Nachrichten-Ablaufverfolgungen.
Die Ebene kann verwendet werden, um die Ablaufverfolgungen nach ihrer Ebene zu filtern. Der entsprechende Wert muss einer der folgenden sein. Wenn nicht angegeben, sind alle Ablaufverfolgungsebenen aktiviert.
- 0x1 – schwerwiegend.
- 0x2 – Fehler-Ablaufverfolgungen.
- 0x3 – Warnung.
- 0x4 – Information.
- 0x5 – ausführlich.
EtlLogFileName ist der Pfad zur zu erstellenden ETW-Ereignisprotokolldatei (verwenden Sie die Erweiterung .etl). Wenn nicht angegeben, wählt ETW einen zufälligen Namen aus, der später abgefragt werden kann. Diese Datei sollte sich nicht im Profilverzeichnis des Benutzers befinden. DIE ETW-Ereignisprotokolldatei (.etl-Datei) ist im Binärformat. Sie kann von ETW-Anwendungen genutzt werden, hat aber keine lesbare Form. Im nächsten Schritt wird beschrieben, wie der Inhalt angezeigt wird.
Ausführen Ihres Szenarios
Erfassen der ETW-Ereignisprotokolldatei.
logman stop wstrace -ets
zum Anhalten der ETW-Ablaufverfolgungssitzung. Dies ist der Fall, wenn ETW die Protokollierung der Ereignisse beendet. Die ETW-Ereignisprotokolldatei (im EtlLogFileName-Parameter angegeben) ist bereit zur Verwendung. Sie kann entweder lokal angezeigt (Anweisungen werden unten angegeben) oder zur Untersuchung an die Produktgruppe gesendet werden.
Durchgehendes Beispiel mit ETW-Tools:
logman start wstrace -bs 64 -ft 1 -rt -p Microsoft-Windows-WebServices -o mytrace.etl -ets
Echo ... Ausführen Ihres Szenarios ...
logman stop wstrace -ets
tracerpt mytrace.etl -o mytrace.xml
wstrace.htm
Echo ... verwenden Sie mytrace.xml und wstrace.xsl auf der geöffneten Seite ...
Anzeigen von WWSAPI ETW Trace File-Ablaufverfolgungen mit dem wstracedump.exe-Tool (funktioniert unter Windows XP und höher)
Wstracedump.exe ist ein speziell entwickeltes ETW Consumer-Tool, das Ereignisse in der WWSAPI ETW-Ablaufverfolgungsdatei verarbeitet und eine lesbare Ausgabe erzeugt. Die Ausgabe kann von allen unterstützten Plattformen aus erzeugt werden. Weitere Informationen finden Sie im Abschnitt zur Verwendung (wstracedump.exe -?).
Anzeigen von WWSAPI ETW Trace File-Ablaufverfolgungen mithilfe von ETW-Tools (funktioniert unter Windows Vista und höher)
Tracerpt.exe ist das Tool zum Anzeigen des Inhalts einer ETW-Ereignisprotokolldatei und auf allen unterstützten Plattformen verfügbar. Es kann verwendet werden, um CSV-, EVTX- oder XML-Speicherdateien aus einer ETW-Ereignisprotokolldatei zu generieren. Die generierte Ausgabedatei verfügt jedoch nur unter Windows Vista und höher über lesbare Ablaufverfolgungen. In diesen Anweisungen wird beschrieben, wie die XML-Speicherdatei erstellt und zusammen mit einer XSL-Datei verwendet wird, um die Ablaufverfolgungen in einem benutzerfreundlichen Format anzuzeigen (die XSL-Datei ist sehr trivial und kann geändert werden, wenn andere Formate gewünscht werden).
Ausführung
tracerpt <EtlLogFileName> -o <OutputXMLFileName>
zum Erstellen einer XML-Speicherung aus der binären ETL-Datei (tracerpt.exe erstellt standardmäßig die Ausgabedatei im XML-Format. Führen Sie tracerpt -? aus, um weitere verfügbare Formate zu sehen).
An dieser Stelle können Sie die Ablaufverfolgungsinformationen in der XML-Datei sehen. Darüber hinaus können Sie die wstrace.htm-Datei öffnen und die XML-Speicherdatei und die Datei „wstrace.xsl“ verwenden, um die Ablaufverfolgungen in einem ansprechenderen Format anzuzeigen. Beachten Sie, dass sich die Dateien auf dem lokalen Computer befinden müssen, um diese HTML-Datei auf IE verwenden zu können.
Beim Aktivieren der Ablaufverfolgung sollten Administratoren berücksichtigen, dass diese zusätzlichen Speicherplatz und Rechenleistung verbraucht. Ein böswilliger Client oder eine Anwendung kann Systemressourcen ausschöpfen, es sei denn, die Ablaufverfolgungseinstellungen sind mit angemessenen Grenzwerten konfiguriert. Wenn Sie das Feature für die Nachrichtenablaufverfolgung verwenden, werden Nachrichten, die vertrauliche Informationen wie Anmeldeinformationen, persönliche Informationen usw. enthalten, möglicherweise auf dem Datenträger gespeichert oder sind von allen Benutzern anzeigbar, die Zugriff auf die Systemereignisanzeige haben. Als Lösung für dieses Problem kann die Ablaufverfolgung von System- oder Administratorbenutzern unter Windows 2003 und höher aktiviert werden. Die Nachrichtenablaufverfolgung ist unter Windows XP deaktiviert, wo jeder Benutzer die Ablaufverfolgung aktivieren kann.
Die folgende Enumeration wird mit der Ablaufverfolgung verwendet: