Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Kolumna głosowa pomocy technicznej ASP.NET

Log Parser 2.2 i ASP.NET

Aby dostosować tę kolumnę do swoich potrzeb, zapraszamy Cię do przesyłania pomysłów na interesujące Cię tematy i problemy, które mają być widoczne w przyszłych artykułach z bazy wiedzy Knowledge Base i kolumnach Support Voice. Pomysły i opinie możesz przesłać za pomocą formularza Zapytaj o to. U dołu tej kolumny znajduje się również link do formularza.

Witamy w kolumnie głosowej pomocy technicznej ASP.NET. Nazywam się Rahul Soni, a ja jestem z Microsoft od około dwóch lat. W tym miesiącu kolumny, omówię niektóre fakty na temat Log Parser 2.2. Zanim przejdziemy do konkretnych scenariuszy, pozwól mi poświęcić chwilę na opisanie narzędzia Analizatora dzienników.

O

Log Parser to bardzo zaawansowane, uniwersalne narzędzie zapewniające uniwersalny dostęp do danych opartych na tekście, takich jak pliki dziennika, pliki XML i pliki CSV, a także kluczowe źródła danych w systemie operacyjnym Microsoft Windows, takie jak dziennik zdarzeń, rejestr, system plików i usługa katalogowa Active Directory. Kliknij
tutaj, aby pobrać narzędzie. W tej wersji możesz bardzo łatwo przeanalizować następujące pliki za pomocą narzędzia Analizator dzienników:

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS i COM. Zgadzam się, że interfejs wiersza polecenia nie jest bardzo intuicyjny i dowiesz się o tym zaraz po zainstalowaniu i uruchomieniu narzędzia. Jednak to, czego narzędziu brakuje w intuicyjnym odczuciu, jest poprawiane przez dokumentację dostarczoną dla tego narzędzia. Dam tu małą radę: Nie pozwól, aby interfejs wiersza polecenia tak szybko Cię wyłączył. To narzędzie jest konieczne w zestawie narzędzi maniaka i bardzo Ci pomaga, zwłaszcza jeśli chcesz rozwiązać problemy z perspektywy wydajności.

Nie zamierzam omawiać "jak" używać narzędzia Analizatora dzienników, ponieważ dokumentacja jest całkiem dobra, a folder instalacji zawiera również folder "Przykłady\Zapytania", który zawiera sporo próbek.

Po zakończeniu promocji narzędzia Log Parser pozwolę wrócić do scenariuszy, o których mówiłem.

Scenariusz 1. Analizowanie dużych plików tekstowych dla określonego tekstu

Małe tło problemu

Klient doświadcza problemu "Odmowa dostępu", gdy coś zrobił. Zaleca się, aby klient używał innego genialnego narzędzia o nazwie
Filemon i odtworzył problem. Jeśli występuje problem z listami ACL zasobów, narzędzie Filemon będzie w stanie wychwytować błąd. Teraz możesz poprosić klienta o wysłanie ci zapisanego pliku dziennika Filemon. Oto niefortunna część. Otrzymujesz plik (na przykład Filemon.log), ale okazuje się, że rozmiar jest ogromny (w programie Filemon jest rejestrowana duża ilość danych!). Notatnik wydaje się zawieszać i będzie boleśnie powolny, aby znaleźć wiersze "Odmowa dostępu" w pliku dziennika. Program Microsoft Office Excel odmówi całkowitego otwarcia pliku. Co teraz?

Odpowiedź: Otwórz okno polecenia Analizy dziennika i użyj następującego polecenia:

LOGPARSER "Select Text from C:\Filemon.log where Text like '%Access Denied%'" -i:TEXTLINE -q:OffCo mówimy narzędziu Analizatora dziennika, że należy przeanalizować poszczególne wiersze (Tekst) z danego pliku (C:\Filemon.log), gdzie wiersz zawiera "Odmowa dostępu". Przełącznik wiersza polecenia -i:TEXTLINE określa format wprowadzania, a przełącznik -q:Off wiersza polecenia informuje, że jest pełna (-q[:WŁ.|WYŁ.]:tryb cichy;). Jeśli włączysz przełącznik wiersza polecenia -q, wyświetlane statystyki i nazwa pola (Tekst) w poniższym wyniku będą nieobecne.

Przykładowe dane wyjściowe

Tekst7447 13:49:24 explorer.exe:1200 KATALOG C:\ Przetwarzane statystyki odmowy dostępu: 640444
Dane wyjściowe elementów: 1
Czas wykonywania: 12,75 sekundy

Jak uniknąć wielokrotnego naciskania klawisza ENTER, jeśli liczba rekordów zwróconych przez zapytanie jest większa niż 10?

Odpowiedź: użyj parametru -rtp:-1 w zapytaniach!

