Udostępnij za pośrednictwem


Włączanie rejestrowania diagnostycznego dla aplikacji w usłudze Azure App Service

Platforma Azure udostępnia wbudowaną diagnostykę, która ułatwia debugowanie aplikacji usługi Azure App Service. Z tego artykułu dowiesz się, jak włączyć rejestrowanie diagnostyczne i dodać instrumentację do aplikacji. Dowiesz się również, jak uzyskać dostęp do informacji dzienników platformy Azure.

W tym artykule użyto portalu Azure i Azure CLI do pracy z dziennikami diagnostycznymi. Aby uzyskać informacje na temat pracy z dziennikami diagnostycznymi przy użyciu programu Visual Studio, zobacz Rozwiązywanie problemów z aplikacją w usłudze Azure App Service przy użyciu programu Visual Studio.

Oprócz instrukcji rejestrowania w tym artykule możesz użyć funkcji rejestrowania zintegrowanego usługi Azure Monitor. Aby uzyskać więcej informacji, zobacz Wysyłanie dzienników do usługi Azure Monitor.

Uwaga

Usługa App Service udostępnia dedykowane, interaktywne narzędzie diagnostyczne ułatwiające rozwiązywanie problemów z aplikacją. Aby uzyskać więcej informacji, zobacz przegląd diagnostyki usługi Azure App Service.

Możesz również użyć innych usług platformy Azure, aby ulepszyć możliwości rejestrowania i monitorowania aplikacji, takie jak Azure Monitor.

Omówienie typów rejestrowania

Typ Platforma Lokalizacja przechowywania dzienników opis
Rejestrowanie aplikacji Windows, Linux System plików usługi App Service oraz/lub bloby usługi Azure Storage Rejestrowanie komunikatów generowanych przez kod aplikacji. Komunikaty mogą być generowane przez wybraną strukturę internetową lub z kodu aplikacji bezpośrednio przy użyciu standardowego wzorca rejestrowania języka. Każdy komunikat ma przypisaną jedną z następujących kategorii: Krytyczny, Błąd, Ostrzeżenie, Informacja, Debuglub Śledzenie. Możesz wybrać, jak szczegółowe ma być rejestrowanie, ustawiając poziom intensywności podczas włączania rejestrowania aplikacji.
Rejestrowanie serwera WWW Windows System plików usługi App Service lub obiekty blob usługi Azure Storage Nieprzetworzone dane żądania HTTP w formacie rozszerzonego pliku dziennika W3C. Każdy komunikat dziennika zawiera dane, takie jak metoda HTTP, identyfikator URI zasobu, adres IP klienta, port klienta, agent użytkownika i kod odpowiedzi.
Szczegółowe komunikaty o błędach Windows System plików usługi App Service Kopie stron błędów .htm, które zostałyby wysłane do przeglądarki klienta. Ze względów bezpieczeństwa szczegółowe strony błędów nie powinny być wysyłane do klientów w środowisku produkcyjnym. Jednak usługa App Service może zapisywać stronę błędu za każdym razem, gdy wystąpi błąd aplikacji z kodem HTTP 400 lub nowszym. Strona może zawierać informacje, które mogą pomóc określić, dlaczego serwer zwraca kod błędu.
Śledzenie żądań zakończone niepowodzeniem Windows System plików usługi App Service Szczegółowe informacje dotyczące śledzenia nieudanych żądań, w tym ślad komponentów usług IIS używanych do przetwarzania żądania i czas potrzebny na przetwarzanie w każdym komponencie. Te informacje są przydatne, jeśli chcesz zwiększyć wydajność strony lub wyizolować określony błąd HTTP. Jeden folder jest generowany dla każdego żądania, które zakończyło się niepowodzeniem. Folder zawiera plik dziennika XML i arkusz stylów XSL do wyświetlania pliku dziennika.
Rejestrowanie wdrożenia Windows, Linux System plików usługi App Service Rejestry publikowania zawartości w aplikacji. Rejestrowanie wdrożenia odbywa się automatycznie i nie ma konfigurowalnych ustawień rejestrowania wdrożenia. Pomaga określić, dlaczego wdrożenie nie powiodło się. Jeśli na przykład używasz niestandardowego skryptu wdrażania, możesz użyć rejestrowania wdrożenia, aby określić, dlaczego skrypt kończy się niepowodzeniem.

