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

W tym filmie wideo pokazano, jak włączyć rejestrowanie diagnostyczne dla aplikacji.

Kroki opisane w filmie wideo zostały również opisane w poniższych sekcjach.

Omówienie

Platforma Azure udostępnia wbudowaną diagnostykę , która ułatwia debugowanie aplikacji usługi App Service. Z tego artykułu dowiesz się, jak włączyć rejestrowanie diagnostyczne i dodać instrumentację do aplikacji, a także jak uzyskać dostęp do informacji rejestrowanych przez platformę Azure.

W tym artykule do pracy z dziennikami diagnostycznymi są używane witryny Azure Portal i interfejs wiersza polecenia platformy Azure. Aby uzyskać informacje na temat pracy z dziennikami diagnostycznymi przy użyciu programu Visual Studio, zobacz Rozwiązywanie problemów z platformą Azure w programie Visual Studio.

Uwaga

Oprócz instrukcji rejestrowania w tym artykule dostępna jest nowa, zintegrowana funkcja rejestrowania z usługą Azure Monitoring. Więcej informacji na ten temat można znaleźć w sekcji Wysyłanie dzienników do usługi Azure Monitor .

Typ Platforma Lokalizacja opis
Rejestrowanie aplikacji Windows, Linux System plików usługi App Service i/lub obiekty blob usługi Azure Storage Rejestruje komunikaty generowane przez kod aplikacji. Komunikaty mogą być generowane przez wybraną strukturę internetową lub z poziomu kodu aplikacji bezpośrednio przy użyciu standardowego wzorca rejestrowania języka. Każdy komunikat jest przypisany do jednej z następujących kategorii: Krytyczne, Błąd, Ostrzeżenie, Informacje, Debugowanie i Śledzenie. Możesz wybrać sposób pełnego rejestrowania, ustawiając poziom ważności podczas włączania rejestrowania aplikacji.
Rejestrowanie serwera sieci Web 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, kod odpowiedzi itd.
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, ale usługa App Service może zapisać 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.
śledzenia żądań zakończonego niepowodzeniem Windows System plików usługi App Service Szczegółowe informacje dotyczące śledzenia żądań, w tym ślad składników usług IIS używanych do przetwarzania żądania i czasu potrzebnego w każdym składniku. Jest to przydatne, jeśli chcesz zwiększyć wydajność lokacji lub wyizolować określony błąd HTTP. Dla każdego żądania, które zakończyło się niepowodzeniem, jest generowany jeden folder, który zawiera plik dziennika XML, oraz arkusz stylów XSL w celu wyświetlenia pliku dziennika.
Rejestrowanie wdrożenia Windows, Linux System plików usługi App Service Rejestruje podczas 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.

W przypadku przechowywania w systemie plików usługi App Service dzienniki podlegają dostępnemu magazynowi dla warstwy cenowej (zobacz Limity usługi App Service).

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 omówienie diagnostyki usługi aplikacja systemu Azure Service.

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

Włączanie rejestrowania aplikacji (Windows)

Aby włączyć rejestrowanie aplikacji dla aplikacji systemu Windows w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.

Wybierz pozycję Włączone dla opcji Rejestrowanie aplikacji (system plików) lub Rejestrowanie aplikacji (blob) lub oba te elementy.

Opcja System plików służy do tymczasowego debugowania i wyłącza się w ciągu 12 godzin. Opcja Obiekt blob dotyczy rejestrowania długoterminowego i wymaga kontenera magazynu obiektów blob do zapisywania dzienników. Opcja Obiekt blob zawiera również dodatkowe informacje w komunikatach dziennika, takie jak identyfikator początkowego wystąpienia maszyny wirtualnej komunikatu dziennika (), identyfikator wątku (TidInstanceId) i bardziej szczegółowy znacznik czasu (EventTickCount).

Uwaga

Obecnie tylko dzienniki aplikacji platformy .NET można zapisywać w magazynie obiektów blob. Dzienniki aplikacji języka Java, PHP, Node.js języka Python można przechowywać tylko w systemie plików usługi App Service (bez modyfikacji kodu w celu zapisywania dzienników w magazynie zewnętrznym).

Ponadto w przypadku ponownego wygenerowania kluczy dostępu konta magazynu należy zresetować odpowiednią konfigurację rejestrowania, aby używać zaktualizowanych kluczy dostępu. Czynność:

  1. Na karcie Konfigurowanie ustaw odpowiednią funkcję rejestrowania na Wyłączone. Zapisz ustawienie.
  2. Ponownie włącz rejestrowanie w obiekcie blob konta magazynu. Zapisz ustawienie.

