Używanie zdarzeń "śledzenie zdarzeń Dla Windows"

Odpowiedź na to pytanie skłoniło mnie do przyjrzenia się użyciu "śledzenia zdarzeń Dla Windows"dla naszych potrzeb śledzenia. Natknąłem się na NTrace , który wydaje się być dobrym sposobem na tworzenie zdarzeń ETW z kodu C# (przy użyciu kompatybilnego z XP modelu "Classic provider").

Nie jestem jednak w stanie znaleźć łatwego sposobu, aby wykorzystać te zdarzenia - zobaczyć je w czasie rzeczywistym i/lub zalogować do pliku. Jedyny sposób jaki znalazłem to opisany w dokumentacji NTrace: za pomocą narzędzie, które jest dostępne tylko jako część DDK systemu Windows.

W przypadku złożonego problemu w polu, może być konieczne poproszenie Użytkownika o utworzenie pliku zawierającego ślad. Nie możemy prosić użytkowników o pobranie DDK ani przeprowadzić w tym celu wielu złożonych operacji.

Czy istnieje prosty, przyjazny dla użytkownika sposób logowania zdarzeń ETW do pliku?

Ponadto, czy jest możliwe, aby ktoś korzystał z eventów ETW na Windows Vista / 7, jeśli nie są one uruchomione jako administrator?

Author: Community, 2010-03-05

5 answers

TraceView to najprostsze gotowe rozwiązanie, ale możliwe jest napisanie własnej przeglądarki ETW, która jest specyficzna dla Twojego dostawcy. Dałoby to pełną kontrolę nad prezentacją i znacznie ułatwiłoby użytkownikowi końcowemu, ponieważ TraceView jest naprawdę bardziej narzędziem do debugowania niż czymś, o co możesz poprosić użytkowników końcowych.

Jeśli chodzi o śledzenie w czasie rzeczywistym, zgodnie z dokumentacją :

Tylko użytkownicy z uprawnieniami administracyjnymi, użytkownicy w Grupa użytkowników dziennika wydajności i usługi działające jako LocalSystem, LocalService, NetworkService mogą wykorzystywać zdarzenia w czasie rzeczywistym. Aby przyznać ograniczonemu użytkownikowi możliwość korzystania ze zdarzeń w czasie rzeczywistym, dodaj je do grupy użytkowników dziennika wydajności.

Windows XP i Windows 2000: każdy może korzystać z zdarzeń w czasie rzeczywistym.

Jeśli jesteś zainteresowany napisaniem własnej przeglądarki ETW (w czasie rzeczywistym lub pliku dziennika), tutaj znajduje się Odpowiednia dokumentacja.

 3
Author: Luke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-07 21:30:43

Windows Event Log odczytuje ETW. W rzeczywistości powiedziałbym, że jest to prawidłowy sposób dla konsumenta (Nie programu), aby wyświetlić i wyeksportować ślady ETW.

Zobacz tutaj dla przykładu. http://blogs.microsoft.co.il/blogs/applisec/archive/2009/10/12/reading-etw-tracing-using-event-viewer.aspx

To pytanie na msdn omawia, co zrobić, gdy dzienniki nie pojawiają się. Czy coś tu pomaga?

 3
Author: Preet Sangha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-05 06:34:34

ETW tracing został zaprojektowany do działania tylko przez administratorów, ponieważ trace może zawierać dane osobowe. I stanowiłoby zagrożenie dla bezpieczeństwa, jeśli nie-administrator może przechwycić ślad.

Oto przykład ostrzeżenia z xperf

Ślad, który właśnie uchwyciłeś "C:\Windows\system32\kernel.etl " może zawierać dane osobowe, w tym między innymi ścieżki dostępu do plików, ścieżki dostępu do rejestru i nazwy procesów. Dokładne informacje zależą od zdarzeń, które zostały zarejestrowane. Proszę o tym pamiętać, dzieląc się tym śladem z innymi ludźmi.

Mam nadzieję, że to odpowie na twoje pytanie

 2
Author: Naveen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-19 02:02:56

Oto jak można uzyskać niestandardowe ślady ETW od własnego dostawcy i jak można używać ETW w ramach zarządzanego kodu

Mam nadzieję, że to pomoże.

 1
Author: Naveen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-02 04:18:40

IMO Perfview jest jednym z najlepszych dostępnych narzędzi do kontrolowania i przeglądania śladów ETW. Może również zapewniać zarządzane stosy połączeń. Najlepsze jest to, że możesz kopiować na dowolnym serwerze i zbierać ślady.

Perfview używa biblioteki TraceEvent i tutaj sample Jak można go używać używając API i C #

 1
Author: Ghita,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-19 12:07:24