Gdy dzienniki są przechowywane w systemie plików App Service, podlegają one ograniczeniom przestrzeni magazynowej dostępnej dla wybranego poziomu cenowego. Aby uzyskać więcej informacji, zobacz Limity usługi App Service.

Włączanie rejestrowania aplikacji (Windows)

Aby włączyć logowanie aplikacji dla aplikacji systemu Windows w portalu Azure :

  1. Przejdź do aplikacji i wybierz pozycję Monitorowanie>dzienników usługi App Service.

  2. Wybierz pozycję w dla jednej lub obu tych opcji.

    • Rejestrowanie aplikacji (system plików): ta opcja służy do tymczasowego debugowania. Wyłącza się w ciągu 12 godzin.

    • Rejestrowanie aplikacji (Blob): ta opcja jest przeznaczona do rejestrowania długoterminowego. Potrzebuje kontenera magazynu obiektów blob do zapisywania dzienników.

      Opcja Blob zawiera dodatkowe informacje w komunikatach dziennika, takie jak identyfikator wystąpienia źródłowej maszyny wirtualnej komunikatu dziennika (InstanceId), identyfikator wątku (Tid) i bardziej szczegółowa znacznik czasu (EventTickCount).

  3. Dla poziomu iwybierz poziom szczegółów do zapisania w logach. W poniższej tabeli przedstawiono kategorie logów uwzględnione na każdym poziomie:

    Poziom Uwzględnione kategorie
    Wyłączone Brak
    Błąd błąd, błąd krytyczny
    Ostrzeżenie ostrzeżenie, błąd, krytyczny
    Informacje Informacja, Ostrzeżenie, Błąd, Krytyczny
    Gadatliwy Ślad, Debug, Informacja, Ostrzeżenie, Błąd, Krytyczny (wszystkie kategorie)
  4. Wybierz Zapisz.

Jeśli zapisujesz dzienniki w obiektach blob, zasady przechowywania nie będą już stosowane, jeśli usuniesz aplikację, ale zachowasz dzienniki w obiektach blob. Aby uzyskać więcej informacji, zobacz Koszty, które mogą być naliczane po usunięciu zasobu.

Obecnie tylko dzienniki aplikacji platformy .NET można zapisywać w magazynie danych blob. Dzienniki aplikacji Java, PHP, Node.jsi Python mogą być przechowywane tylko w systemie plików usługi App Service bez modyfikacji kodu w celu zapisywania dzienników w magazynie zewnętrznym.

Jeśli ponownie wygenerujesz klucze dostępu do konta magazynu, musisz zresetować odpowiednią konfigurację rejestrowania, aby używać zaktualizowanych kluczy dostępu:

  1. Na karcie Konfigurowanie ustaw odpowiednią funkcję rejestrowania na wartość Wyłączone. Zapisz ustawienie.

  2. Ponownie włącz logowanie do kontenera BLOB konta magazynowego. Zapisz ustawienie.

Włączanie rejestrowania aplikacji (Linux lub kontener)

Aby włączyć rejestrowanie aplikacji dla aplikacji systemu Linux lub kontenerów niestandardowych w portalu Azure :

  1. Przejdź do aplikacji i wybierz pozycję Monitorowanie>dzienników usługi App Service.

  2. W Rejestrowanie aplikacji wybierz System plików.

  3. W polu Limit (MB) określ limit dysku dla dzienników aplikacji.

  4. W polu Okres przechowywania (dni)ustaw liczbę dni, na jaki będą przechowywane dzienniki.

  5. Wybierz Zapisz.

Włącz rejestrowanie serwera internetowego