Wybierz poziom lub poziom szczegółów do zarejestrowania. W poniższej tabeli przedstawiono kategorie dzienników uwzględnione na każdym poziomie:

Poziom Uwzględnione kategorie
Disabled Brak
Błąd Błąd, krytyczny
Ostrzeżenie Ostrzeżenie, błąd, krytyczny
Informacje Informacje, ostrzeżenie, błąd, krytyczne
Pełne Śledzenie, debugowanie, informacje, ostrzeżenie, błąd, krytyczne (wszystkie kategorie)

Po zakończeniu wybierz Zapisz.

Uwaga

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.

Włączanie rejestrowania aplikacji (Linux/Container)

Aby włączyć rejestrowanie aplikacji dla aplikacji systemu Linux lub kontenerów niestandardowych w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.

W obszarze Rejestrowanie aplikacji wybierz pozycję System plików.

W obszarze Limit przydziału (MB) określ limit przydziału dysku dla dzienników aplikacji. W obszarze Okres przechowywania (dni) ustaw liczbę dni przechowywania dzienników.

Po zakończeniu wybierz Zapisz.

Włączanie rejestrowania serwera internetowego

Aby włączyć rejestrowanie serwera internetowego dla aplikacji systemu Windows w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.

W przypadku rejestrowania serwera internetowego wybierz pozycję Magazyn , aby przechowywać dzienniki w magazynie obiektów blob lub system plików, aby przechowywać dzienniki w systemie plików usługi App Service.

W obszarze Okres przechowywania (dni) ustaw liczbę dni przechowywania dzienników.

Uwaga

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

  1. Na karcie Konfigurowanie ustaw odpowiednią funkcję rejestrowania na Wyłączone. Zapisz ustawienie.
  2. Ponownie włącz rejestrowanie w obiekcie blob konta magazynu. Zapisz ustawienie.

Po zakończeniu wybierz Zapisz.

Uwaga

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.

Rejestrowanie szczegółowych błędów

Aby zapisać stronę błędu lub śledzenie żądań niepomyślnych dla aplikacji systemu Windows w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Dzienniki usługi App Service.

W obszarze Szczegółowe rejestrowanie błędów lub Śledzenie żądań niepomyślnych wybierz pozycję Włączone, a następnie wybierz pozycję Zapisz.

Oba typy dzienników są przechowywane w systemie plików usługi App Service. Zachowywane są maksymalnie 50 błędów (pliki/foldery). Gdy liczba plików HTML przekracza 50, najstarsze pliki błędów są automatycznie usuwane.

Funkcja Śledzenie żądań niepomyślnych domyślnie przechwytuje dziennik żądań, które zakończyły się niepowodzeniem z kodami stanu HTTP z zakresu od 400 do 600. Aby określić reguły niestandardowe, możesz zastąpić sekcję <traceFailedRequests> w pliku web.config .

Dodawanie komunikatów dziennika w kodzie

W kodzie aplikacji używasz zwykłych obiektów rejestrowania do wysyłania komunikatów dziennika do dzienników aplikacji. Na przykład:

Strumieniowe przesyłanie dzienników

Przed przesyłaniem strumieniowego dzienników w czasie rzeczywistym włącz odpowiedni typ dziennika. Wszystkie informacje zapisywane w danych wyjściowych lub plikach konsoli kończących się na .txt, .log lub .htm przechowywanych w katalogu /home/LogFiles (D:\home\LogFiles) są przesyłane strumieniowo przez usługę App Service.

Uwaga

Niektóre typy buforów rejestrowania zapisu w pliku dziennika, co może spowodować brak kolejności zdarzeń 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.

W witrynie Azure Portal

Aby przesłać strumieniowo dzienniki w witrynie Azure Portal, przejdź do aplikacji i wybierz pozycję Strumień dzienników.

W usłudze Cloud Shell

Aby przesyłać strumieniowo dzienniki na żywo w usłudze 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 systemu 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

W terminalu lokalnym

Aby przesyłać strumieniowo dzienniki w konsoli lokalnej, zainstaluj interfejs wiersza polecenia platformy Azure 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 Azure Storage Client Tools (Narzędzia klienckie usługi Azure Storage).

W przypadku dzienników przechowywanych w systemie plików usługi App Service najprostszym sposobem jest pobranie pliku ZIP w przeglądarce pod adresem:

  • Kontenery niestandardowe systemu Linux/: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplikacje systemu Windows: https://<app-name>.scm.azurewebsites.net/api/dump