Będzie to parametr konieczny, jeśli chcesz przekierować dane wyjściowe do pliku. Ponadto podczas pisania w usłudze STDOUT rekordy wyjściowe są wyświetlane w partiach złożonych z wielu wierszy równych wartości określonej dla tego parametru. Po wyświetleniu partii wierszy zostanie wyświetlony monit o naciśnięcie klawisza w celu wyświetlenia następnej partii wierszy. Określenie "-1" dla tego parametru całkowicie wyłącza partiowanie!

Korzystanie z plików zapytań

Innym sposobem uzyskania tych samych wyników w bardziej przejrzysty sposób jest utworzenie pliku zapytania. W ten sposób możesz łatwo dostosować plik zapytania i uruchomić go za pomocą wiersza polecenia narzędzia Analizator dzienników. Poza tym, można łatwo utworzyć gui zgodnie z gustu. Interfejs użytkownika ładuje zapisane zapytanie SQL i uruchamia zapytanie za pomocą narzędzia Analizator dzienników.

Jeśli chcesz osiągnąć ten sam efekt (jak w scenariuszu 1) z zapytań SQL, możesz podać następujące polecenie:

LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql zawiera następujące informacje:

Uwaga Tworzenie folderu LPQ w folderze C:\ , aby użyć przykładów przedstawionych w tej kolumnie.

Select Text as LineFromFile
FROM C:\Filemon.log 
WHERE Text 
LIKE '%Access Denied%'

Jeśli zauważysz, zapytanie wygląda teraz znacznie czystsze i ma większy sens. Dzięki temu można tworzyć bardziej złożone i większe zapytania, a wszystko będzie się mieściło w wierszu polecenia, ponieważ jest używany . zamiast całego zapytania. Nie można jednak zmieścić więcej niż 260 znaków w wierszu polecenia!

Z zachowaniem zalet korzystania z plików zapytań użyję tej metody w następujących scenariuszach. Mam wszystkie moje zapytania zapisane w C:\LPQ z rozszerzeniem sql (możesz użyć własnego).

Scenariusz 2: Znalezienie 10 największych plików z określonego folderu, w tym jego podfolderów

Małe tło problemu

Masz folder i jest w nim sporo podfolderów i plików. Chcesz znaleźć 10 największych plików w tym folderze, w tym jego podfoldery.

Wiem, że w przypadku określonego folderu możesz po prostu zmienić widok (w menu Widok kliknij pozycję Szczegóły) w Eksploratorze Windows i posortować widok według rozmiaru. Problem polega jednak na tym, że musisz uwzględnić również zawartość podfolderu.

Odpowiedź: Otwórz okno polecenia narzędzia Analizy dzienników i użyj następującego polecenia:

LOGPARSER -i:FS file:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql zawiera następujące elementy:

SELECT TOP 10 
Path, 
Name, 
Size, 
Attributes 
FROM 'C:\Program Files\Microsoft Office\*.*' 
ORDER BY Size DESC

Tutaj -i:FS oznacza, że badamy system plików. Możesz wyświetlić pełną listę pól formatu wprowadzania danych FS w dokumentacji i odpowiednio określić zapytanie.

-Recurse:-1 oznacza, że chcemy uwzględnić wszystkie podfoldery. Jeśli nie chcesz używać wszystkich podfolderów lub chcesz ograniczyć rekursję, użyj wartości 0, 1, 2 itd. Liczba oznacza, że głębokości analizator przejdzie. 0 oznacza brak rekursji, 2 oznacza, że analizator powtarza się do głębokości 2 itd.

Przykładowe dane wyjściowe

Path                                                         Name         Size     Attributes 
------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE       WINWORD.EXE  10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE         EXCEL.EXE    9358096  -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL       OUTLLIB.DLL  6326984  -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE      POWERPNT.EXE 6093584  -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL         MSOWC.DLL    3041880  -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS       CLIPPIT.ACS  2904417  -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE         GRAPH.EXE    2144824  -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032  -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072  -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL        MSOWCW.DLL   1200177  -A-------


Przetwarzane statystyki: 1000
Dane wyjściowe elementów: 10
Czas wykonywania: 0,42 sekundy

Scenariusz 3. Znajdowanie 20 najwolniejszych stron w witrynie sieci Web

Małe tło problemu

Używasz Microsoft Internet Information Services (IIS) 6, masz kilka ASP.NET witryn internetowych i nie jesteś zadowolony z wydajności. Chcesz dostosować serwer i wiedzieć o 20 najważniejszych stronach, które zajmują najwyższy czas na obsługę z serwera sieci Web. To nie jest tak, że określasz najwyższy czas poświęcony na strony, rozwiązujesz je i twoje problemy są rozwiązywane. Niestety, nie ma żadnych srebrnych punktorów do rozwiązywania problemów z wydajnością. Przynajmniej powinien być sposób, aby rozpocząć. Poprawne?