Aby włączyć rejestrowanie serwera internetowego dla aplikacji systemu Windows w portalu Azure :

  1. Przejdź do aplikacji i wybierz pozycję Monitorowanie>dzienników usługi App Service.

  2. W przypadku rejestrowania serwera sieci Web wybierz pozycję Storage, aby przechowywać dzienniki w magazynie obiektów blob, lub wybierz pozycję System plików, aby przechowywać dzienniki w systemie plików usługi App Service.

  3. W polu Okres przechowywania (dni)ustaw liczbę dni, na jaki będą przechowywane dzienniki.

  4. Wybierz Zapisz.

Jeśli zapisujesz dzienniki w obiektach blob, zasady przechowywania nie będą już stosowane, jeśli usuniesz aplikację, ale zachowasz dzienniki w obiektach blob. Aby uzyskać więcej informacji, zobacz Koszty, które mogą być naliczane po usunięciu zasobu.

Jeśli wygenerujesz ponownie klucze dostępu konta magazynu, musisz zresetować konfigurację dziennika, aby użyć zaktualizowanych kluczy.

  1. Na karcie Konfigurowanie ustaw odpowiednią funkcję rejestrowania na wartość Wyłączone. Zapisz ustawienie.

  2. Ponownie włącz logowanie do kontenera BLOB konta magazynowego. Zapisz ustawienie.

Rejestrowanie szczegółowych błędów

Aby zapisać stronę błędu lub ślady nieudanych żądań dla aplikacji Windows w portalu Azure:

  1. Przejdź do aplikacji i wybierz pozycję Monitorowanie>dzienników usługi App Service.

  2. W obszarze Szczegółowe komunikaty o błędach lub Śledzenie nieudanych żądań wybierz opcję Włączone.

  3. Wybierz Zapisz.

Oba typy dzienników są przechowywane w systemie plików usługi App Service. Zachowuje maksymalnie 50 błędów (plików lub folderów). Gdy liczba plików HTML przekracza 50, usługa App Service usuwa najstarsze pliki błędów.

Domyślnie śledzenie nieudanych żądań rejestruje log żądań zakończonych niepowodzeniem z kodami stanu HTTP od 400 do 600. Aby określić reguły niestandardowe, nadpisz sekcję <traceFailedRequests> w pliku Web.config.

Dodawanie komunikatów dziennika w kodzie

W kodzie aplikacji można użyć standardowych mechanizmów logowania do wysyłania wiadomości do logów aplikacji. Na przykład:

Dzienniki strumieniowe

Przed strumieniowaniem dzienników w czasie rzeczywistym włącz odpowiedni typ dziennika. Usługa App Service przesyła strumieniowo wszelkie informacje zapisywane w danych wyjściowych konsoli lub plikach kończących się .txt, .log lub .htm przechowywanych w katalogu /home/LogFiles (D:\home\LogFiles).

Uwaga

Niektóre bufory dzienników zapisują dane do pliku dziennika, co może spowodować pojawienie się zdarzeń w nieprawidłowej kolejności w strumieniu. Na przykład wpis dziennika aplikacji, który występuje, gdy użytkownik odwiedza stronę, może być wyświetlany w strumieniu przed odpowiednim wpisem dziennika HTTP dla żądania strony.

Portal Azure

Aby przesyłać dzienniki strumieniowo w portalu Azure, przejdź do swojej aplikacji i wybierz Monitorowanie>Strumień dziennika.

Cloud Shell

Aby przesyłać strumieniowo dzienniki na żywo w usłudze azure Cloud Shell, użyj następującego polecenia.

Ważne

To polecenie może nie działać z aplikacjami internetowymi hostowanymi w planie usługi App Service opartym na systemie Linux.

az webapp log tail --name appname --resource-group myResourceGroup

Aby filtrować określone typy dzienników, takie jak HTTP, użyj parametru --provider. Na przykład:

az webapp log tail --name appname --resource-group myResourceGroup --provider http

Terminal lokalny

Aby przesyłać strumieniowo dzienniki w konsoli lokalnej, zainstaluj Azure CLI i zaloguj się do swojego konta. Po zalogowaniu postępuj zgodnie z instrukcjami dotyczącymi usługi Cloud Shell.