W przypadku kontenerów niestandardowych systemu Linux 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 .

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
Dzienniki aplikacji /LogFiles/Application/ Zawiera co najmniej jeden plik tekstowy. Format komunikatów dziennika zależy od używanego dostawcy rejestrowania.
Ślady żądań, które zakończyły się niepowodzeniem /LogFiles/W3SVC#########/ Zawiera pliki XML i plik XSL. Sformatowane pliki XML można wyświetlić w przeglądarce.
Szczegółowe dzienniki błędów /LogFiles/DetailedErrors/ Zawiera pliki błędów HTM. 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ę Diagnozuj i rozwiąż problemy, a następnie wyszukaj pozycję Dzienniki śledzenia niepomyślnych żądań, a następnie kliknij ikonę przeglądania i wyświetlania żądanego śladu.
Dzienniki serwera internetowego /LogFiles/http/RawLogs/ Zawiera pliki tekstowe sformatowane przy użyciu rozszerzonego formatu pliku dziennika W3C. Te informacje można odczytywać przy użyciu edytora tekstów lub narzędzia, takiego jak Analizator dzienników.
Usługa App Service nie obsługuje s-computernamepól , s-ipani cs-version .
Dzienniki wdrażania /LogFiles/Git/ i /deployments/ Zawierają dzienniki generowane przez wewnętrzne procesy wdrażania, a także dzienniki dla wdrożeń usługi Git.

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

Dzięki nowej integracji usługi Azure Monitor możesz utworzyć Ustawienia diagnostyczne w celu wysyłania dzienników do kont magazynu, usługi Event Hubs i usługi Log Analytics.

Ustawienia diagnostyczne

Obsługiwane typy dzienników

W poniższej tabeli przedstawiono obsługiwane typy dzienników i opisy:

Nazwa dziennika Typ dziennika Windows Kontener systemu Windows Linux Kontener systemu Linux opis
Dzienniki konsoli usługi App Service AppServiceConsoleLogs Java SE i Tomcat Tak Tak Tak Dane wyjściowe w warstwie Standardowa i błąd standardowy 3
Dzienniki HTTP AppServiceHTTPLogs Tak Tak Tak Tak Dzienniki serwera internetowego
Dzienniki platformy środowiska usługi App Service AppServiceEnvironmentPlatformLogs Tak Nie dotyczy Tak Tak Środowisko App Service Environment: skalowanie, zmiany konfiguracji i dzienniki stanu
Uzyskiwanie dostępu do dzienników inspekcji AppServiceAuditLogs Tak Tak Tak Tak Działanie logowania za pośrednictwem protokołów FTP i Kudu
Dzienniki inspekcji zmian zawartości witryny AppServiceFileAuditLogs Tak Tak TBA TBA Zmiany w pliku wprowadzone w zawartości witryny; dostępna tylko dla warstwy Premium i nowszej
Dzienniki aplikacji usługi App Service AppServiceAppLogs ASP.NET, .NET Core i Tomcat 1 ASP.NET i Tomcat 1 .NET Core, Java, SE i Tomcat Błogosławione obrazy 2 Java SE i Tomcat Błogosławione Obrazy 2 Dzienniki aplikacji 3
Dzienniki inspekcji zabezpieczeń IP AppServiceIPSecAuditLogs Tak Tak Tak Tak Żądania z reguł adresów IP
Dzienniki platformy usługi App Service AppServicePlatformLogs TBA Tak Tak Tak Dzienniki operacji kontenera
Dzienniki inspekcji programu antywirusowego raportów AppServiceAntivirusScanAuditLogs 4 Tak Tak Tak Tak Dzienniki skanowania antywirusowego przy użyciu Microsoft Defender dla Chmury; dostępna tylko dla warstwy Premium

1 W przypadku aplikacji Tomcat dodaj TOMCAT_USE_STARTUP_BAT do ustawień aplikacji i ustaw ją na lub false0. Musisz korzystać z najnowszej wersji serwera Tomcat i używać pliku java.util.logging.

2 W przypadku aplikacji Java SE dodaj WEBSITE_AZMON_PREVIEW_ENABLED do ustawień aplikacji i ustaw ją na true lub na 1.

3 Bieżący limit rejestrowania jest ustawiony na 100 dzienników na minutę.

4 Typ dziennika AppServiceAntivirusScanAuditLogs jest nadal w wersji zapoznawczej

Zagadnienia dotyczące pracy w sieci

Aby uzyskać informacje o ograniczeniach dotyczących Ustawienia diagnostycznych, zapoznaj się z oficjalną dokumentacją diagnostyki Ustawienia dotyczącą limitów docelowych.

Następne kroki