Odpowiedź: Otwórz okno polecenia Analizy dziennika i użyj następującego polecenia:

LOGPARSER -i:IISW3C plik:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql zawiera następujący kod przykładowy.

Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP], 
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From 
C:\ex060813.log
Order by time-taken desc

Tutaj -i:IISW3C oznacza, że badamy dzienniki W3C systemu IIS. Możesz wyświetlić pełną listę pól formatu wprowadzania IISW3C w dokumentacji i odpowiednio określić zapytanie.

-o:DataGrid oznacza, że dane wyjściowe powinny być wyświetlane w siatce danych w następujący sposób:



Uwaga Aby użyć tego zapytania, należy używać rejestrowania IISW3C i muszą być włączone właściwości rejestrowania zaawansowanego. (Otwórz właściwości witryny sieci Web, kliknij kartę Witryna sieci Web , kliknij, aby wybrać pozycję Włącz rejestrowanie, a następnie ustaw format dziennika aktywnego jako rozszerzony format pliku dziennika W3C. Kliknij pozycję Właściwości, kliknij
kartęZaawansowane, a następnie kliknij, aby wybrać wszystkie opcje).

Scenariusz 4. Znajdowanie 20 najczęściej używanych stron aspx w witrynie sieci Web

Małe tło problemu

Używasz programu IIS 6, masz kilka ASP.NET witryn sieci Web i chcesz poznać najczęściej używane pliki aspx, aby w przypadku dostosowywania wydajności tych stron ostatecznie wszystkie korzyści dla witryny sieci Web i serwera były bardziej widoczne. Zawsze lepiej jest poświęcić czas na dostosowywanie najczęściej używanych stron, a nie stron, które są używane oszczędnie. (Chociaż mogą istnieć wyjątki od tej reguły. Załóżmy, że oszczędnie używana strona jest naprawdę złą stroną, która powoduje wysokie wykorzystanie procesora w tym celu!) Teraz, jeśli okaże się, że obsługiwanie określonej strony zajmuje dużo czasu (scenariusz 3), a strona jest jedną z najczęściej używanych stron, zawsze należy potwierdzić, że strona działa prawidłowo pod wpływem stresu.

Odpowiedź: Otwórz okno polecenia narzędzia Analizy dzienników i użyj następującego polecenia:

Plik LOGPARSER -i:IISW3C:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql zawiera następujący przykładowy kod.

Select Top 20
cs-uri-stem as [Request URI],
COUNT(*) AS Hits 
INTO MyChart.gif 
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC

W tym przypadku funkcja -chartType:Bar3D informuje narzędzie analizy dziennika, jakiego rodzaju wykres należy przygotować. Parametr -groupSize określa szerokość i wysokość obrazu docelowego w pikselach. Zestaw dostępnych typów wykresów zależy od wersji Office Web Components firmy Microsoft zainstalowanej na komputerze lokalnym.

Poniżej przedstawiono wygląd danych wyjściowych:



Jak już widzieliście, może istnieć wiele sposobów, w których narzędzie analizy dzienników może okazać się naprawdę pomocne w analizowaniu danych z różnych dzienników. Tylko kreatywność to granica! Istnieją niemal nieograniczone sposoby, w jakie dane mogą odzwierciedlać znacznie lepszy obraz, i może to być coś, na co możesz działać. To, czego dotknęliśmy, to tylko wierzchołek góry lodowej! Możesz również używać języków wysokiego poziomu, takich jak Microsoft Visual C#, Microsoft Visual Basic .NET, itp., aby tworzyć przydatne programy za pomocą narzędzia Analizy dzienników. Zapoznaj się z sekcją "Zasoby" poniżej.

Zasoby

Chcę omówić więcej scenariuszy dla narzędzia Analizatora dzienników i utworzyłem nową sekcję w blogu tylko dla narzędzia Analizatora dzienników. Jeśli masz jakieś sugestie dotyczące scenariuszy lub zapytań narzędzi analizy dzienników, które chcesz udostępnić, wyślij mi wiadomość e-mail na
rahulso@microsoft.com, a ja opublikuję ją w dogodnym dla siebie momencie w następującej witrynie internetowej:

https://learn.microsoft.com/archive/blogs/rahulso/

Jak zawsze, możesz przesyłać pomysły na tematy, które chcesz rozwiązać w przyszłych kolumnach lub w bazie wiedzy przy użyciu formularza Zapytaj o to.

Produkty innych firm omawiane w tym artykule są produkowane przez firmy niezależne od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani innych, co do wydajności i niezawodności tych produktów.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×