Uzyskiwanie dostępu do plików dziennika

Jeśli skonfigurujesz opcję obiektów blob usługi Azure Storage dla typu dziennika, potrzebujesz narzędzia klienckiego, które współpracuje z usługą Azure Storage. Aby uzyskać więcej informacji, zobacz narzędzia klienckie firmy Microsoft do pracy z Azure Storage.

W przypadku dzienników przechowywanych w systemie plików usługi App Service uzyskaj do nich dostęp przy użyciu aparatu Kudu.

  1. Otwórz swoją aplikację w portalu Azure i wybierz Narzędzia programistyczne>Zaawansowane narzędzia, a następnie wybierz Przejdź.
  2. W narzędziu Kudu wybierz pozycję Narzędzia>Zrzut diagnostyczny.

W przypadku kontenerów systemu Linux lub kontenerów niestandardowych plik ZIP zawiera dzienniki wyjściowe konsoli zarówno dla hosta platformy Docker, jak i kontenera platformy Docker. W przypadku aplikacji skalowanej w poziomie plik ZIP zawiera jeden zestaw dzienników dla każdego wystąpienia. W systemie plików usługi App Service te pliki dziennika są zawartością katalogu /home/LogFiles. Dzienniki wdrażania są przechowywane w /site/deployments/.

W przypadku aplikacji systemu Windows plik ZIP zawiera zawartość katalogu D:\Home\LogFiles w systemie plików usługi App Service. Ma następującą strukturę:

Typ dziennika Katalog opis
Dziennik aplikacji /LogFiles/Application/ Zawiera co najmniej jeden plik tekstowy. Format komunikatów dziennika zależy od używanego dostawcy rejestrowania.
Śledzenie żądań, które zakończyło się niepowodzeniem /LogFiles/W3SVC#########/ Zawiera pliki XML i plik XSL. Sformatowane pliki XML można wyświetlić w przeglądarce.
Szczegółowy dziennik błędów /LogFiles/DetailedErrors/ Zawiera pliki błędów HTML. Pliki HTM można wyświetlić w przeglądarce.

Innym sposobem wyświetlenia śladów żądań, które nie powiodły się, jest przejście do strony aplikacji w portalu. W menu po lewej stronie wybierz pozycję Diagnozowanie i rozwiązywanie problemów. Wyszukaj dzienniki śledzenia błędnych żądań , a następnie wybierz ikonę, aby przeglądać i wyświetlać ślad, który chcesz zobaczyć.
Dziennik serwera sieci Web /LogFiles/http/RawLogs/ Zawiera pliki tekstowe sformatowane przy użyciu rozszerzonego formatu pliku dziennika W3C. Te pliki można odczytać przy użyciu edytora tekstów lub narzędzia, takiego jak analizator dzienników.

Usługa App Service nie obsługuje pól s-computername, s-ipi cs-version.
Dziennik wdrażania /LogFiles/Git/ i /deployments/ Zawiera dzienniki generowane przez wewnętrzne procesy wdrażania wraz z dziennikami wdrożeń usługi Git.

Wysyłanie dzienników do usługi Azure Monitor

Dzięki integracji usługi Azure Monitor, można tworzyć ustawienia diagnostyczne w celu wysyłania dzienników do kont magazynu, centrów zdarzeń i obszarów roboczych usługi Log Analytics. Po dodaniu ustawienia diagnostycznego usługa App Service dodaje ustawienia aplikacji do aplikacji, co powoduje ponowne uruchomienie aplikacji.

Zrzut ekranu przedstawiający opcje wyświetlania ustawień diagnostycznych i dodawania ustawienia diagnostycznego.

Obsługiwane typy dzienników

Aby uzyskać listę obsługiwanych typów dzienników i ich opisów, zobacz Obsługiwane dzienniki zasobów dla witryny Microsoft.Web.

zagadnienia dotyczące sieci

Aby uzyskać informacje na temat ograniczeń dotyczących ustawień diagnostycznych, zobacz Limity docelowe.

Powiązana zawartość